SlideShare uma empresa Scribd logo
1 de 28
Advanced Design
Implementation
Joshua Jamison
5.15.12




      PRESENTATION   ANDEVCON • MAY 15, 2012
What’s this about?
               This                  Not This




                      Ranging from
        Basic                          Advanced
PRESENTATION                                      tackmobile.com
So... who is this guy?
•   Software Architect &
    Developer

•   Hacking on Android since Beta

•   Multiple Applications to
    market

•   Developer with Tack

•   Still owns an HTC G1

PRESENTATION                        tackmobile.com
Why bother?

•   Android is “ugly”
    Doesn’t have to be

•   Don’t need to design for Android
    Unless you have a brand

•   Just port the iPhone app
    Android != iPhone
Design Strategies
Have a goal


•   Who is your client?
    The person that defines “complete” and
    answers the questions

•   Who is your user?
    The people who will use the application the most
Design Strategies

•    Design vs. UX
      Get in the user’s shoes
•    Avoid premature “pixel
     pushing”
      Don’t wait for design finalization
•    Get a designer & work with them
      Wireframes, comps, & assets
    PRESENTATION                           tackmobile.com
Design Strategies


•   Make a plan
    •   How much should be reusable?
    •   How much time is left?
    •   How often can you iterate?
    •   Branding vs OS familiarity



PRESENTATION                           tackmobile.com
Design Strategies
 Porting an iOS app




PRESENTATION          tackmobile.com
Design Strategies
 Porting an iOS app

•   Read through Android Design guidelines
    http://developer.android.com/design
•   Get new assets
•   Action Bar not Navigation Bar
•   App Icon, Button Icons, Button States,
    Fonts, Device dimensions & resolutions

PRESENTATION                                 tackmobile.com
Styles & Themes

•    Names are just a convention: styles.xml,
     themes.xml, makes_no_difference.xml
•    XML files placed in /res/values/ folder
•    Apply a Theme to an Activity / Apply a Style to a
     View
•    Both use <style> tag
•    Themes cascade, Styles do not


    PRESENTATION                                 tackmobile.com
Using SDK Styles

•     @android:style/…
•     “Code complete” getting better and better
•     Use source to see specifics
•     Convenient, but sometimes unpredictable




    PRESENTATION                                  tackmobile.com
Drawables

•    /res/drawable…
•    Resource Qualifiers
                              http://developer.android.com/resources/dashboard/screens.html
     (hdpi / mdpi / ldpi)                               as of 4.2.12


•    Android prefers to scale down larger images
•    Density ambiguous drawables belong in /res/
     drawable/
•    http://developer.android.com/resources/
     dashboard/screens.html
    PRESENTATION                                                                tackmobile.com
Drawables
 •   px = dip * (dpi / 160)
     •    ldpi     ~120dpi (0.75x)
     •    mdpi     ~160dpi (baseline)
     •    hdpi     ~240dpi (1.5x)
     •    xhdpi    ~320dpi (2.0x)
 •   1dip mdpi = 160 / 160 * 1dip = 1px
 •   Minimum Screen Sizes
     •    small    320dp x 426dp
     •    normal   320dp x 470dp
     •    large    480dp x 640dp
     •    xlarge   720dp x 960dp
 •   Normal hdpi = 480px x ~705px
 •   > http://developer.android.com/guide/practices/
     screens_support.html
PRESENTATION                                           tackmobile.com
9 Patch
•   Good for graphics that will need to scale to fit
    content
•   Must be PNG format and name must end with
    “.9.png”
•   Use draw9patch application in /<sdk install
    path>/tools/
•   Who’s job is this, really?
•   http://developer.android.com/guide/
    developing/tools/draw9patch.html
PRESENTATION                                      tackmobile.com
9 Patch Tips
•   Source image should
    be smallest
    repeatable area
•   Patch lines must be
    continuous
•   Stay away from
    corners
