SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler offline
ALL SIZES FIT ONE
        A Thrilling Adventure in Application Design for
                            Tablets




Monday, September 12, 2011
ALBERT LAI
                 @albertlai
                 JEAN HSU
                 @jyhsu

                 ANDROID AT PULSE

Monday, September 12, 2011
SHAMELESS PLUG!




Monday, September 12, 2011
PART I
                             e Human Component




Monday, September 12, 2011
WHEN DEVELOPERS
  SAY SOMETHING IS
  IMPOSSIBLE...
  THEY’RE LYING



Monday, September 12, 2011
TABLETS ARE A
  COMPLETELY NEW
  EXPERIENCE. DESIGN
  APPROPRIATELY.



Monday, September 12, 2011
NEVER TRUST
   THE SYSTEM TO
   DO A HUMAN’S
   JOB



Monday, September 12, 2011
DIALOGS CAN KEEP
  YOUR APP FROM
  LOOKING SILLY




Monday, September 12, 2011
stretchy
                             SILLY




Monday, September 12, 2011
dialog
                             BETTER!




Monday, September 12, 2011
USERS ROTATE
  TABLETS. THIS IS A
  FACT OF LIFE.




Monday, September 12, 2011
THINK OF HANDHELD
  AND TABLET-STAND
  STYLE USAGES




Monday, September 12, 2011
THUMB FRIENDLY NAVIGATION
Monday, September 12, 2011
PART II
                      Now for the Technical Stuff




Monday, September 12, 2011
RELATIVE LAYOUTS
  ARE AN ANDROID
  DEVELOPER’S BEST
  FRIEND



Monday, September 12, 2011
ALIGN PARENT TOP
      ALIGN PARENT LEFT




                             ALIGN PARENT RIGHT
                             CENTER VERTICAL




ALIGN PARENT BOTTOM
  CENTER HORIZONTAL




Monday, September 12, 2011
ALIGN PARENT TOP                   ALIGN PARENT RIGHT
    ALIGN PARENT LEFT                   CENTER VERTICAL


                             ALIGN PARENT BOTTOM
                               CENTER HORIZONTAL




Monday, September 12, 2011
DEFINING A TABLET
  IS LIKE NAILING
  JELLO TO A WALL



                             ???   ???

Monday, September 12, 2011
IS THIS A REALLY BIG PHONE?

Monday, September 12, 2011
OR A REALLY SMALL TABLET?

Monday, September 12, 2011
IT’S DANGEROUS TO
  GO ALONE. TAKE
  THESE RESOURCE
  FOLDERS
   large, xlarge
   mdpi, hdpi, xhdpi



Monday, September 12, 2011
values/theme.xml


          <style name="ConditionalDialog"
                 parent="@android:style/Theme.Black">
              <item name="android:windowNoTitle">true</item>
          </style>




Monday, September 12, 2011
values-xlarge/theme.xml


          <style name="ConditionalDialog"
                 parent="@android:style/Theme.Dialog">
              <item name="android:windowNoTitle">true</item>
          </style>




Monday, September 12, 2011
HOW DO YOU KNOW
  WHAT SIZE DEVICE
  YOU’RE ON IN CODE?




Monday, September 12, 2011
IN YOUR LAYOUT XML
  FILE:

   <include layout="@layout/screen_size" />




Monday, September 12, 2011
layout/theme.xml

         <?xml version="1.0" encoding="utf-8"?>
         <View xmlns:android="http://schemas.android.com/apk/res/android"
         	 android:id="@+id/screen_size_normal"
         	 android:layout_width="wrap_content"
         	 android:layout_height="wrap_content"
         	 android:visibility="gone"/>




Monday, September 12, 2011
layout-large/theme.xml

         <?xml version="1.0" encoding="utf-8"?>
         <View xmlns:android="http://schemas.android.com/apk/res/android"
         	 android:id="@+id/screen_size_large"
         	 android:layout_width="wrap_content"
         	 android:layout_height="wrap_content"
         	 android:visibility="gone"/>




Monday, September 12, 2011
THERE ARE NO
  MAGIC NUMBERS.




Monday, September 12, 2011
THERE ARE NO
  MAGIC NUMBERS.

   DIMENS.XML
   INTEGERS.XML




Monday, September 12, 2011
NEVER SCALE UP
  ASSETS. USERS CAN
  TELL FROM THE
  PIXELS.



Monday, September 12, 2011
USE A HELPER CLASS
  FOR THE TRICKIER
  DIMENSIONS




Monday, September 12, 2011
screen_width / 3




Monday, September 12, 2011
PART III
                             Honeycombs




Monday, September 12, 2011
I CAN HAZ FEATURES?




Monday, September 12, 2011
I CAN HAZ FEATURES?


                             mEditor.apply();



                                   since API Level 9
