32
Modern mobile development overview Platforms, Trends, Specifics

Modern mobile development overview

Embed Size (px)

Citation preview

Page 1: Modern mobile development overview

Modern mobile development overview

Platforms, Trends, Specifics

Page 2: Modern mobile development overview

Agenda

1.Introduction2.A bit of history3.High-level overview of the market. Who are the

biggest players? (as of now)4.Trends 5.JavaME/Windows CE legacy platforms6.BlackBerry platform7.Symbian platform8.iOS (iPhone OS)9.Android10.Windows Phone 7, MeeGO, ?11.Closing comments/QAs

Page 3: Modern mobile development overview

A bit of history

• What used to be a mobile development?• Major players: JavaME, Symbian, Windows

Mobile, BlackBerry• How to blow your platform. User guide

o Be arroganto Don't tolerate your rivalso Disrespect userso Disrespect developerso Don't admit your faults o Stop evolvingo The world is changing - IGNORE

Page 4: Modern mobile development overview

Drive the Evolution

• From enterprise to consumers• Growing community of loyal users• Show respect to devs and make devs

respect the platform• Excel the average app quality• Remove frustration• Choose your target audience carefully• Integration is the key - be social!• Show some uniqueness• Be innovative

Page 5: Modern mobile development overview

The most important thing to remember

Money drives innovation

(vendor -> manufacturer -> consumer -> developer ->)

Page 6: Modern mobile development overview

Short Q/A?

Who drives the evolution?Android, iPhone

Who strives for evolution?

BlackBerry, Symbian

Fresh meat  Windows Phone 7, MeeGO,

WebOS

Page 7: Modern mobile development overview

What constitutes a mature mobile development platform?

• Mature SDK and tools• Healthy developer community• Carefully chosen target audience • Effective means for app distribution• How can I make money with this

platform? • Continuous support from vendor

Page 8: Modern mobile development overview

Java ME (J2ME)

• Developed by Sun in 1999• Set of specifications without the

implementation (profiles and JSRs)• Runtime environment designed to work

on embedded devices• Java 1.3 language• The platform is fragmented• Your options are limited - keep that in

mind• Still viable (2.1 billion mobile phones)• Entry level is low

Page 9: Modern mobile development overview

What's in the box? MIDP 2.0

 

Core packages primitives, collections, 

User Interface Package

Subset of Java AWT, game APIs

Networking Package Generic Connection framework

Persistence Package Record store

Application Lifecycle Package

Defines lifecycle for MIDlets

Audio Package Part of Mobile Media API

Public Key Package Key verification

Page 10: Modern mobile development overview

Nightmares of JavaME

•Signing nightmare•Distribution nightmare•UI and UX nightmares•Media player nightmare•App size nightmare•Emulator nightmare•Stone Age nightmare

Page 11: Modern mobile development overview

Java ME (J2ME), lessons learned

