SlideShare a Scribd company logo
Demystifying iOS App Development
                        Sidwyn Koh
                  Founder, The Pragmatic Lab




  While waiting, grab the files here: http://pragmaticlab.com/citibank



                                                                        1
Presentation


• 50 minutes long
• 10 minutes Q&A
• Save your questions for the end!


                                     2
Overview
• Introduction
• App Development Process
• Fundamentals of Programming
• Coding Environment
• Creating Your First App
• Q&A
                                3
Introduction


• 6 years as a programmer
• 4 years of iOS experience
• 2 years as a businessman


                              4
Portfolio




            5
Portfolio


Definition   Roomorama                Seesmic    Home Team News




 Stacker    FreshLook             Xmas iCards      NUS High


                  featured on the App Store



                                                                 5
6
Design        Mobile         Web
 Photoshop      iOS         HTML / CSS
 Illustrator   Android        Javascript
   Indesign                 Ruby on Rails
 Fireworks               Joomla / Wordpress
Premiere Pro                Social Media




                                              6
Read more at: http://pragmaticlab.com/blog/feature


                                                     7
App Development Process
                 Conception


   Maintenance                 Research



    Marketing                 Development


                 Submission



                                            8
Conception



             9
Why Make an App?



                   10
to scratch an itch

to make money                        to learn something new



    Why Make an App?
 to waste other people’s time          to solve a problem




                                                              10
Conception

 Observe
Understand
 Innovate
   Idea
                Picture taken from http://blog.gaborcselle.com/2012_11_01_archive.html




                                                                                         11
Research



           12
Research

• Scour the App Store
• Be keyword-specific
• Install the top 3 apps


                           13
Dictionary!



              14
Dictionary.com   Dictionary.



                               15
16
Development



              17
Prerequisites




> OS X 10.6        > Xcode 4.2




                                 18
Programming Basics
     Algebra                       Programming

    x+2=4                             x = 2;

Tip: End every programming statement with a semicolon.



                  myNumber = 3;

        Tip: Write your variables in camel case.



                                                         19
Vocabulary

• Class: Type of an object. Also                     Car
  where you write all your code.

• Instance: A specific allocation
  of a class

• Methods: Functions that an           checkFuel           closeDoor
  instance performs

• Variable: Quantity visible to all   amountOfFuel     numberOfDoors
  methods in the class



                                                                       20
Declaring a Variable
We cannot simply do:
pictureWidth = 8;
pictureHeight = 5;
myPictureArea = pictureWidth * pictureHeight;



We have to do it like this:
int pictureWidth = 8;
int pictureHeight = 5;
float myPictureArea = pictureWidth * pictureHeight;


            Tip: Add data types to every variable.


                                                      21
Data Types
       Name                      Type                      Example

        void                      Void                      Nothing

        int                     Integer                      -1,0,2

       float             Floating point number           -0.352, 3.1231
                        Double precision floating
       double                                        0.5251251251251520
                            point number

     NSString *                  String                What is NSString?

        id *                       id                      anything

        BOOL                    Boolean             0,1, TRUE, FALSE, YES, NO

Tip: You require asterisks for variables that point to something else.


                                                                                22
Demo
Do follow along




                  23
Recap
•   .h file - summary of methods and variables

•   .m file - implementation of methods

•   .xib file - drawing and connections

•   Properties - things that we are able to control and
    access (think variables)

•   Action methods - functions, usually to run
    algorithms or code (think functions)

•   Converting between different data types


                                                          24
Submission



             25
Publishing




             26