Monday, September 12, 2011
REFLECTION
  Method m = SharedPreferences.Editor.class.getMethod("apply");

  // ...

  if (m != null) {
       m.invoke(mEditor);
  } else {
  	   mEditor.commit();
  }
  	 	 	
  	 	 	




Monday, September 12, 2011
WRAPPER
   classes not loaded (and verified) until it
   is called the first time

   only load the wrapper class if new
   functionality exists




Monday, September 12, 2011
PART IV
                             Optimizing for the
                               Honeycombs




Monday, September 12, 2011
ONE-LINERS FTW

    android:targetSdkVersion="11"



   android:hardwareAccelerated="true"




Monday, September 12, 2011
MENU PLEASE..




                             pulse before



                                  ??
Monday, September 12, 2011
BYOACTION BARS
                             LEFT-ALIGNED LOGO     ACTIONS




                                                             OVERFLOW
                                            Text




                                  NO MENU

Monday, September 12, 2011
FRAGMENTS
   (NOT THE BAD KIND)




Monday, September 12, 2011
PART IV
                              APKs




Monday, September 12, 2011
MULTIPLE APK
    SUPPORT

                             PHONE   TABLET
                              APK     APK




Monday, September 12, 2011
ONE APK TO RULE
    THEM ALL

                              SUPER
                             AWESOME
                               APK




Monday, September 12, 2011
TEST LIKE YOUR LIFE
    DEPENDS ON IT


                             before each release
                             and all the time
                             wherever you can
                             on every device
                             and every api level
Monday, September 12, 2011
BUT DON’T TAKE OUR
    WORD FOR IT
    EXPLORE AND
    CREATE!



Monday, September 12, 2011

Mais conteúdo relacionado

Semelhante a Pulse News: porting android app to tablet

Guiding Communication
Guiding CommunicationGuiding Communication
Guiding Communicationlakingaz
 
Developing a Progressive Mobile Strategy (Key Comm Version)
Developing a Progressive Mobile Strategy (Key Comm Version)Developing a Progressive Mobile Strategy (Key Comm Version)
Developing a Progressive Mobile Strategy (Key Comm Version)Dave Olsen
 
Keynote Appmarketing Sept 2011
Keynote Appmarketing Sept 2011Keynote Appmarketing Sept 2011
Keynote Appmarketing Sept 2011Appsfire
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Maximiliano Firtman
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateJon Liu
 
JS Tooling in Rails 3.1
JS Tooling in Rails 3.1JS Tooling in Rails 3.1
JS Tooling in Rails 3.1Duda Dornelles
 
Community Based Design with Youth Radio
Community Based Design with Youth RadioCommunity Based Design with Youth Radio
Community Based Design with Youth RadioGeorge Hayes
 
The Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebThe Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebJeff Carouth
 
Summer of tech 2011
Summer of tech 2011Summer of tech 2011
Summer of tech 2011John Clegg
 
How to speed-code a success story
How to speed-code a success storyHow to speed-code a success story
How to speed-code a success story6Wunderkinder
 

Semelhante a Pulse News: porting android app to tablet (18)

The Third WordPress
The Third WordPressThe Third WordPress
The Third WordPress
 
To infinity and beyond!
To infinity and beyond!To infinity and beyond!
To infinity and beyond!
 
Mobile? WT... F?
Mobile? WT... F?Mobile? WT... F?
Mobile? WT... F?
 
Guiding Communication
Guiding CommunicationGuiding Communication
Guiding Communication
 
Developing a Progressive Mobile Strategy (Key Comm Version)
Developing a Progressive Mobile Strategy (Key Comm Version)Developing a Progressive Mobile Strategy (Key Comm Version)
Developing a Progressive Mobile Strategy (Key Comm Version)
 
Keynote Appmarketing Sept 2011
Keynote Appmarketing Sept 2011Keynote Appmarketing Sept 2011
Keynote Appmarketing Sept 2011
 
Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5 Breaking the Mobile Web with HTML5
Breaking the Mobile Web with HTML5
 
Educause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential DebateEducause - Building a Responsive Website for the Presidential Debate
Educause - Building a Responsive Website for the Presidential Debate
 
JS Tooling in Rails 3.1
JS Tooling in Rails 3.1JS Tooling in Rails 3.1
JS Tooling in Rails 3.1
 
Community Based Design with Youth Radio
Community Based Design with Youth RadioCommunity Based Design with Youth Radio
Community Based Design with Youth Radio
 
Cours1: design d'interaction
Cours1: design d'interactionCours1: design d'interaction
Cours1: design d'interaction
 
Cours1 design d'interaction_csv
Cours1 design d'interaction_csvCours1 design d'interaction_csv
Cours1 design d'interaction_csv
 
The Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile WebThe Contextual Experience of the Mobile Web
The Contextual Experience of the Mobile Web
 
Asml esitys geniem
Asml esitys geniemAsml esitys geniem
Asml esitys geniem
 
Summer of tech 2011
Summer of tech 2011Summer of tech 2011
Summer of tech 2011
 
The Third WordPress
The Third WordPressThe Third WordPress
The Third WordPress
 
TRNK Presentation
TRNK PresentationTRNK Presentation
TRNK Presentation
 
How to speed-code a success story
How to speed-code a success storyHow to speed-code a success story
How to speed-code a success story
 

Mais de Paris Android User Group

Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Paris Android User Group
 
Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Paris Android User Group
 
Extending your apps to wearables - DroidCon Paris 2014
Extending your apps to wearables -  DroidCon Paris 2014Extending your apps to wearables -  DroidCon Paris 2014
Extending your apps to wearables - DroidCon Paris 2014Paris Android User Group
 
Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Paris Android User Group
 
Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Paris Android User Group
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Paris Android User Group
 
Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Paris Android User Group
 
Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Paris Android User Group
 
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Paris Android User Group
 
maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014Paris Android User Group
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Paris Android User Group
 
Holo material design transition - DroidCon Paris 2014
Holo material design transition - DroidCon Paris 2014Holo material design transition - DroidCon Paris 2014
Holo material design transition - DroidCon Paris 2014Paris Android User Group
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Paris Android User Group
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Paris Android User Group
 
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Paris Android User Group
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseParis Android User Group
 
Efficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardEfficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardParis Android User Group
 

Mais de Paris Android User Group (20)

Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014Workshop: building your mobile backend with Parse - Droidcon Paris2014
Workshop: building your mobile backend with Parse - Droidcon Paris2014
 
Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014Workshop: Amazon developer ecosystem - DroidCon Paris2014
Workshop: Amazon developer ecosystem - DroidCon Paris2014
 
Extending your apps to wearables - DroidCon Paris 2014
Extending your apps to wearables -  DroidCon Paris 2014Extending your apps to wearables -  DroidCon Paris 2014
Extending your apps to wearables - DroidCon Paris 2014
 
Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014Scaling android development - DroidCon Paris 2014
Scaling android development - DroidCon Paris 2014
 
Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014Ingredient of awesome app - DroidCon Paris 2014
Ingredient of awesome app - DroidCon Paris 2014
 
Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014
 
Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014Deep dive into android restoration - DroidCon Paris 2014
Deep dive into android restoration - DroidCon Paris 2014
 
Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014Archos Android based connected home solution - DroidCon Paris 2014
Archos Android based connected home solution - DroidCon Paris 2014
 
Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014Porting VLC on Android - DroidCon Paris 2014
Porting VLC on Android - DroidCon Paris 2014
 
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
Robotium vs Espresso: Get ready to rumble ! - DroidCon Paris 2014
 
Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014
 
maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014maximize app engagement and monetization - DroidCon Paris 2014
maximize app engagement and monetization - DroidCon Paris 2014
 
Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014Using the android ndk - DroidCon Paris 2014
Using the android ndk - DroidCon Paris 2014
 
Holo material design transition - DroidCon Paris 2014
Holo material design transition - DroidCon Paris 2014Holo material design transition - DroidCon Paris 2014
Holo material design transition - DroidCon Paris 2014
 
Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014
 
Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014Google glass droidcon - DroidCon Paris 2014
Google glass droidcon - DroidCon Paris 2014
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014
 
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
Petit design Grande humanité par Geoffrey Dorne - DroidCon Paris 2014
 
What's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet HaaseWhat's new in android 4.4 - Romain Guy & Chet Haase
What's new in android 4.4 - Romain Guy & Chet Haase
 
Efficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardEfficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas Roard
 

