Download - iPhone App from concept to product
iPhone App from concept to productTips & Tools to get the job done
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT
Thursday, July 28, 2011
Hello World
Growing Internet babies since 2000
Growing real ones since 2008
Passionate about engineering and the culture around it
Owned and managed a few businesses
Built and architected a few products
Bottom line - I must be a Persistent fella
Thursday, July 28, 2011
I got a confession to make
Thursday, July 28, 2011
My name is Joey and I’m a procrastinator
“The best part about procrastination is that you are never bored”
Thursday, July 28, 2011
Procrastination = Tools
I call it productive procrastination (an oxymoron)
I love finding new tools that solve real problems (which I don’t necessarily have)
I’ll do my best to share the right tools to achieve what you want, quickly and without re-inventing the wheel
Thursday, July 28, 2011
This is where I come from
Thursday, July 28, 2011
Concept > Design > Develop > Beta > Release
This is what we’ll discuss
Thursday, July 28, 2011
Concept
Thursday, July 28, 2011
The Erasable Marker
When you start with your first concept, try and envision the core UI element of the product you’re try to build
Jot down how it looks & behaves.
Verify technical implementation boundaries (and be sure to break some :) )
DoAT - Swiping between live apps
ConceptThursday, July 28, 2011
iPhone Screenshots
Take screenshots of things that get you emotional (love it / hate it!)
Some of the work was already done for you http://mobile-patterns.com/ (or god forbid http://www.androidpatterns.com/ )
ConceptThursday, July 28, 2011
Mockups
When you need to communicate it to a larger / distributed group of people
My tool of choice - Balsamiq
ConceptThursday, July 28, 2011
Design
Thursday, July 28, 2011
Photoshop
I’ll settle for paint / gimp / Paint.net for that matter
PSD to use - http://www.teehanlax.com/blog/iphone-4-gui-psd-retina-display/
Design for x2 (Retina)
Ziv Meltzer wrote a post ‘bout it http://blog.zivmeltzer.com/post/3628811523/tips-the-design-process-for-ios-apps
DesignThursday, July 28, 2011
Your Hand
Reviewing a design on large screens is a NO GO. Do it on your PHONE.
Easy solution - Send by email and save image to album
Tool - Liveview (for Mac)http://zambetti.com/projects/liveview/
DesignThursday, July 28, 2011
Don’t forget to RTFM
Apple’s UI Guidelines is something you’d want to know by heart when designing
http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html
DesignThursday, July 28, 2011
Develop
Thursday, July 28, 2011
API and Server LogicDesign your API early
Use static responses while you do
Try and keep as much logic on server’s end - easier maintenance and cross platform future
If you work in a distributed manner - document your API, you’ll move faster
We created Gondor for this (coming to Apache’s near you soon. NGINXs too)Follow @doatgeeks to know when
DevelopThursday, July 28, 2011
Create multiple targets
Will allow you to have your team install several versions
Will allow you to stage new server APIs as well
Will reduce the clutter and keep your logs / analytics coherent
Create separate DefaultProperties.plist for each target
Do yourself a favor and use git (Didn’t know wherelse to put it so...)
DevelopThursday, July 28, 2011
No such thing as alpha
Not always accurate (managed to prove it once... sorta)
But you will definitely find yourself with “legacy” POC code running in production
Try and draw the line between experiments and THE product
Don’t refactor before you’ve hit the ceiling but when you have to - do it like mad
DevelopThursday, July 28, 2011
Incorporate URL Schemes
This is the link of the app era
Allows you be to be accessed in context?
Be sure to communicate it externally so others can use it.
Some examples - instagram://camera - launches their cameralastfm://artist/Cher/similar - Cher similar artist radiolastfm://globaltags/rock - Plays rock global tag radio
More examples - http://handleopenurl.com/schemeDevelopThursday, July 28, 2011
Push notification
Make sure to at least enable basic(default behavior is launching the app on swipe / View button)
Urbanairship is a good starting pointhttp://urbanairship.com
Deep links are an important addition, you can respond to launches from push messages
DevelopThursday, July 28, 2011
Metrics Driven Approach
Try and collect as many events and params as possible cause you never know what question comes up about user’s behavior
Tools - Flurry, Localytics, Google Analytics, Home brew. Most will do event name + KV params
We use Flurry - has some disadvantages
The matrix is update time | events support | user segmentation | reporting
DevelopThursday, July 28, 2011
Understand iOS Simulator
There’s an inherent problem with it - it’s too darn fast and has too much juice
Sometimes has weird issues
You don’t hold it in your hand
Good for coverage testing with different SDKs (e.g. autoplay video on iOS 4.3.x)
DevelopThursday, July 28, 2011
Beta
Thursday, July 28, 2011
Provisioning Beta Versions
You’ll start with IPAs sent by email
Supporting this is hell (“Yes, drag it to your iTunes, oh you don’t have it.... blah blah blah”)
You can try using BetaBuilderhttp://www.hanchorllc.com/betabuilder-for-ios/
TestFlight is our weapon of choicehttp://testflightapp.com
There’s also HockeyKit (open source too)http://hockeykit.net/
BetaThursday, July 28, 2011
Stabilize - Crashes
The #1 tool to get you stability and eliminate crashes - a crash reporting tool
iPhone logs are worth nothing without the debugging symbols make sure you keep them
PLCrashReporter and CREP (“holly crep I got a new crash”)
BetaThursday, July 28, 2011
Stabilize #2 - Memory
Static code analysis - 80/20 rule applies here
XCode Instrumentation tools - memory is the thing you’d worry ‘bout most of the time
BetaThursday, July 28, 2011
App Store
Thursday, July 28, 2011
Text is all you got
Think about what you want to write
Competition texts is sometimes a good starting point
Autocomplete is one you’ll surface
Search results is the other
They are scored differently
ReleaseThursday, July 28, 2011
And images too
You can get creative here
ReleaseThursday, July 28, 2011
Take your time
Submit when you ready
Reject binary if things get messy
App approval took ~7 days
App updates took 1-5 days
Tool - http://148apps.biz/app-store-metrics/
ReleaseThursday, July 28, 2011
Monitor
iTunesConnect only keeps 14 days of past reports
And will only tell you how many downloads/updates
A combination of AppAnnie (free) and appFigures (paid) will do the job
You can also setup a geckoboard if you want this info and analytics shown together
ReleaseThursday, July 28, 2011
Respond to user reviews
This is a real-life case I had with one of our users
ReleaseThursday, July 28, 2011
Last few bits
You can ask for an “expedited review” if you have a good reason - we got an app approved within the day before TC Disrupt
Use it wisely and rarely
CoreData and version updates - be careful here (and any other local data)
WebViews can sometimes allow you to release products faster
ReleaseThursday, July 28, 2011
Thank You.
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT
Thursday, July 28, 2011