Publishing
• Register for $99 iOS Developer Program
  (http://developer.apple.com/programs/ios)




                                              26
Publishing
• Register for $99 iOS Developer Program
  (http://developer.apple.com/programs/ios)

• Test on your device




                                              26
Publishing
• Complete steps (setting plist, build and archive)
  • http://developer.apple.com/devcenter/ios/index.action




                                                            27
Publishing
• Prepare app at iOS Provisioning Portal




                                           28
Publishing
• Upload apps on iTunes Connect




                                  29
Marketing



            30
Marketing
•   Timing

    •   Competitors, market stability, events

•   Public relations

    •   Blog posts, reviews, early adopters, contests,
        press releases

•   Serendipity

•   Do not use black hat methods (e.g. fake reviews)


                                                         31
Maintenance



              32
Maintenance


•   Regularly send updates

•   Each update refreshes the reviews in App Store

•   Add new features, in-app purchases




                                                     33
Useful Tools

•   AppAnnie: Download tracking

•   Flurry: Event and audience statistics

•   Airbrake: Error tracking

•   Parse: Server in the cloud




                                            34
Next Steps
• Check out our classes on pragmaticlab.com
• Sign up for our mailing list




                                              35
36
37
Thank you!
sidwyn@pragmaticlab.com



 Stay up-to-date with our courses:
http://pragmaticlab.com/mailing-list




                                       37

More Related Content

Similar to Citibank

Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyondrsebbe
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
vibrantuser
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
vibrantuser
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
Nick Landry
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
Jacob Kaplan-Moss
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
Grace Jansen
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
Grace Jansen
 
How to really obfuscate your pdf malware
How to really obfuscate   your pdf malwareHow to really obfuscate   your pdf malware
How to really obfuscate your pdf malwarezynamics GmbH
 
How to really obfuscate your pdf malware
How to really obfuscate your pdf malwareHow to really obfuscate your pdf malware
How to really obfuscate your pdf malwarezynamics GmbH
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
Joachim Tuchel
 
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
IBM France Lab
 
Ios - Intorduction to view controller
Ios - Intorduction to view controllerIos - Intorduction to view controller
Ios - Intorduction to view controller
Vibrant Technologies & Computers
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
Heiko Voigt
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Jordan Yaker
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
Jaoued Ahmed
 
Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"
Fwdays
 
I pad uicatalog_lesson02
I pad uicatalog_lesson02I pad uicatalog_lesson02
I pad uicatalog_lesson02
Rich Helton
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
Shashikant Jagtap
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To App
René Winkelmeyer
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
Adrian Philipp
 

Similar to Citibank (20)

Xcode, Basics and Beyond
Xcode, Basics and BeyondXcode, Basics and Beyond
Xcode, Basics and Beyond
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
 
Ios-training-institute-in-mumbai
Ios-training-institute-in-mumbaiIos-training-institute-in-mumbai
Ios-training-institute-in-mumbai
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
Django in the Real World
Django in the Real WorldDjango in the Real World
Django in the Real World
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
 
How to really obfuscate your pdf malware
How to really obfuscate   your pdf malwareHow to really obfuscate   your pdf malware
How to really obfuscate your pdf malware
 
How to really obfuscate your pdf malware
How to really obfuscate your pdf malwareHow to really obfuscate your pdf malware
How to really obfuscate your pdf malware
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
 
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015Bluemix Paris Meetup -  Optimization on Cloud (DOcloud) - 14 octobre 2015
Bluemix Paris Meetup - Optimization on Cloud (DOcloud) - 14 octobre 2015
 
Ios - Intorduction to view controller
Ios - Intorduction to view controllerIos - Intorduction to view controller
Ios - Intorduction to view controller
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With SwiftPhilly CocoaHeads 20160414 - Building Your App SDK With Swift
Philly CocoaHeads 20160414 - Building Your App SDK With Swift
 
Webinar on How to use MyAppConverter
Webinar on How to use  MyAppConverterWebinar on How to use  MyAppConverter
Webinar on How to use MyAppConverter
 
Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"Павел Тайкало: "Apple watch first steps"
Павел Тайкало: "Apple watch first steps"
 
I pad uicatalog_lesson02
I pad uicatalog_lesson02I pad uicatalog_lesson02
I pad uicatalog_lesson02
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
 
ICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To AppICONUK 2014 - From Idea To App
ICONUK 2014 - From Idea To App
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
 

Citibank

  • 1. Demystifying iOS App Development Sidwyn Koh Founder, The Pragmatic Lab While waiting, grab the files here: http://pragmaticlab.com/citibank 1
  • 2. Presentation • 50 minutes long • 10 minutes Q&A • Save your questions for the end! 2
  • 3. Overview • Introduction • App Development Process • Fundamentals of Programming • Coding Environment • Creating Your First App • Q&A 3
  • 4. Introduction • 6 years as a programmer • 4 years of iOS experience • 2 years as a businessman 4
  • 6. Portfolio Definition Roomorama Seesmic Home Team News Stacker FreshLook Xmas iCards NUS High featured on the App Store 5
  • 7. 6
  • 8. Design Mobile Web Photoshop iOS HTML / CSS Illustrator Android Javascript Indesign Ruby on Rails Fireworks Joomla / Wordpress Premiere Pro Social Media 6
  • 9. Read more at: http://pragmaticlab.com/blog/feature 7
  • 10. App Development Process Conception Maintenance Research Marketing Development Submission 8
  • 12. Why Make an App? 10
  • 13. to scratch an itch to make money to learn something new Why Make an App? to waste other people’s time to solve a problem 10
  • 14. Conception Observe Understand Innovate Idea Picture taken from http://blog.gaborcselle.com/2012_11_01_archive.html 11
  • 15. Research 12
  • 16. Research • Scour the App Store • Be keyword-specific • Install the top 3 apps 13
  • 18. Dictionary.com Dictionary. 15
  • 19. 16
  • 21. Prerequisites > OS X 10.6 > Xcode 4.2 18
  • 22. Programming Basics Algebra Programming x+2=4 x = 2; Tip: End every programming statement with a semicolon. myNumber = 3; Tip: Write your variables in camel case. 19
  • 23. Vocabulary • Class: Type of an object. Also Car where you write all your code. • Instance: A specific allocation of a class • Methods: Functions that an checkFuel closeDoor instance performs • Variable: Quantity visible to all amountOfFuel numberOfDoors methods in the class 20
  • 24. Declaring a Variable We cannot simply do: pictureWidth = 8; pictureHeight = 5; myPictureArea = pictureWidth * pictureHeight; We have to do it like this: int pictureWidth = 8; int pictureHeight = 5; float myPictureArea = pictureWidth * pictureHeight; Tip: Add data types to every variable. 21
  • 25. Data Types Name Type Example void Void Nothing int Integer -1,0,2 float Floating point number -0.352, 3.1231 Double precision floating double 0.5251251251251520 point number NSString * String What is NSString? id * id anything BOOL Boolean 0,1, TRUE, FALSE, YES, NO Tip: You require asterisks for variables that point to something else. 22
  • 27. Recap • .h file - summary of methods and variables • .m file - implementation of methods • .xib file - drawing and connections • Properties - things that we are able to control and access (think variables) • Action methods - functions, usually to run algorithms or code (think functions) • Converting between different data types 24
  • 30. Publishing • Register for $99 iOS Developer Program (http://developer.apple.com/programs/ios) 26
  • 31. Publishing • Register for $99 iOS Developer Program (http://developer.apple.com/programs/ios) • Test on your device 26
  • 32. Publishing • Complete steps (setting plist, build and archive) • http://developer.apple.com/devcenter/ios/index.action 27
  • 33. Publishing • Prepare app at iOS Provisioning Portal 28
  • 34. Publishing • Upload apps on iTunes Connect 29
  • 35. Marketing 30
  • 36. Marketing • Timing • Competitors, market stability, events • Public relations • Blog posts, reviews, early adopters, contests, press releases • Serendipity • Do not use black hat methods (e.g. fake reviews) 31
  • 38. Maintenance • Regularly send updates • Each update refreshes the reviews in App Store • Add new features, in-app purchases 33
  • 39. Useful Tools • AppAnnie: Download tracking • Flurry: Event and audience statistics • Airbrake: Error tracking • Parse: Server in the cloud 34
  • 40. Next Steps • Check out our classes on pragmaticlab.com • Sign up for our mailing list 35
  • 41. 36
  • 42. 37
  • 43. Thank you! sidwyn@pragmaticlab.com Stay up-to-date with our courses: http://pragmaticlab.com/mailing-list 37