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

Chapter 10 Product Concepts
Chapter 10 Product ConceptsChapter 10 Product Concepts
Chapter 10 Product ConceptsEarlene McNair
 
Marketing presentation of product concept
Marketing presentation of product conceptMarketing presentation of product concept
Marketing presentation of product conceptSantosh Gauda
 
Product.ppt
Product.pptProduct.ppt
Product.pptraj43
 

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

iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to productjoeysim
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011Stefane Fermigier
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handoutTMC
 
Devcon5 presentation handout
Devcon5 presentation handoutDevcon5 presentation handout
Devcon5 presentation handoutRich Steeves
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobileluca mezzalira
 
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 2011Marcel Bruch
 
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 2011ruzannaChitchyan
 
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+applicationsMuhammad Ikram Ul Haq
 
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 ProductionKarthik Gaekwad
 
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
 
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 NodeJSSylvain Zimmer
 
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...Ronald Ashri
 
App Inventor - ACSE
App Inventor - ACSEApp Inventor - ACSE
App Inventor - ACSEPeter McAsh
 
Android Development Slides
Android Development SlidesAndroid Development Slides
Android Development SlidesVictor Miclovich
 
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 Tychojsievers
 
Atlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian RoadTrip 2011 Slide Deck
Atlassian RoadTrip 2011 Slide DeckAtlassian
 
Testing Native Apps at PAYBACK
Testing Native Apps at PAYBACKTesting Native Apps at PAYBACK
Testing Native Apps at PAYBACKMarcel Gehlen
 

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

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

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