Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
iPhone App from concept to product
1. iPhone App
from concept to product
Tips & Tools to get the job done
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT
Thursday, July 28, 2011
2. 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
3. I got a confession to make
Thursday, July 28, 2011
4. My name is Joey and I’m a
procrastinator
“The best part about
procrastination is that
you are never bored”
Thursday, July 28, 2011
5. 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
9. 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
Concept
Thursday, July 28, 2011
10. 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/ )
Concept
Thursday, July 28, 2011
11. Mockups
When you need to communicate it to a larger /
distributed group of people
My tool of choice - Balsamiq
Concept
Thursday, July 28, 2011
13. 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
Design
Thursday, July 28, 2011
14. 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/
Design
Thursday, July 28, 2011
15. 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
Design
Thursday, July 28, 2011
17. API and Server Logic
Design 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
Develop
Thursday, July 28, 2011
18. 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...)
Develop
Thursday, July 28, 2011
19. 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
Develop
Thursday, July 28, 2011
20. 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 camera
lastfm://artist/Cher/similar - Cher similar artist radio
lastfm://globaltags/rock - Plays rock global tag radio
More examples - http://handleopenurl.com/scheme
Develop
Thursday, July 28, 2011
21. Push notification
Make sure to at least enable basic
(default behavior is launching the app on swipe / View
button)
Urbanairship is a good starting point
http://urbanairship.com
Deep links are an important addition, you can respond
to launches from push messages
Develop
Thursday, July 28, 2011
22. 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
Develop
Thursday, July 28, 2011
23. 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)
Develop
Thursday, July 28, 2011
25. 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 BetaBuilder
http://www.hanchorllc.com/betabuilder-for-ios/
TestFlight is our weapon of choice
http://testflightapp.com
There’s also HockeyKit (open source too)
http://hockeykit.net/
Beta
Thursday, July 28, 2011
26. 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”)
Beta
Thursday, July 28, 2011
27. 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
Beta
Thursday, July 28, 2011
29. 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
Release
Thursday, July 28, 2011
30. And images too
You can get creative here
Release
Thursday, July 28, 2011
31. 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/
Release
Thursday, July 28, 2011
32. 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
Release
Thursday, July 28, 2011
33. Respond to user reviews
This is a real-life case I had with one of our users
Release
Thursday, July 28, 2011
34. 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
Release
Thursday, July 28, 2011
35. Thank You.
Joey Simhon (@joeysim)
CTO and Co-Founder DoAT
Thursday, July 28, 2011