Native Mobile App Development

quantityforeheadΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

67 εμφανίσεις

Native Mobile App
Development
Mike Ho
Quasidea Development, LLC
phptek 2012
• Chicago, IL • May 25, 2012
Soli Deo Gloria
 Romans 12:1-8
polls, polls, polls

Who does
not
have one?

Which one?

Mobile App Strategy?

Native vs. HTML5 vs. Hybrid vs. ???
what the... isn’t this
php
tek

Over 100 million subscribers in the US
source: Comscore, for the end of January 2012

1.7 Billion devices globally by 2017
source: Ovum Ltd., May 2012

Mobile Strategy for Web Teams

(PHP ! Dyson) && (PHP  Elmer’s)
lies, damned lies
oh, and statistics
49%
29%
15%
4%
2%
Android
iOS
Blackberry
Windows Mobile
Others (Symbian, WebOS, etc.)
source: Comscore, for the end of January 2012
major approaches

HTML5

Hybrid

Native
what’s the best?
Know your audience,
Know your app.
It depends.
HTML5

Pros

Most compatible with current skillset

Lowest barrier to entry

Low cost of of ongoing maintenance

Cons

Lowest discoverability

Lowest common denominator

No (or very limited) offline access
HTML5

Tips

Use Android Emulator and iOS Simulator

Use a JS Framework

jQuery Mobile

jQTouch / Sencha Touch

KISS

Vet other frameworks
Hybrid

Many framework providers

PhoneGap

Recently Acquired by Adobe

Open-sourced as Apache Cordova

Titanium

Created by Appcelerator

Commercial License
Hybrid
Native Framework Libraries
Client Framework
Hybrid

Frameworks that implement WebViews
Code is written in JS, HTML and CSS
In short, it’s an embedded HTML5 App

Wrapped into a deployable, binary App
Usually compiled “natively”

Can be deployed on multiple platforms

Android

iOS

Blackberry, Windows Mobile, etc.
Your Application’s JS Code
The Framework’s Libraries (in native code)
WinMo APIs
iOS APIs
Android APIs
Normalized Calls!

Write once, run anywhere.
Hybrid

Hooks for
some
Native API
Calls

Watch out... not always fully
supported
Hybrid
Demo
Hybrid

Pros

“Sorta” compatible with current skillset

Low cost of of ongoing maintenance

High discoverability

Cons

Still a low common denominator

Easy to underestimate learning curve

Performance issues

At the mercy of the framework provider
e.g. Cloud Storage

Requires Submission / Approval
Hybrid

Tips

Watch out for UX Issues

Choose wisely

Pre-test APIs rigorously

Don’t get one-starred

Consumer apps should have native in the
budget
Native

Downloading and using the native SDKs

Writing in natively supported languages,
running directly on top of the runtime

Android
: Android SDK, Java, Dalvik (*)

iOS
: iOS SDK, Objective-C, Obj-C Runtime

WinMo
: Windows Mobile DTK, C, .NET
Runtime
Native

Pros

Best performance

High discoverability

Immediate access to latest APIs

Largest possible support networks

Cons

Longer development cycle

Steep learning curve

High cost of maintenance (multiple
platforms)

Requires Submission / Approval
Native

Tips on Team Setup

Horizontal vs. Vertical Roles

Crystal Clear WebService APIs

JSON, XML, REST, SOAP, whatever

Language Choices
Native

Tips on Architecture

Library of Frameworks

SQLite and ORM
Native

A Note about CoreData

Incompatible with the “LAMP-style” of
development approaches

Cannot query CoreData

SQLite supported natively

Database versioning
Native

Tips on Development Environment

Single Source Control

Easily Switch Environments

Background Coloring

Android / Eclipse PDT
Native

Other Tips

Budget for Memory Management

Budget for Polish and Sheen

Take advantage of your skillsets
Mobile App
Development

Only way is to try

Experimenting? Go cheap.

“iOS Development Primer for PHP Developers”
May 24 at 4pm
questions?

Email:
mikequasidea.com

WE ARE HIRING for uParts, Inc.

Seed-funded Startup in the Automotive Collision Repair Industry

Founded by a team of folks that have had C-Level roles at startups
that have gone public

Looking for experienced developers (regardless of technology)

Currently using
LAMP
and
.NET

iOS
and
NoSQL
soon

Relocation reimbursement to Southern California available