Mobile Development - EIT Summer Student Program

neversinkhurriedMobile - Wireless

Nov 12, 2013 (4 years and 8 months ago)


Mobile Development
Educational IT - Summer Student Program
Office of Medical Education, University of Toronto
Edward Brawer
Release Date
July 1st, 2011
HP TouchPad
August 18th, 2011
HP TouchPad
Advertised as the iPad killer.
2nd most desired tablet in 2011,
5% of market,
inventories sold out at fire-sale prices.
Cutting losses - avoiding the sunk cost fallacy.
HP TouchPad
Months to learn WebOS.
You will never get those months back.
Release Date
April 19th, 2011
BlackBerry PlayBook
Not yet
Going to be very expensive for BlackBerry.
BlackBerry PlayBook
Advertised as the iPad killer.
Uses PlayBook OS
BlackBerry developers have to relearn everything.
So there aren’t many apps.
Microsoft Surface RT
The iPad killer
For real.
Microsoft Surface RT
Cost to Microsoft
$900 Million (so far)
Cost to you
Unless you did the following

Got Windows 8

Got a Surface RT

Downloaded Visual Express Studio 2012 for Windows 8

Learned C or C or Visual Basic
Moral of the Story

Don’t develop for a platform because a BigCompany™ is behind it.

Don’t develop for a platform JUST because it currently has large
market share. That can change FAST.

Don’t commit months to learning a programming language and API on
the latest gamble to make a kamikaze run at the iPad.
That’s nice, but what about
mobile development?
Your most important choice:
The platform
You don’t have the time or resources
to develop for everything.
Make an informed decision.
You should have a strong opinion on this.
Scarcity of Resources
Two real choices
iOS vs Android
OS Fragmentation
The gingerbread is very stale, don’t eat it.
iOS vs Android
Marketshare Forecast
This is a forecast, so it is utterly meaningless.
Profits tell you what people really want. Marketshare alone is misleading.
iOS vs Android
Marketshare vs Profit
3.12% Apple
1.30% Samsung
0.41% All Android
iOS vs Android
App Store Revenues
Apple App Store
Google Play Store
iOS vs Android

Develop for both.

Prioritize based on your audience if you have the data.

Better yet, start with whichever you are more comfortable with.
That’s nice, but what about
mobile development?
What to Learn & Use
Android OS
Sublime Text 2
*Actually a clone of the Java API
Developing for iOS

Get a Mac

Download Xcode

Some things happens

Register as an Apple Developer

Register with iTunes Connect

Publish on the App Store
Get a Mac
Download Xcode
Launch Mac App Store
Some things happen

Learn Objective-C

It is 10x easier than in 2007. For example, no more memory
management required. If you know PHP, you can get this.

Use all the examples and resources available on the
internet. There is tons of info out there.

This will take a few months, but it’s worth it.
Register as an Apple Developer
Register with iTunes Connect
Publish on the App Store
So long as your App doesn’t crash, or
break Apple’s guidelines, it will get
accepted in about a week.
You should still probably pray to your
deity of preference,
and if you don’t have one, pray to
Developing for Android

Whatever you have probably works

Download Eclipse

Some things happens

Register with Google Play as a developer

Publish on the Google Play Store
Whatever you have probably works
Mac OS, Windows, no problem.
Download Eclipse

Get it at

Get the Android API at
(Un?)Fair Warning
Eclipse is hard to use, and generally horrible in every way imaginable.
Register with Google Play
This is easy, unlike Apple.
Publish on Google Play
Google Play is based on the honour system:
they will accept whatever you upload.
They will only scrutinize your App if they get complaints or it ends up on
the news because it does something horribly bad.
Apple cares if your App is horrible (UI, Experience). Google mostly
Developing for Everything

Learn HTML5

Learn CSS3

Learn Javascript and JQuery
Get Tricky
If you are already good with HTML5/CSS3/JS
Add this to your
Your HTML files will now display properly on a mobile device.
<meta  name="viewport"  content="width=device-­‐width,  initial-­‐scale=1">
Get Trickier
Learn BASIC iOS and Android development
Make a basic app with a
Load your HTML files in the Web View.
You now have an App published on the App Store and Google Play using
very basic knowledge of Xcode and Eclipse.
Use the same code for iOS, Android, Windows 8, BlackBerry, etc.
Get Trickiest
Having an HTML/CSS/JS implementation in a UIWebView is one thing.
Making that Web App pass as a native App is another.
If you are skilled enough, you can make your Web App look very close to
an iOS and/or Android App.
Bugs in UIWebView can give you trouble. Apple doesn’t care that much if
UIWebView is stopping your Web App from masquerading as a native App.
Stop Being so Tricky
Native apps are still the best.
Your user probably knows there is
something weird about your Web App.
Go native if you can.
Stack Overflow
Probably the best resource for debugging and problem solving, in general.