•   Be careful with
                          API 14 - /res/drawable-hdpi/btn_default_normal_holo.9.png
    gradients
Navigation


•   Follow the guidelines
    http://developer.android.com/design/
    patterns/navigation.html

•   Use an ActionBar
•   Consider using
    ActionBarSherlock library
Navigation
Tabs



•   Old tabs are ugly
•   TabHost / TabWidget
    are now deprecated
•   However…


                          “Please no”
Navigation
    Tabs
•   New tabs are not ugly
•   Uses fragments via the
    Support Library
•   Use the ActionBar tabs if
    you can
•   Also consider Spinner
    navigation in ActionBar
•   Beware the design site’s
    “scrollable tabs”
                                “Please yes”
Menus


•     Physical Menu Button no longer required
•     Menus live on in the ActionBar (3 & 4)




    PRESENTATION                                tackmobile.com
CAB


•   Contextual ActionBar
•   Change the action bar
    during content selection
    (usually a list or text)
•   Completely new set of
    ActionBar actions
XML Drawables

•   Density ambiguous, so belongs in /res/
    drawable/ folder
•   /res/drawable/filename.xml
•   Now with wizard & code complete
•   Drawables documentation:
    http://developer.android.com/guide/topics/resources/
    drawable-resource.html




PRESENTATION                                               tackmobile.com
XML Drawables

•     State List <selector>
      •   Used for buttons with states (including toggle
          and radio)
      •   States: pressed, focused, selected, checked,
          enabled
      •   Don’t forget the “focused” state!
      •   Can be used for colors as well


    PRESENTATION                                    tackmobile.com
XML Drawables

•     Shape <shape> (declarative graphics!)
      •   Geometric shapes: rectangle, oval, line, ring
      •   Useful to nest multiple inside <layer-list>
      •   Good for simple graphics
      •   Complex graphics should be handled with
          images or the graphics API
      •   Warning: Line shape is only horizontal!

    PRESENTATION                                        tackmobile.com
XML Drawables
•     LevelList <level-list>
      •   Essentially gives drawable custom states
      •   <item android:drawable=”@drawable/foo”/>
          or
          <item><shape/></item>
      •   Items can apply to multiple levels: minLevel &
          maxLevel
      •   Change programmatically on the View with
          setLevel() or setImageLevel()
    PRESENTATION                                     tackmobile.com
XML Drawables
•     Many more available
•     Drawables documentation:
      http://developer.android.com/guide/topics/
      resources/drawable-resource.html




    PRESENTATION                                   tackmobile.com
attrs
•   Custom attributes for your styles
•   Abstracts style reference away
•   Useful for Themes
•   Many defaults already available
•   Use the source for examples of making your
    own




PRESENTATION                                 tackmobile.com
attrs
•     Filename convention: attrs.xml
•     Place in XML in /res/values/
•     <declare-styleable
      name=”My.Custom.Style.Or.Theme”>
       <attr name=”fooStyle” format=”reference|
      color”/>
       <attr name=”barDim” format=”dimension”/>
•     ?attr/fooStyle
•     Very useful in custom components
•     http://developer.android.com/reference/android/
      R.attr.html
    PRESENTATION                                 tackmobile.com
Thanks for coming!

•   My Contact Info
         name:     Joshua Jamison
         email:    joshua.jamison@tackmobile.com
         g+:       joshua.jamison@gmail.com
         blog:     workingfromhere.com
•   Resources
         Android Docs: http://developer.android.com
         Android Source: http://source.android.com/
                         https://github.com/android

    PRESENTATION                                   tackmobile.com

Mais conteúdo relacionado

Mais procurados

Application GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit DeveloperApplication GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit DeveloperSamsung Open Source Group
 
Making it mobile_360_flex_jonathancampos_antonioholguin
Making it mobile_360_flex_jonathancampos_antonioholguinMaking it mobile_360_flex_jonathancampos_antonioholguin
Making it mobile_360_flex_jonathancampos_antonioholguinAntonioHolguin
 
