UI Design and Development +Roman Nurik +Nick Butcher.

Slides:



Advertisements
Similar presentations
© 2004 by the McGraw-Hill Companies, Inc. Lecture 30 Enhancing Presentations with Graphics (3)
Advertisements

 User Interface - Raeha Sandalwala.  Introduction to UI  Layouts  UI Controls  Menus and ‘Toasts’  Notifications  Other interesting UIs ◦ ListView.
User Interface Classes.  Design Principles  Views & Layouts  Event Handling  Menus  Dialogs.
Application Fundamentals. See: developer.android.com/guide/developing/building/index.html.
Filip Debelić What is it? Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google Android,
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
CS378 - Mobile Computing User Interface Basics MIKE!! LOOK HERE FOR intercepting the ListView items:
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Creating Android user interfaces using layouts 1Android user interfaces using layouts.
Mobile Programming Lecture 1 Getting Started. Today's Agenda About the Eclipse IDE Hello, World! Project Android Project Structure Intro to Activities,
Android: versions Note that: Honeycomb (Android v3.0) A tablet-only release Jelly Bean (Android v4.1) Released on July 09, 2012.
CS5103 Software Engineering Lecture 08 Android Development II.
CS378 - Mobile Computing App Project Overview. App Project Teams of 2 or 3 students Develop an Android application of your choosing subject to instructor.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Chapter 5 Creating User Interfaces GOALS and OBJECTIVES Begin our application by creating our user interface. More than one way to create a user interface.
Android Layouts. Layouts Define the user interface for an activity Layouts are defined in.xml files – within /res/layout folder – different layout can.
ANDROID – INTERFACE AND LAYOUT L. Grewe. Interfaces: Two Alternatives Code or XML  You have two ways you can create the interface(s) of your Application.
Basic Android Tutorial USF’s Association for Computing Machinery.
Copyright 2012 Adobe Systems Incorporated. All rights reserved. ® Copyright 2010 Adobe Systems Incorporated. All rights reserved. ® Copyright 2012 Adobe.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Using Android XML Resources.
1/29/ Android Programming: FrameLayout By Dr. Ramji M. Makwana Professor and Head, Computer Engineering Department A.D. Patel.
Chapter 2 The Android User Interface. Objectives  In this chapter, you learn to:  Develop a user interface using the TextView, ImageView, and Button.
Android Boot Camp for Developers Using Java, 3E
Resources. Application Resources Resources are strings, images, and other pieces of application information that are stored and maintained (externalized)
User Interfaces: Part 1 (View Groups and Layouts).
Application Development for mobile Devices
UI Design and Development +Roman Nurik +Nick Butcher.
Adobe/Macromedia Fireworks JAOIT 8. Fireworks – what is it? Adobe Fireworks (formerly Macromedia Fireworks) is a bitmap and vector graphics editor. It.
Mobile First by Oleksandr Krasnokutskyi SoftServe Inc. July 6, 2013.
MOBILE COMPUTING D10K-7D02 MC04: Layouts Dr. Setiawan Hadi, M.Sc.CS. Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran.
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
Wireframes in Physical Design Yonglei Tao. 1-2 Website Wireframes  A visual guide that represents the framework of a website  Created for the purpose.
ANDROID AND MODEL / VIEW / CONTROLLER. Slide 2 Design Patters Common solutions to programming problems are called design patterns Design patterns are.
HW#9 Clues CSCI 571 Fall, HW#9 Prototype
Pearson Webcast Series
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
CS378 - Mobile Computing More UI - Part 2. Special Menus Two special application menus – options menu – context menu Options menu replaced by action bar.
1 Android Development Lean and mean introduction Based on a presentation by Mihail L. Sichitiu.
CS378 - Mobile Computing User Interface Basics. User Interface Elements View – Control – ViewGroup Layout Widget (Compound Control) Many pre built Views.
Building User Interfaces Basic Applications
Android View Stuff. TextViews Display text Display images???
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
Resources & Android Manifest Калин Кадиев Astea Solutions AD.
CHAPTER 4 Fragments ActionBar Menus. Explore how to build applications that use an ActionBar and Fragments Understand the Fragment lifecycle Learn to.
CS371m - Mobile Computing User Interface Basics. UI Programming with Widgets Widget is an element in a Graphical User Interface (GUI) – not to be confused.
ANDROID LAYOUTS AND WIDGETS. Slide 2 Introduction Parts of the Android screen Sizing widgets and fonts Layouts and their characteristics Buttons, checkboxes.
Android intro Building UI #1: basics. UI layout.xml Controls Layouts AdapterViews Toasts dp/sp/px Animations 2.
Cosc 5/4730 Support design library. Support Design library Adds (API 9+) back support to a number of 5.0 lollipop widgets and material design pieces –
Building UI Components Димитър Н. Димитров Astea Solutions AD.
CHAPTER 1 part 1 Introduction. Chapter objectives: Understand Android Learn the differences between Java and Android Java Examine the Android project.
Chapter 2: Simplify! The Android User Interface
Open Handset Alliance.
Mobile Application Development Chapter 4 [Android Navigation and Interface Design] IT448-Fall 2017 IT448- Fall2017.
Politeknik Elektronika Negeri Surabaya
Android SDK & App Development
Image Asset Vector Asset
CIS 470 Mobile App Development
Android Programming Lecture 6
Android Layout Basics Topics
CA16R405 - Mobile Application Development (Theory)
Building User Interfaces Basic Applications
CA16R405 - Mobile Application Development (Theory)
Android Developer Fundamentals V2
Android Developer Fundamentals V2
CIS 470 Mobile App Development
Korea Software HRD Center
Objects First with Java
Android Sensor Programming
CA16R405 - Mobile Application Development (Theory)
Presentation transcript:

