Upload
applico
View
667
Download
0
Tags:
Embed Size (px)
Citation preview
Applico…Android...…and All the Above
Agenda Applico: Who We Are Android – What is it? Android Classic Android Tablet Android Now - ICS Android Compatibility Future of Android
Applico
Headquartered in Manhattan (23rd and 3rd), with offices in LA, Chicago and Boston (2012)
We make mobile apps … and more! Technical footprints come from the DoD We don’t just make apps, we make
systems.
Android – What is it?
Technology stack that includes an operating system and a set of APIs
Based on the Linux kernel and Java. Supports SQLite for data storage
Supports various media formats Integrated browser based on WebKit …..
And More!
Android 1.6 – 2.X Classic Android (< 3.0) Each Screen (Activity) has its own activity
lifecycle onCreate onRestart onStart onResume onPause onStop onDestroy
Android 1.6 – 2.X To maximize screen real-
estate, navigation elements were off screen Menu Button Gesture’s are rarely used The back button was
used to navigate throughout the app
Android 1.6 – 2.X Rotation changes had the potential to kill
long running processes. 3D Animations (for the most part) were
dedicated tasks for OpenGL There is no support for hardware
acceleration Devices typically fell into 4 sizes and 3
resolutions Small, Normal, Large, X-large (2.3) LDPI, MDPI, HDPI
Honeycomb Honeycomb (3.x) is targeted at just tablets Each Activity still has its own lifecycle, but
that activity now contains elements (Fragments) each with their own lifecycles. onAttach onCreate onCreateView onDestroyView onDetach
HoneycombHoneycomb
Activity
Fragment A
I have one model view
and controller!
Fragment B
I have one model view
and controller!
Pre-HoneycombActivity
I have one model view and controller!
Honeycomb How can you add fragments to your activity?
ProgrammaticallyFragmentTransaction ft = getFragmentManager().beginTransaction();FooFragment frag = new Fragment();ft.add(id, frag);Ft.commit;
Through Layouts <fragment android:name=“com.foo.FooFragment”
android:Id=“@+id/foo” android:layout_width=“wrap_content” android:layout_height=“wrap_content”/>
Don’t think of Fragments as UI elements!
Honeycomb No more menu
options! Hardware button is
being phased out All navigation is
being moved to an on screen model System Bar Action Bar
Honeycomb New Animation library Renderscript
Renderscript is based on C. Provides some performance gains over OpenGL
Usability, while it is a set of new APIs it does simply development and makes the initialization of rendering easier
Support for large heap. Devices can allocate up to 256MBs to the heap compared to 2.X which is 16MB
Multiple Screen Sizes are now based on width: Before: res/layout-small, res/layout-normal, res/layout-
large Now: We use minimum screen width, res/sw600dp,
res/sw800dp While it’s not idea it gives developers more control when
dealing with OEMs
Ice Cream Sandwich – 4.0 Ice Cream Sandwich!!!! It’s a unified version of the OS that combines
Honeycomb and 2.X Fragments and Loaders On Screen Navigation – Good-Bye Hardware
Buttons! Build once for phones and tablets, no need for
multiple APKs. Also adds facial unlock, NFC, camera
enhancements, a social networking api, an official calendar API (Hooray!) and much more
Ice Cream Sandwich How do I check for dual pane mode?
Add a view to your layout! If the View is null, start a new activity, otherwise show the
fragmentView detailsFrame = getActivity().findViewById(R.id.details);if(detailsFrame != null){
mDualPane = true;}If(mDualPane){
showFragment(…use the fragment manager)}else{
startActivity();}
Ice Cream Sandwich
Compatibility How do I target the largest audience? Android penetration of Feb 1, 2012
Android 4.0 : 1% Android 3.0 : 3.5% Android 2.2 – 2.X: 86.4%*Source: http://developer.android.com/resources/dashboard/platform-versions.html
Unless you need specific 3.0+ API support target 2.2+!!! (You can still turn on large heap and hardware acceleration in the manifest file, older versions will still run and ignore it!)
Compatibility Why?
There are a lot of nice APIs available for 3.0+, but the biggest changes to prepare for are the architectural and navigational ones.
85%+ is using 2.2! How can I make legacy apps feel
ICS/Honeycomb like and use the new design patterns? Compatibility packages! Support for Android 1.6+
Compatibility What’s in it?
Official Android Package supports Fragments! ActionBarSherlock is an open source extension to the
compatibility package!*source: http://actionbarsherlock.com/
How do I use it? The official support package is a jar that you can
include in your project The ActionBarSherlock is a library project
Using these libraries will help prepare you to officially support ICS while not having to design two apps and maintain two apk’s.
Future of Android ICS will penetrate the market slowly.
Need for multiple APKs will dwindle Ultimately I would bet on the back
button disappearing (usability issues) More NFC! Integration with Android@Home
Questions?