Exposé Anglais Comment Fonctionne Photoshop
Exposé Anglais Comment Fonctionne PhotoshopExposé Anglais Comment Fonctionne Photoshop
Exposé Anglais Comment Fonctionne Photoshopjexpoz
 
What Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressWhat Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressEast Bay WordPress Meetup
 
Game Design with Adobe® Flash® Professional CS6
Game Design with Adobe® Flash® Professional CS6Game Design with Adobe® Flash® Professional CS6
Game Design with Adobe® Flash® Professional CS6Joseph Labrecque
 
Mobile Game Development using Adobe Flash
Mobile Game Development using Adobe FlashMobile Game Development using Adobe Flash
Mobile Game Development using Adobe Flashchall3ng3r
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentKarl Bunyan
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...Sencha
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGapKarl Bunyan
 

Mais procurados (12)

Application GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit DeveloperApplication GUI Design - Notes from a Toolkit Developer
Application GUI Design - Notes from a Toolkit Developer
 
Making it mobile_360_flex_jonathancampos_antonioholguin
Making it mobile_360_flex_jonathancampos_antonioholguinMaking it mobile_360_flex_jonathancampos_antonioholguin
Making it mobile_360_flex_jonathancampos_antonioholguin
 
Exposé Anglais Comment Fonctionne Photoshop
Exposé Anglais Comment Fonctionne PhotoshopExposé Anglais Comment Fonctionne Photoshop
Exposé Anglais Comment Fonctionne Photoshop
 
What Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPressWhat Developers Need Designers to Know about WordPress
What Developers Need Designers to Know about WordPress
 
Game Design with Adobe® Flash® Professional CS6
Game Design with Adobe® Flash® Professional CS6Game Design with Adobe® Flash® Professional CS6
Game Design with Adobe® Flash® Professional CS6
 
Mobile Game Development using Adobe Flash
Mobile Game Development using Adobe FlashMobile Game Development using Adobe Flash
Mobile Game Development using Adobe Flash
 
UX Roles and Job Titles
UX Roles and Job TitlesUX Roles and Job Titles
UX Roles and Job Titles
 
Designing for mobile
Designing for mobileDesigning for mobile
Designing for mobile
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & Development
 
Question 4
Question 4Question 4
Question 4
 
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
SenchaCon 2016: Mobile First? Desktop First? Or Should you Think Universal Ap...
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
 

Destaque

Adrift: The Making of an iOS Game
Adrift: The Making of an iOS GameAdrift: The Making of an iOS Game
Adrift: The Making of an iOS GameTack Mobile
 
Scala for android
Scala for androidScala for android
Scala for androidTack Mobile
 
Etsy - Android & Design
Etsy - Android & DesignEtsy - Android & Design
Etsy - Android & DesignDeniz Veli
 
Android Material Design APIs/Tips
Android Material Design APIs/TipsAndroid Material Design APIs/Tips
Android Material Design APIs/TipsKen Yee
 
Desgn&imp authentctn.ppt by Jaseela
Desgn&imp authentctn.ppt by JaseelaDesgn&imp authentctn.ppt by Jaseela
Desgn&imp authentctn.ppt by JaseelaStudent
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of AndroidTetsuyuki Kobayashi
 

Destaque (6)

Adrift: The Making of an iOS Game
Adrift: The Making of an iOS GameAdrift: The Making of an iOS Game
Adrift: The Making of an iOS Game
 
Scala for android
Scala for androidScala for android
Scala for android
 
Etsy - Android & Design
Etsy - Android & DesignEtsy - Android & Design
Etsy - Android & Design
 
Android Material Design APIs/Tips
Android Material Design APIs/TipsAndroid Material Design APIs/Tips
Android Material Design APIs/Tips
 
Desgn&imp authentctn.ppt by Jaseela
Desgn&imp authentctn.ppt by JaseelaDesgn&imp authentctn.ppt by Jaseela
Desgn&imp authentctn.ppt by Jaseela
 