Último

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Último (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Pulse News: porting android app to tablet

  • 1. ALL SIZES FIT ONE A Thrilling Adventure in Application Design for Tablets Monday, September 12, 2011
  • 2. ALBERT LAI @albertlai JEAN HSU @jyhsu ANDROID AT PULSE Monday, September 12, 2011
  • 4. PART I e Human Component Monday, September 12, 2011
  • 5. WHEN DEVELOPERS SAY SOMETHING IS IMPOSSIBLE... THEY’RE LYING Monday, September 12, 2011
  • 6. TABLETS ARE A COMPLETELY NEW EXPERIENCE. DESIGN APPROPRIATELY. Monday, September 12, 2011
  • 7. NEVER TRUST THE SYSTEM TO DO A HUMAN’S JOB Monday, September 12, 2011
  • 8. DIALOGS CAN KEEP YOUR APP FROM LOOKING SILLY Monday, September 12, 2011
  • 9. stretchy SILLY Monday, September 12, 2011
  • 10. dialog BETTER! Monday, September 12, 2011
  • 11. USERS ROTATE TABLETS. THIS IS A FACT OF LIFE. Monday, September 12, 2011
  • 12. THINK OF HANDHELD AND TABLET-STAND STYLE USAGES Monday, September 12, 2011
  • 13. THUMB FRIENDLY NAVIGATION Monday, September 12, 2011
  • 14. PART II Now for the Technical Stuff Monday, September 12, 2011
  • 15. RELATIVE LAYOUTS ARE AN ANDROID DEVELOPER’S BEST FRIEND Monday, September 12, 2011
  • 16. ALIGN PARENT TOP ALIGN PARENT LEFT ALIGN PARENT RIGHT CENTER VERTICAL ALIGN PARENT BOTTOM CENTER HORIZONTAL Monday, September 12, 2011
  • 17. ALIGN PARENT TOP ALIGN PARENT RIGHT ALIGN PARENT LEFT CENTER VERTICAL ALIGN PARENT BOTTOM CENTER HORIZONTAL Monday, September 12, 2011
  • 18. DEFINING A TABLET IS LIKE NAILING JELLO TO A WALL ??? ??? Monday, September 12, 2011
  • 19. IS THIS A REALLY BIG PHONE? Monday, September 12, 2011
  • 20. OR A REALLY SMALL TABLET? Monday, September 12, 2011
  • 21. IT’S DANGEROUS TO GO ALONE. TAKE THESE RESOURCE FOLDERS large, xlarge mdpi, hdpi, xhdpi Monday, September 12, 2011
  • 22. values/theme.xml <style name="ConditionalDialog" parent="@android:style/Theme.Black"> <item name="android:windowNoTitle">true</item> </style> Monday, September 12, 2011
  • 23. values-xlarge/theme.xml <style name="ConditionalDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> </style> Monday, September 12, 2011
  • 24. HOW DO YOU KNOW WHAT SIZE DEVICE YOU’RE ON IN CODE? Monday, September 12, 2011
  • 25. IN YOUR LAYOUT XML FILE: <include layout="@layout/screen_size" /> Monday, September 12, 2011
  • 26. layout/theme.xml <?xml version="1.0" encoding="utf-8"?> <View xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_size_normal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone"/> Monday, September 12, 2011
  • 27. layout-large/theme.xml <?xml version="1.0" encoding="utf-8"?> <View xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/screen_size_large" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone"/> Monday, September 12, 2011
  • 28. THERE ARE NO MAGIC NUMBERS. Monday, September 12, 2011
  • 29. THERE ARE NO MAGIC NUMBERS. DIMENS.XML INTEGERS.XML Monday, September 12, 2011
  • 30. NEVER SCALE UP ASSETS. USERS CAN TELL FROM THE PIXELS. Monday, September 12, 2011
  • 31. USE A HELPER CLASS FOR THE TRICKIER DIMENSIONS Monday, September 12, 2011
  • 32. screen_width / 3 Monday, September 12, 2011
  • 33. PART III Honeycombs Monday, September 12, 2011
  • 34. I CAN HAZ FEATURES? Monday, September 12, 2011
  • 35. I CAN HAZ FEATURES? mEditor.apply(); since API Level 9 Monday, September 12, 2011
  • 36. REFLECTION Method m = SharedPreferences.Editor.class.getMethod("apply"); // ... if (m != null) { m.invoke(mEditor); } else { mEditor.commit(); } Monday, September 12, 2011
  • 37. WRAPPER classes not loaded (and verified) until it is called the first time only load the wrapper class if new functionality exists Monday, September 12, 2011
  • 38. PART IV Optimizing for the Honeycombs Monday, September 12, 2011
  • 39. ONE-LINERS FTW android:targetSdkVersion="11" android:hardwareAccelerated="true" Monday, September 12, 2011
  • 40. MENU PLEASE.. pulse before ?? Monday, September 12, 2011
  • 41. BYOACTION BARS LEFT-ALIGNED LOGO ACTIONS OVERFLOW Text NO MENU Monday, September 12, 2011
  • 42. FRAGMENTS (NOT THE BAD KIND) Monday, September 12, 2011
  • 43. PART IV APKs Monday, September 12, 2011
  • 44. MULTIPLE APK SUPPORT PHONE TABLET APK APK Monday, September 12, 2011
  • 45. ONE APK TO RULE THEM ALL SUPER AWESOME APK Monday, September 12, 2011
  • 46. TEST LIKE YOUR LIFE DEPENDS ON IT before each release and all the time wherever you can on every device and every api level Monday, September 12, 2011
  • 47. BUT DON’T TAKE OUR WORD FOR IT EXPLORE AND CREATE! Monday, September 12, 2011