SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
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

Más contenido relacionado

Similar 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
 
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
 
Geometry Section 0-4 1112
Geometry Section 0-4 1112Geometry Section 0-4 1112
Geometry Section 0-4 1112Jimbo Lamb
 

Similar 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
 
Cours1 design d'interaction_csv
Cours1 design d'interaction_csvCours1 design d'interaction_csv
Cours1 design d'interaction_csv
 
Cours1: design d'interaction
Cours1: design d'interactionCours1: design d'interaction
Cours1: design d'interaction
 
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
 
Geometry Section 0-4 1112
Geometry Section 0-4 1112Geometry Section 0-4 1112
Geometry Section 0-4 1112
 

Más 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
 

Más 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

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMKumar Satyam
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
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
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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