SlideShare a Scribd company logo
1 of 35
Download to read offline
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
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
This is what we’ll discuss



                 Concept > Design > Develop > Beta > Release




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


Concept
Thursday, 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/ )




Concept
Thursday, July 28, 2011
Mockups
                      When you need to communicate it to a larger /
                      distributed group of people
                      My tool of choice - Balsamiq




Concept
Thursday, 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


Design
Thursday, 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/




Design
Thursday, 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




Design
Thursday, July 28, 2011
Develop




Thursday, July 28, 2011
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
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
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
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
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
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
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
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 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
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
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
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



Release
Thursday, July 28, 2011
And images too
                You can get creative here




Release
Thursday, 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/



Release
Thursday, 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



Release
Thursday, July 28, 2011
Respond to user reviews
                This is a real-life case I had with one of our users




Release
Thursday, 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


Release
Thursday, July 28, 2011
Thank You.


                           Joey Simhon (@joeysim)
                          CTO and Co-Founder DoAT


Thursday, July 28, 2011

More Related Content

Viewers also liked (6)

Product Concepts
Product ConceptsProduct Concepts
Product Concepts
 
Product concept
Product conceptProduct concept
Product concept
 
Chapter 10 Product Concepts
Chapter 10 Product ConceptsChapter 10 Product Concepts
Chapter 10 Product Concepts
 
Marketing presentation of product concept
Marketing presentation of product conceptMarketing presentation of product concept
Marketing presentation of product concept
 
Product.ppt
Product.pptProduct.ppt
Product.ppt
 
Product launch ppt
Product launch pptProduct launch ppt
Product launch ppt
 

Similar to iPhone App from concept to product

GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
Stefane Fermigier
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handout
TMC
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handout
Rich Steeves
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
Muhammad Ikram Ul Haq
 
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...
oiisdp
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tycho
jsievers
 

Similar to iPhone App from concept to product (20)

iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handout
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handout
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobile
 
IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011IDE 2.0 & Research at Eclipse - ECOOP 2011
IDE 2.0 & Research at Eclipse - ECOOP 2011
 
Marcel bruch ide 2.0 ecoop 2011
Marcel bruch ide 2.0 ecoop 2011Marcel bruch ide 2.0 ecoop 2011
Marcel bruch ide 2.0 ecoop 2011
 
Using+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applicationsUsing+javascript+to+build+native+i os+applications
Using+javascript+to+build+native+i os+applications
 
30 days or less: New Features to Production
30 days or less: New Features to Production30 days or less: New Features to Production
30 days or less: New Features to Production
 
Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...Jonathan bright - collecting social media data with the python programming la...
Jonathan bright - collecting social media data with the python programming la...
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
Business of Drupal
Business of DrupalBusiness of Drupal
Business of Drupal
 
How to Make Entities and Influence Drupal - Emerging Patterns from Drupal Con...
How to Make Entities and Influence Drupal - Emerging Patterns from Drupal Con...How to Make Entities and Influence Drupal - Emerging Patterns from Drupal Con...
How to Make Entities and Influence Drupal - Emerging Patterns from Drupal Con...
 
App Inventor - ACSE
App Inventor - ACSEApp Inventor - ACSE
App Inventor - ACSE
 
Android Development Slides
Android Development SlidesAndroid Development Slides
Android Development Slides
 
J.unit.action.2
J.unit.action.2J.unit.action.2
J.unit.action.2
 
Building Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with TychoBuilding Eclipse Plugins and RCP applications with Tycho
Building Eclipse Plugins and RCP applications with Tycho
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide Deck
 
Testing Native Apps at PAYBACK
Testing Native Apps at PAYBACKTesting Native Apps at PAYBACK
Testing Native Apps at PAYBACK
 
Final Cut Pro
Final Cut ProFinal Cut Pro
Final Cut Pro
 

Recently uploaded

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

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
  • 6. This is where I come from Thursday, July 28, 2011
  • 7. This is what we’ll discuss Concept > Design > Develop > Beta > Release 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