• Fragmentation is evil (especially when it's driven by design!)

• Bureaucracy kills the platform• You need means for unified app distribution • Good UI matters! • Be ready for changes• Java ME is a good training ground because

o it's easy to learn o intuitive to program (language, APIs)o provides little or no choice

•  Java ME is still alive (Profile 3.0, 2009)

Page 12: Modern mobile development overview

Recommendation

If you want to test how does it feel to be mobile developer, start with JavaME. It is easy to learn, intuitive to program and it will provide you with all basic flavors of mobile development. I don't think is has a future in outsourcing, though. 

Page 13: Modern mobile development overview

What about WinCE/WinMobile?

Do not disturb the dead.The advent of Windows Phone 7 meant the end of WinMobile era - it is silly to invest time

and money

Page 14: Modern mobile development overview

BlackBerry platform

• Proprietary platform developed by RIM• Originally enterprise oriented• Based on JavaME specifications +

proprietary APIs• JavaME origin means presence of

some elements from Stone Age • Reveals its greatest value with BlackBerry

Enterprise Server• Tries to be consumer-friendly• Devices are produced by one manufacturer

so the fragmentation is limited

Page 15: Modern mobile development overview

BlackBerry Enterprise Deployment

• Solution is secure and corporate-friendly

• Has unique synchronization capabilities

• Is backed with cellular operator support

• Provides means for developing stunning business applications

Page 16: Modern mobile development overview

Pls, tell me more

• BlackBerry has far reacher set of APIs than JavaME• But because of ... you may run into trouble

o Stone Age issues in 2010 (old Java 1.3, missing APIs)

o Relatively poor UI and UXo Multiple compatibility issues (form-factors, input

methods, API problems)o Slower market adoptiono Platform doesn't enforce how the application

should look like• Nevertheless it is a mature and evolving platform• Key strengths are its integration capabilities and

multiple options when choosing application's format

Page 17: Modern mobile development overview

Symbian as a platform• What is Symbian? Disambiguation is needed• A few key facts:

o As of now is backed only by Nokiao Has a long history of development and

supporto Has suffered from good deal of

fragmentationo Offers an enormous code library of

componentso Developing is done with a dialect of C++o Entry-level is higho Devices based on Symbian accounted for

43.5% of worldwide smartphone sales in 2010 Q2.

Page 18: Modern mobile development overview

Confessions of a Symbian developer• I have to use an anemic subtype of C++. Give

me back destructors and STL (at least std::string)!!! 

• How would you explain T-, R- and C- classes to your parents?

• I deal with ENORMOUS library which fails to be developer-friendly.

• I have to hand-code a lot of simple things again and again.

• Please, don't make me code UI again - my fingers hurt!

• Document-View, are you serious?• Why can't I use threads in my application?• Give me proper documentation!• Please, make Nokia stop producing devices.

Page 19: Modern mobile development overview

OK, what's the keynote?

• Apart from complexity Symbian is a mature platform• Its key strengths:

o The large market shareo Continuous support from Nokiao It is feature-rich

• and weaknesses:o It may die in the next 2 years and may be replaced

with something differento It can't keep up with modern trendso Nokia can't produce decent hardwareo It is over-engineered and complexo The cost of development is high

• Resolution: do not invest in learning Symbian unless you absolutely have to

Page 20: Modern mobile development overview

Android

• Android and the hype behind it• Perception of the platform• Target audience and positioning• Is Android open?• Consumers first, right Google?• Reasons behind criticism. One big reason.• Who makes money with Android?• Should you go Android?

Page 21: Modern mobile development overview

Advantages of Android

1.It drives the innovation2.Productive development (in a sense)3.WebKit-powered browser4.Big community5.A lot of ways to position your app6.Integrate with everything7.A lot of passionate evangelists on the

Web

Page 22: Modern mobile development overview

and now disadvantages

1.Fragmentation issues2.Sophisticated learning curve. The platform is

not hard to grasp, but it is overdesigned.3.Platform beyond us all!4.Apps don't sell5.Did I mention fragmentation issues?6.It is not consumer oriented. Period.

Page 23: Modern mobile development overview

I'm an engineer, tell me about development1.Android is free to develop for. No investments

needed2.Lots of info on the Web, lots of books written3.Google documentation is really good4.SDK is packed with tools5.It is Java 5 (well, almost) - you can use any library on

the market (well, almost)6.Google got you covered in terms of UI, resources,

form-factors, security, debugging, testing and integration

7.Google enforces strict application model - you have to keep  a lot of rules in mind

8.Framework is good but over-engineered - you need to learn things

Page 24: Modern mobile development overview

What strategy does Google follow?1.Develop services (Search, GMail, Docs, Calendar...)2.Make consumers use them3.Sell ads4.HTML5 for the victory - start with Gears5.Develop power-features for Services6.Make businesses use the services7.Develop Chrome browser8.Light the hype fire over clouds + introduce AppEngine9.Embark for HTML510.Introduce Android. Tell the world it is open. Integrate

it with Services11.Port power-features of Services to HTML512.Android has WebKit integrated, remember?13.Start integrating business and consumer oriented

features14.Conquer tablets market

Page 25: Modern mobile development overview

What strategy does Google follow?

By reaching this point you have:1.Enormous consumers' base– Hype over your innovations that lives on its

own– Next-gen development strategies that are

right at your door: HTML5, Clouds– People follow your advice and integrate with

EVERYTHING– Integration means massive exchange of

data– This all gives you freedom to...

Page 26: Modern mobile development overview

What strategy does Google follow?

SELL MORE ADS

Android is a long term investment that will pay off brilliantly. Google doesn't need to

manufacture devices, it needs consumers' base.

Page 27: Modern mobile development overview

Present and future trends

1.Cross-platform development (AppCelerometer, PhoneGap, ipFaces, etc)

2.Web development3.Scripting4.Mobile Advertising5.More business-oriented applications on the market6.Tighter integration with cloud storages7.Mobile payments (NFC)8.Media applications (HD is here)9.Augmented reality apps

Page 28: Modern mobile development overview

Cross-platform development

• You use web apis instead of native sdko HTML, CSS, Javascript

• Major playerso PhoneGapo Rhodeso Appcelerometer Titanium (+Aptana)o IPFaceso JQuery Mobile 

• Device-specific featureso Sensors, vibration, touch, orientationo Multimedia, camerao File IO o Phone APIs, etc

Page 29: Modern mobile development overview

iOS• Apple sells high-end devices to consumer

and doesn't sell services• 2007 was a good year to start invasion• We know the original iPhone was a poor

replacement for a cell phone• But it was a great platform to run

applications• A brief overview of iOS versions - Apple had

enough time to polish their platform• iPhone 4 is a decent piece of hardware now• It brings value to consumers and to

businesses

Page 30: Modern mobile development overview

Why is iOS platform valuable?• If I were to develop a business app I would start with

one for iPhoneo It has healthy ecosystem for building apps  o Support of multiple Exchange accountso HTML 5 engineo Powerful WebViewo Pusho Remote wipeo Multitaskingo iAdo Gradual OTA updates

• same for consumer applications• All cross-platform frameworks support iOS

development• Android doesn't have that much of a business value

(as of Jan 2011)

Page 31: Modern mobile development overview

General misconceptions about iOS development• Objective-C is a nightmare - Not true• and consequently hard to use API - Not true  • XCode is the worst IDE ever - It could be much

better• Memory management routines are of evil - False.

They are much better designed in Objective-C than in C++. But you have to live with them

• It would take ages to develop an app - It depends• I will be rejected in the first place because Apple

is unreasonable - Read tips from Apple carefully

Page 32: Modern mobile development overview

Q/A?