Intro to Android for the iOS Fan

Preview:

DESCRIPTION

This presentation was given at the Denver Java Users Group on Jan 11 2011.

Citation preview

Intro to Android For the iOS fan

Denver Java Users GroupJanuary 11, 2012

Mike Wolfson

About Me

Droid Of The Day

Introduction

• iPhone is different than Android–Can’t directly port–Web is not the same either

• Android has it’s own peculiarities and UI paradigms, that must considered

• Asset management is particularly important

Open Handset Alliance

”Android was built from the ground up with the explicit goal to be the first open, complete, and free platform created specifically for mobile devices.”

http://www.openhandsetalliance.com

Revision lifecycle

• Named after deserts–Donut, Éclair, Froyo, Honeycomb

• “Ice Cream Sandwich” (OS 4.0)–Due Q4–OS 4.0– “Universal OS”

• 6 month releases

Open and Free

• Open Source:• No licensing cost

for manufacturers• Can be used in

different ways

http://source.android.com/download

Different “Flavors” of Android

• AOSP• With Google

Experience• Amazon Fork• CyanogenMod

Complete

• Computer in a box• Android@Home• TV• One OS to run

everywhere

Growth

• Manufacturers and carriers love it• 700,000 Devices Activated a day• Developers love it– Much less control– Less restrictions make for easier money making

• It’s getting big– 36 OEMs, 215 Carriers, 450K Devs

Lots and lots of different devices

Devices – iOS

Devices – Android

Vendor Customizations

GoogleStandard UI

HTCSense UI

Samsung Touch Wiz

MotorolaMoto Blur

Many Phones\Carriers\Manufacturers

• Fragmentation• Not all phones are created equal• Vendor UI Customization• Carrier is in control• Irregular upgrade lifecycle

Multiple resources and layouts

• Multiple Layouts and Graphic Assets• Can also be used for

language localization• Use Density Independent

values (DP) in layoutsEx. android:paddingLeft="8dp“

• draw9patch

Testing Multiple Devices

• Emulator• “Dogfooding”

Developing Apps

Android Dev Tools

• Eclipse• Java• Common tools and add-ons are supported by

default• Object oriented with a strong emphasis for

configuration over coding• Tools are optional (not required)

Automated Testing

• Continuous Integration tools– Maven\Jenkins pluginshttp://code.google.com/p/maven-android-plugin/Performance testing

• SDK Tools– TraceRunner, etc– Monkey Runner

• External Resources– Robotium

Support resources

• iPhone dev’s must sign NDA, which means content is fairly light on the web–Must pay to join dev program,

where all the info is.• Plenty of free Android resources

Distributing Apps

App Store• Content of store• Approval Process• Feedback• Web component• Low barrier to entry ($25/life)• Android Market not mandatory– Side load–Alternative markets

UI Patterns & Paradigms

Icons

• “I won’t download an app with crappy icons”• Google clearly defines guidelines• Ice Cream Sandwich changes

http://developer.android.com/guide/practices/ui_guidelines/icon_design.html

Android UI Paradigms

• 4 buttons– “Back”– “Menu” - context sensitive – “Home”– “Search” – context sensitive

• Widgets and shortcuts • Customizable Home screen• Notifications• Live Wallpaper• “App Drawer”

Navigation

iOS Android

Dashboard Pattern

http://www.androidpatterns.com/uap_pattern/dashboard

Action Bar Pattern

http://www.androidpatterns.com/uap_pattern/action-bar

Questions?

Part 2 prep (optional):1. Download Project: http://

dl.dropbox.com/u/23589031/DJUG.zip2. Unzip project to desktop3. In Eclipse: File\Import\Import Existing

Project into workspace