UI Design and Development +Roman Nurik +Nick Butcher

2 1.Designing for Android 2.Layouts and resources 3.Tablet considerations 4.System UI integration 5.UI prototyping Agenda

Designing for Android

4  Touch –Interact primarily with your fingers –Expect direct manipulation  Mobile –Often on the go –Often without network connectivity  Heterogeneity –Different screen sizes and densities –Different hardware features –Different OS versions Design for…

5 “Pictures are faster than words.” “Only show what I need when I need it.” “Make the important things fast.” “Do the heavy lifting for me.” Key principles

6 “Holo” visual language

7 Holo variations DarkDark Action BarLight

8 Activity UI structure Action bar Tabs Content (activity layout)

9 Activity UI structure Action bar

10 Action bar 1.App icon and optional Up caret 2.View control (Title/tabs/dropdown) 3.Action buttons 4.Action overflow

11 Action bar  Android 3.0 and above  Automatically part of Holo themes  Customize: –getActionBar().setDisplayOptions() –getActionBar().setNavigationMode()

12 Activity UI structure Tabs

13 Tabs

14 Tabs  Part of the ActionBar APIs  Usually gesture-enabled using ViewPager getActionBar().setNavigationMode(NAVIGATION_MODE_TA BS); ActionBar.Tab tab = actionBar.newTab(); tab.setText(“Tab 1”); tab.setTabListener(this); getActionBar().addTab(tab);

15 Activity UI structure Content (activity layout)

Layouts and resources

17 Layout system  The UI for an activity is a tree consisting of view groups and views (leaf nodes).  Most commonly defined in XML under res/layout/.

18 Views and View Groups Views  Reusable individual UI components  Optionally interactive (clickable/focusable/etc.)  Bare minimum functionality is to draw themselves View Groups  Ordered list of Views and View Groups  In charge of positioning and sizing their child views and layouts  Simple layouts and more complex groups (e.g. ListView)

19 Views and View Groups Views  TextView  EditText  Spinner  ImageView  Button  WebView  SurfaceView  Your own custom views Layouts (simple View Groups)  FrameLayout  LinearLayout  RelativeLayout  GridLayout  Your own custom layouts Complex View Groups  ScrollView  ListView

20 Anatomy of a simple layout

21

22

23 <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="16dp"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="text Address" android:singleLine="true" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" android:maxLines="2" android:singleLine="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginTop="16dp" android:paddingLeft="32dp" android:paddingRight="32dp" />

24 App resources  One universal app binary contains all resources  System chooses at runtime which resources to use

25 PNGs, 9-patch PNGs, optimized for multi. densities Layout XML optimized for physical size and orientation Strings XML localized for your target regions Drawable XML Strings, styles, themes, etc.

26 DIP units keep things the same physical size across any screen. 1 dip = 1 MDPI (160 dpi) 1 dip = 2 XHDPI (320 dpi) Screen density and DIP units

27 Q: What is the Nexus 7’s screen resolution in DIPs if it’s 1280x800 px and 213dpi? A: ~960x600 dip

28 Screen density and DIP units Icons and other PNG files should generally be provided for multiple densities

29  Bitmaps (.png)  9-patches (.9.png)  State Lists (.xml)  Basic Vector Shapes (.xml)  Color Drawables (.xml) Drawables

30  Border pixels indicate stretchable regions  Make density-specific versions (-xhdpi) 9-patches – foo.9.png

31 State Lists (selector) <item android:state_enabled="false"... /> <item android:state_pressed="true"... /> <item android:state_focused="true"... /> foo.xml:

32 State Lists (selector) foo_default.pngfoo_disabled.pngfoo_focused.pngfoo_pressed.png

Tablet considerations

Information hierarchy and flow Traditional desktop app or website

Information hierarchy and flow Tablet or mini desktop app

Information hierarchy and flow Mobile phone

37  A single piece of UI and/or implementation of an Activity, defined in its own class  Help with supporting phones + tablets  in layout XML –Automatically instantiates the given fragment –Acts as a placeholder for the fragment’s view to be inserted in that part of the layout tree Fragments

System UI integration

39 System UI integration

UI prototyping

41  Record your ideas and asses their real-world feasability  Test your your ideas and rapidly iterate –See which work and which don’t, evolve them  Map out user flow and activity diagrams –Re-arrange/add/remove interactions quickly –Scope UI complexity –Plan out intra-app “Intent-based API” Why prototype?

42 Without prototyping, you’ll find yourself doing a lot of UI refactoring. 

43 Lots of wireframing tools Fidelity Time/Effort Sketches Photoshop Fireworks Eclipse Layout Editor BalsamiqPencil (Firefox addon) Keynote/Po werpoint OmniGraffle (Mac)

44 Interactive (clickable) wireframes Fidelity Time/Effort Sketches Photoshop Fireworks Eclipse Layout Editor Balsamiq Pencil (Firefox addon) Keynote/Po werpoint OmniGraffle (Mac)

45 Always start with pencil and paper. (or a whiteboard)

46

47 1.“Pencil” (Firefox add-on) –Android stencils at 2.Fireworks-generated interactive PDF 3.Eclipse Android Layout Editor Demos

Exercise: Begin sketching!