SlideShare a Scribd company logo
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

More Related Content

Similar to Pulse News: porting android app to tablet

The Third WordPress
The Third WordPressThe Third WordPress
The Third WordPress
Marty Thornley
 
To infinity and beyond!
To infinity and beyond!To infinity and beyond!
To infinity and beyond!
noZom Information Technology NGO
 
Mobile? WT... F?
Mobile? WT... F?Mobile? WT... F?
Mobile? WT... F?
Vicker Leung
 
Guiding Communication
Guiding CommunicationGuiding Communication
Guiding Communication
lakingaz
 
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 2011
Appsfire
 
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 Debate
Jon Liu
 
JS Tooling in Rails 3.1
JS Tooling in Rails 3.1JS Tooling in Rails 3.1
JS Tooling in Rails 3.1
Duda Dornelles
 
Community Based Design with Youth Radio
Community Based Design with Youth RadioCommunity Based Design with Youth Radio
Community Based Design with Youth Radio
George Hayes
 
Cours1: design d'interaction
Cours1: design d'interactionCours1: design d'interaction
Cours1: design d'interaction
celinecelines semaan vernon
 
Cours1 design d'interaction_csv
Cours1 design d'interaction_csvCours1 design d'interaction_csv
Cours1 design d'interaction_csv
celinecelines semaan vernon
 
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
Jeff Carouth
 
Asml esitys geniem
Asml esitys geniemAsml esitys geniem
Asml esitys geniem
Tuomas Kumpula
 
Summer of tech 2011
Summer of tech 2011Summer of tech 2011
Summer of tech 2011
John Clegg
 
The Third WordPress
The Third WordPressThe Third WordPress
The Third WordPress
Marty Thornley
 
TRNK Presentation
TRNK PresentationTRNK Presentation
TRNK Presentation
Dennis Reumer
 
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
6Wunderkinder
 
Geometry Section 0-4 1112
Geometry Section 0-4 1112Geometry Section 0-4 1112
Geometry Section 0-4 1112
Jimbo Lamb
 

Similar to Pulse News: porting android app to tablet (19)

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

More from 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 Paris2014
Paris 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 Paris2014
Paris 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 2014
Paris 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 2014
Paris 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 2014
Paris Android User Group
 
Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014Framing the canvas - DroidCon Paris 2014
Framing the canvas - DroidCon Paris 2014
Paris 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 2014
Paris 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 2014
Paris 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 2014
Paris 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 2014
Paris Android User Group
 
Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014Buildsystem.mk - DroidCon Paris 2014
Buildsystem.mk - DroidCon Paris 2014
Paris 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 2014
Paris 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 2014
Paris 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 2014
Paris Android User Group
 
Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014Death to passwords - DroidCon Paris 2014
Death to passwords - DroidCon Paris 2014
Paris 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 2014
Paris 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 2014
Paris 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 2014
Paris 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 Haase
Paris Android User Group
 
Efficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas RoardEfficient Image Processing - Nicolas Roard
Efficient Image Processing - Nicolas Roard
Paris Android User Group
 

More from 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
 

Recently uploaded

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 

Recently uploaded (20)

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 

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