Inter-process communication of Android
Inter-process communication of AndroidInter-process communication of Android
Inter-process communication of Android
 

Semelhante a Advanced Android Design Implementation

Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Mediacurrent
 
Making Your Site Printable: CSS Summit 2014
Making Your Site Printable: CSS Summit 2014Making Your Site Printable: CSS Summit 2014
Making Your Site Printable: CSS Summit 2014Adrian Roselli
 
Making Your Site Printable: Booster Conference
Making Your Site Printable: Booster ConferenceMaking Your Site Printable: Booster Conference
Making Your Site Printable: Booster ConferenceAdrian Roselli
 
HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)Adam Lu
 
The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)Chris Mills
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Centurydreamwidth
 
Freelancer Weapons of mass productivity
Freelancer Weapons of mass productivityFreelancer Weapons of mass productivity
Freelancer Weapons of mass productivityGregg Coppen
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform AppsFITC
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFrédéric Harper
 
Abstractions: Fringe Accessibility
Abstractions: Fringe AccessibilityAbstractions: Fringe Accessibility
Abstractions: Fringe AccessibilityAdrian Roselli
 
Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Nickolay Ninarski
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web DesignMike Wilcox
 

Semelhante a Advanced Android Design Implementation (20)

Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG)
 
Making Your Site Printable: CSS Summit 2014
Making Your Site Printable: CSS Summit 2014Making Your Site Printable: CSS Summit 2014
Making Your Site Printable: CSS Summit 2014
 
Making Your Site Printable: Booster Conference
Making Your Site Printable: Booster ConferenceMaking Your Site Printable: Booster Conference
Making Your Site Printable: Booster Conference
 
HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)HTML5 on Mobile(For Designer)
HTML5 on Mobile(For Designer)
 
CSS for Mobile
CSS for MobileCSS for Mobile
CSS for Mobile
 
The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)The web standards gentleman: a matter of (evolving) standards)
The web standards gentleman: a matter of (evolving) standards)
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Mobile native-hacks
Mobile native-hacksMobile native-hacks
Mobile native-hacks
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Century
 
Freelancer Weapons of mass productivity
Freelancer Weapons of mass productivityFreelancer Weapons of mass productivity
Freelancer Weapons of mass productivity
 
Online File Formats.pptx
Online File Formats.pptxOnline File Formats.pptx
Online File Formats.pptx
 
Component-first Applications
Component-first ApplicationsComponent-first Applications
Component-first Applications
 
Designing True Cross-Platform Apps
Designing True Cross-Platform AppsDesigning True Cross-Platform Apps
Designing True Cross-Platform Apps
 
Web Design Norms
Web Design NormsWeb Design Norms
Web Design Norms
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 
FITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web DesignFITC - 2012-04-23 - Responsive Web Design
FITC - 2012-04-23 - Responsive Web Design
 
Abstractions: Fringe Accessibility
Abstractions: Fringe AccessibilityAbstractions: Fringe Accessibility
Abstractions: Fringe Accessibility
 
Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)Get responsive in 30 minutes (WordCamp Sofia)
Get responsive in 30 minutes (WordCamp Sofia)
 
Great Responsive-ability Web Design
Great Responsive-ability Web DesignGreat Responsive-ability Web Design
Great Responsive-ability Web Design
 
SilverlightDevIntro
SilverlightDevIntroSilverlightDevIntro
SilverlightDevIntro
 

Mais de Tack Mobile

Assembly • Creative Mornings
Assembly • Creative MorningsAssembly • Creative Mornings
Assembly • Creative MorningsTack Mobile
 
Introduction to Hardware with littleBits
Introduction to Hardware with littleBitsIntroduction to Hardware with littleBits
Introduction to Hardware with littleBitsTack Mobile
 
Prototyping with Framer.js
Prototyping with Framer.jsPrototyping with Framer.js
Prototyping with Framer.jsTack Mobile
 
