SlideShare a Scribd company logo
iPhone App
from concept to product
Tips & Tools to get the job done



               Joey Simhon (@joeysim)
              CTO and Co-Founder DoAT
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
I got a confession to make
My name is Joey and I’m a
procrastinator


“The best part about
procrastination is that
you are never bored”
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
This is where I come from
This is what we’ll discuss



 Concept > Design > Develop > Beta > Release
Concept
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
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
Mockups
      When you need to communicate it to a larger /
      distributed group of people
      My tool of choice - Balsamiq




Concept
Design
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
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
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
Develop
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)

Develop
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
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
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
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
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
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
Beta
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
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
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
App Store
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
And images too
    You can get creative here




Release
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
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
Respond to user reviews
    This is a real-life case I had with one of our users




Release
Last 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
Thank You.


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

More Related Content

What's hot

Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScriptKevin Whinnery
 
Eval 4
Eval 4Eval 4
Eval 4
Alex-gerhard
 
Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Brian LeRoux
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6
Bethany Vaughan
 
What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...katydonovan
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
Bitbar
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation Framework
Priya Rajagopal
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
Brian LeRoux
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
Sauce Labs
 
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
Alex Florescu
 
Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!
Applitools
 
Lessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's AssLessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's Ass
Kevin Whinnery
 
Appium Native Application Crawler
Appium Native Application CrawlerAppium Native Application Crawler
Appium Native Application Crawler
Justin Ison
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Dominik Dary
 
Smarr Oscon 2007
Smarr Oscon 2007Smarr Oscon 2007
Smarr Oscon 2007briandemant
 
Engineering culture
Engineering cultureEngineering culture
Engineering culturePamela Fox
 
Question 6
Question 6Question 6
Question 6
tripleh101
 
[SIP 2015] QA Intern: Test Automation
[SIP 2015] QA Intern: Test Automation[SIP 2015] QA Intern: Test Automation
[SIP 2015] QA Intern: Test Automation
Silicon Straits
 

What's hot (18)

Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
 
Eval 4
Eval 4Eval 4
Eval 4
 
Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011Falsy Values - Warsaw 2011
Falsy Values - Warsaw 2011
 
Evaluation 6
Evaluation 6Evaluation 6
Evaluation 6
 
What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...What Have You Learnt About Technologies From The Process Of Constructing This...
What Have You Learnt About Technologies From The Process Of Constructing This...
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation Framework
 
PhoneGap at JSConf
PhoneGap at JSConfPhoneGap at JSConf
PhoneGap at JSConf
 
An Introduction to Appium Desktop
An Introduction to Appium DesktopAn Introduction to Appium Desktop
An Introduction to Appium Desktop
 
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)How we've built Yahoo Fantasy Football (Droidcon Italy '15)
How we've built Yahoo Fantasy Football (Droidcon Italy '15)
 
Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!
 
Lessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's AssLessons Learned From Applications That Kicked Titanium's Ass
Lessons Learned From Applications That Kicked Titanium's Ass
 
Appium Native Application Crawler
Appium Native Application CrawlerAppium Native Application Crawler
Appium Native Application Crawler
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Smarr Oscon 2007
Smarr Oscon 2007Smarr Oscon 2007
Smarr Oscon 2007
 
Engineering culture
Engineering cultureEngineering culture
Engineering culture
 
Question 6
Question 6Question 6
Question 6
 
[SIP 2015] QA Intern: Test Automation
[SIP 2015] QA Intern: Test Automation[SIP 2015] QA Intern: Test Automation
[SIP 2015] QA Intern: Test Automation
 

Viewers also liked

iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
joeysim
 
Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014
TechHubRiga
 
Developing for the mobile web
Developing for the mobile webDeveloping for the mobile web
Developing for the mobile webjoeysim
 
Digitale trender 2012
Digitale trender 2012Digitale trender 2012
Digitale trender 2012
Halogen AS
 
Becoming a Credible Developer
Becoming a Credible DeveloperBecoming a Credible Developer
Becoming a Credible Developer
joeysim
 
Raciocínio 01
Raciocínio 01Raciocínio 01
Raciocínio 01resolvidos
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
Christian Baranowski
 

Viewers also liked (7)

iPhone App from concept to product
iPhone App from concept to productiPhone App from concept to product
iPhone App from concept to product
 
Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014Champion Breakfast with DDB - TechHub Riga slides may 2014
Champion Breakfast with DDB - TechHub Riga slides may 2014
 
Developing for the mobile web
Developing for the mobile webDeveloping for the mobile web
Developing for the mobile web
 