Dynamic Sound for iOS Apps and Games
Dynamic Sound for iOS Apps and GamesDynamic Sound for iOS Apps and Games
Dynamic Sound for iOS Apps and GamesTack Mobile
 
Git for Android Developers
Git for Android DevelopersGit for Android Developers
Git for Android DevelopersTack Mobile
 
Mobile Means Business
Mobile Means BusinessMobile Means Business
Mobile Means BusinessTack Mobile
 

Mais de Tack Mobile (6)

Assembly • Creative Mornings
Assembly • Creative MorningsAssembly • Creative Mornings
Assembly • Creative Mornings
 
Introduction to Hardware with littleBits
Introduction to Hardware with littleBitsIntroduction to Hardware with littleBits
Introduction to Hardware with littleBits
 
Prototyping with Framer.js
Prototyping with Framer.jsPrototyping with Framer.js
Prototyping with Framer.js
 
Dynamic Sound for iOS Apps and Games
Dynamic Sound for iOS Apps and GamesDynamic Sound for iOS Apps and Games
Dynamic Sound for iOS Apps and Games
 
Git for Android Developers
Git for Android DevelopersGit for Android Developers
Git for Android Developers
 
Mobile Means Business
Mobile Means BusinessMobile Means Business
Mobile Means Business
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Advanced Android Design Implementation

  • 1. Advanced Design Implementation Joshua Jamison 5.15.12 PRESENTATION ANDEVCON • MAY 15, 2012
  • 2. What’s this about? This Not This Ranging from Basic Advanced PRESENTATION tackmobile.com
  • 3. So... who is this guy? • Software Architect & Developer • Hacking on Android since Beta • Multiple Applications to market • Developer with Tack • Still owns an HTC G1 PRESENTATION tackmobile.com
  • 4. Why bother? • Android is “ugly” Doesn’t have to be • Don’t need to design for Android Unless you have a brand • Just port the iPhone app Android != iPhone
  • 5. Design Strategies Have a goal • Who is your client? The person that defines “complete” and answers the questions • Who is your user? The people who will use the application the most
  • 6. Design Strategies • Design vs. UX Get in the user’s shoes • Avoid premature “pixel pushing” Don’t wait for design finalization • Get a designer & work with them Wireframes, comps, & assets PRESENTATION tackmobile.com
  • 7. Design Strategies • Make a plan • How much should be reusable? • How much time is left? • How often can you iterate? • Branding vs OS familiarity PRESENTATION tackmobile.com
  • 8. Design Strategies Porting an iOS app PRESENTATION tackmobile.com
  • 9. Design Strategies Porting an iOS app • Read through Android Design guidelines http://developer.android.com/design • Get new assets • Action Bar not Navigation Bar • App Icon, Button Icons, Button States, Fonts, Device dimensions & resolutions PRESENTATION tackmobile.com
  • 10. Styles & Themes • Names are just a convention: styles.xml, themes.xml, makes_no_difference.xml • XML files placed in /res/values/ folder • Apply a Theme to an Activity / Apply a Style to a View • Both use <style> tag • Themes cascade, Styles do not PRESENTATION tackmobile.com
  • 11. Using SDK Styles • @android:style/… • “Code complete” getting better and better • Use source to see specifics • Convenient, but sometimes unpredictable PRESENTATION tackmobile.com
  • 12. Drawables • /res/drawable… • Resource Qualifiers http://developer.android.com/resources/dashboard/screens.html (hdpi / mdpi / ldpi) as of 4.2.12 • Android prefers to scale down larger images • Density ambiguous drawables belong in /res/ drawable/ • http://developer.android.com/resources/ dashboard/screens.html PRESENTATION tackmobile.com
  • 13. Drawables • px = dip * (dpi / 160) • ldpi ~120dpi (0.75x) • mdpi ~160dpi (baseline) • hdpi ~240dpi (1.5x) • xhdpi ~320dpi (2.0x) • 1dip mdpi = 160 / 160 * 1dip = 1px • Minimum Screen Sizes • small 320dp x 426dp • normal 320dp x 470dp • large 480dp x 640dp • xlarge 720dp x 960dp • Normal hdpi = 480px x ~705px • > http://developer.android.com/guide/practices/ screens_support.html PRESENTATION tackmobile.com
  • 14. 9 Patch • Good for graphics that will need to scale to fit content • Must be PNG format and name must end with “.9.png” • Use draw9patch application in /<sdk install path>/tools/ • Who’s job is this, really? • http://developer.android.com/guide/ developing/tools/draw9patch.html PRESENTATION tackmobile.com
  • 15. 9 Patch Tips • Source image should be smallest repeatable area • Patch lines must be continuous • Stay away from corners • Be careful with API 14 - /res/drawable-hdpi/btn_default_normal_holo.9.png gradients
  • 16. Navigation • Follow the guidelines http://developer.android.com/design/ patterns/navigation.html • Use an ActionBar • Consider using ActionBarSherlock library
  • 17. Navigation Tabs • Old tabs are ugly • TabHost / TabWidget are now deprecated • However… “Please no”
  • 18. Navigation Tabs • New tabs are not ugly • Uses fragments via the Support Library • Use the ActionBar tabs if you can • Also consider Spinner navigation in ActionBar • Beware the design site’s “scrollable tabs” “Please yes”
  • 19. Menus • Physical Menu Button no longer required • Menus live on in the ActionBar (3 & 4) PRESENTATION tackmobile.com
  • 20. CAB • Contextual ActionBar • Change the action bar during content selection (usually a list or text) • Completely new set of ActionBar actions
  • 21. XML Drawables • Density ambiguous, so belongs in /res/ drawable/ folder • /res/drawable/filename.xml • Now with wizard & code complete • Drawables documentation: http://developer.android.com/guide/topics/resources/ drawable-resource.html PRESENTATION tackmobile.com
  • 22. XML Drawables • State List <selector> • Used for buttons with states (including toggle and radio) • States: pressed, focused, selected, checked, enabled • Don’t forget the “focused” state! • Can be used for colors as well PRESENTATION tackmobile.com
  • 23. XML Drawables • Shape <shape> (declarative graphics!) • Geometric shapes: rectangle, oval, line, ring • Useful to nest multiple inside <layer-list> • Good for simple graphics • Complex graphics should be handled with images or the graphics API • Warning: Line shape is only horizontal! PRESENTATION tackmobile.com
  • 24. XML Drawables • LevelList <level-list> • Essentially gives drawable custom states • <item android:drawable=”@drawable/foo”/> or <item><shape/></item> • Items can apply to multiple levels: minLevel & maxLevel • Change programmatically on the View with setLevel() or setImageLevel() PRESENTATION tackmobile.com
  • 25. XML Drawables • Many more available • Drawables documentation: http://developer.android.com/guide/topics/ resources/drawable-resource.html PRESENTATION tackmobile.com
  • 26. attrs • Custom attributes for your styles • Abstracts style reference away • Useful for Themes • Many defaults already available • Use the source for examples of making your own PRESENTATION tackmobile.com
  • 27. attrs • Filename convention: attrs.xml • Place in XML in /res/values/ • <declare-styleable name=”My.Custom.Style.Or.Theme”> <attr name=”fooStyle” format=”reference| color”/> <attr name=”barDim” format=”dimension”/> • ?attr/fooStyle • Very useful in custom components • http://developer.android.com/reference/android/ R.attr.html PRESENTATION tackmobile.com
  • 28. Thanks for coming! • My Contact Info name: Joshua Jamison email: joshua.jamison@tackmobile.com g+: joshua.jamison@gmail.com blog: workingfromhere.com • Resources Android Docs: http://developer.android.com Android Source: http://source.android.com/ https://github.com/android PRESENTATION tackmobile.com