Digitale trender 2012
Digitale trender 2012Digitale trender 2012
Digitale trender 2012
 
Becoming a Credible Developer
Becoming a Credible DeveloperBecoming a Credible Developer
Becoming a Credible Developer
 
Raciocínio 01
Raciocínio 01Raciocínio 01
Raciocínio 01
 
SDC - Einführung in Scala
SDC - Einführung in ScalaSDC - Einführung in Scala
SDC - Einführung in Scala
 

Similar to iPhone App from concept to product

Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
Ivo Jansch
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldLorna Mitchell
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
Wojciech Koszek
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
bryanbibat
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
Michal Juhas
 
Mobile functional testing
Mobile functional testingMobile functional testing
Mobile functional testing
kevinroulleau
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
Ivano Malavolta
 
Prototyping for mobile
Prototyping for mobilePrototyping for mobile
Prototyping for mobile
Memi Beltrame
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 
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
Karthik Gaekwad
 
How to build your own Android App -Step by Step Guide
How to build your own Android App -Step by Step GuideHow to build your own Android App -Step by Step Guide
How to build your own Android App -Step by Step Guide
Ace Web Academy -Career Development Center
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application development
Christos Matskas
 
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdfPERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
arfa442827
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
Nathan Smith
 
Tools/Processes for serious android app development
Tools/Processes for serious android app developmentTools/Processes for serious android app development
Tools/Processes for serious android app development
Gaurav Lochan
 
Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Decksschwarzhoff
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open SourceAxway Appcelerator
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
Kevin Whinnery
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
Sigma Software
 
Best Practice iPhone SDK App Design
Best Practice iPhone SDK App DesignBest Practice iPhone SDK App Design
Best Practice iPhone SDK App Design
Bess Ho
 

Similar to iPhone App from concept to product (20)

Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Passing The Joel Test In The PHP World
Passing The Joel Test In The PHP WorldPassing The Joel Test In The PHP World
Passing The Joel Test In The PHP World
 
Building an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learnedBuilding an Open Source iOS app: lessons learned
Building an Open Source iOS app: lessons learned
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
iOS development best practices
iOS development best practicesiOS development best practices
iOS development best practices
 
Mobile functional testing
Mobile functional testingMobile functional testing
Mobile functional testing
 
Phonegap Development & Debugging
Phonegap Development & DebuggingPhonegap Development & Debugging
Phonegap Development & Debugging
 
Prototyping for mobile
Prototyping for mobilePrototyping for mobile
Prototyping for mobile
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
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
 
How to build your own Android App -Step by Step Guide
How to build your own Android App -Step by Step GuideHow to build your own Android App -Step by Step Guide
How to build your own Android App -Step by Step Guide
 
Windows Phone and Windows 8 application development
Windows Phone and Windows 8 application developmentWindows Phone and Windows 8 application development
Windows Phone and Windows 8 application development
 
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdfPERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
PERTEMUAN 3_INTRO TO ANDROID APP DEV.pdf
 
HTML5 Can't Do That
HTML5 Can't Do ThatHTML5 Can't Do That
HTML5 Can't Do That
 
Tools/Processes for serious android app development
Tools/Processes for serious android app developmentTools/Processes for serious android app development
Tools/Processes for serious android app development
 
Titanium Meetup Deck
Titanium Meetup DeckTitanium Meetup Deck
Titanium Meetup Deck
 
Native Mobile Application Using Open Source
Native Mobile Application Using Open SourceNative Mobile Application Using Open Source
Native Mobile Application Using Open Source
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
Pain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr SugakPain Driven Development by Alexandr Sugak
Pain Driven Development by Alexandr Sugak
 
Best Practice iPhone SDK App Design
Best Practice iPhone SDK App DesignBest Practice iPhone SDK App Design
Best Practice iPhone SDK App Design
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

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
  • 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
  • 3. I got a confession to make
  • 4. My name is Joey and I’m a procrastinator “The best part about procrastination is that you are never bored”
  • 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
  • 6. This is where I come from
  • 7. This is what we’ll discuss Concept > Design > Develop > Beta > Release
  • 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
  • 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
  • 11. Mockups When you need to communicate it to a larger / distributed group of people My tool of choice - Balsamiq Concept
  • 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
  • 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
  • 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
  • 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) Develop
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 24. Beta
  • 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
  • 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
  • 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
  • 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
  • 30. And images too You can get creative here Release
  • 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
  • 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
  • 33. Respond to user reviews This is a real-life case I had with one of our users Release
  • 34. Last 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
  • 35. Thank You. Joey Simhon (@joeysim) CTO and Co-Founder DoAT

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n