際際滷

際際滷Share a Scribd company logo
IOS DEVELOPMENT
 INTRODUCTION
    Gonzalo Parra
     #mume12




     October 5, 2012
A smartphone is a mobile phone that
offers more advanced computing
     ability and connectivity than a
      contemporary feature phone.




                                       Source: LP33.TV
WHAT IS THE IPHONE?
 accelerometer

 Three-axis    gyro
 Assisted   GPS
 Digital   compass
 multi-touch    display
 sensors    (proximity, ambient light)
 camera    (photos, video)
 UMTS/HSDPA, GSM/EDGE, WI-FI, Bluetooth
IOS?
 iPod Touch

 iPhone

 iPad
WHAT IS THE IOS?




             Based on a work at cs193p.stanford.edu
iOS
                Core OS
Cocoa Touch
                OSX Kernel Power Management
   Media        Mach 3.0   Keychain Access
                BSD        Certi鍖cates
Core Services
                Sockets    File System
  Core OS       Security   Bonjour




                           Based on a work at cs193p.stanford.edu
iOS
                Core Services
Cocoa Touch
                Collections         Core Location
   Media        Address Book Net Services
                Networking          Threading
Core Services
                File Access         Preferences
  Core OS       SQLite              URL Utilities




                              Based on a work at cs193p.stanford.edu
iOS
                Media
Cocoa Touch
                Core Audio           JPEG, PNG, TIFF
   Media        OpenAL               PDF
                Audio Mixing         Quartz (2D)
Core Services
                Audio Recording Core Animation
  Core OS       Video Playback       OpenGL ES




                               Based on a work at cs193p.stanford.edu
iOS
                Cocoa Touch
Cocoa Touch
                Multi-Touch            Alerts
   Media        Core Motion            Web View
                View Hierarchy         Map Kit
Core Services
                Localization           Image Picker
  Core OS       Controls               Camera




                               Based on a work at cs193p.stanford.edu
TYPES OF DEVELOPMENT


 Native Apps

 Mobile Web Apps

 External   frameworks
NATIVE APPLICATIONS

 iOS   SDK (requires an Intel Mac)

 Language: Objective-C

 Tools: XCode

 Apple   Developer Program

  AppStore
EXAMPLES
MOBILE WEB APPLICATIONS

 Language: HTML*, Javascript, CSS

      Frameworks: Sencha Touch, jQueryMobile, ...

 Tools: HTML*          editor (DashCode), Safari

 Can     be displayed in every smartphone


 * PHP, JSP, ASP, ...
EXAMPLES
iUi: iPhone User Interface Framework
EXTERNAL PLATFORMS


 PhoneGap, Titanium,...

   requires   iOS SDK

 Language: HTML, Javascript, CSS
NATIVE APPS DEVELOPMENT:
         BASICS
COMPONENTS
 iOS   SDK (requires an Intel Mac)

  Frameworks: Foundation, UIKit, Core   Data, Core ...

  Design   strategy: MVC

 Language: Objective-C

 Tools: XCode   (iOS Simulator), Instruments

 Apple   Developer Program
MVC
Model View Controller
MVC
                     MVC

                    Controller




    Model                                   View


Its all about managing communication between camps                         St
                                                                             C
                                     Based on a work at cs193p.stanford.edu Fa
MVC: CONTROLLER
                    MVC

                   Controller
                                outlet




 Model                                          View


Controllers can also talk directly to their View.                               St
                                                                                 C
                                         Based on a work at cs193p.stanford.edu Fal
MVC: VIEW
                  MVC
                       should            target
                   will         did

                 Controller
                data
                            count
                                        outlet
                 at

                                da




                                          de
                                  ta




                                             le
                                                g
                                       so




                                                    at
                                          u                          action




                                                      e
                                              rc
                                                e

Model                                                        View


No. The Model is (should be) UI independent.                                                 St
                                                                                              C
                                                      Based on a work at cs193p.stanford.edu Fal
MVC: MODEL
                        MVC
                             should            target
                         will         did

                      Controller
                      data
                                  count
                                              outlet
                       at

                                      da




                                                de
     Noti鍖cation
                                        ta




                                                   le
       & KVO




                                                      g
                                             so




                                                          at
                                                u                          action




                                                            e
                                                    rc
                                                      e

      Model                                                        View


Now combine MVC groups to make complicated programs ...                                            St
                                                                                                    C
                                                            Based on a work at cs193p.stanford.edu Fal
MVC
MVCs working together




                                            Stanford
                                             CS193p
                                            Fall 2010




                   Based on a work at cs193p.stanford.edu
OBJECTIVE-C
OBJECTIVE-C


   .h                 .m

Interface     Implementation
CLASSES




          From: The Objective-C Programming Language
METHODS




[myArray insertObject:anObject atIndex:0];
                            From: The Objective-C Programming Language
PROPERTIES

     @property BOOL 鍖ag;
.h   @property (nonatomic) NSString *nameObject;



     @synthesize 鍖ag = _鍖ag;
.m   @synthesize nameObject = _nameObject;

                               From: The Objective-C Programming Language
HELLO IPHONE!
HELLO IPHONE!
HELLO IPHONE MVC
                             MVC
HelloiPhoneViewController                target

                            Controller
                                         outlet




 X
                                                                action
                                                                     myButtonPushed

     Model                                               View
                                    UI際際滷r
                                               UILabel               UIButton

         Then hand out an action to the View.                                              Sta
                                                                                            CS
                                                  Based on a work at cs193p.stanford.edu   Fall
HELLO IPHONE!:
HANDS-ON
CALCULATOR




http://bit.ly/iphonecalculator
MVC
EXTRA MATERIAL


 http://developer.apple.com/devcenter/ios/index.action




 WWW
CODE

   HelloiPhone: http://bit.ly/helloiphonecode


   Calculator: http://bit.ly/mume10calc


   MapApp: http://bit.ly/mume10map
QUESTIONS?
  THANKS!


   @gaposx
REFERENCES

   CS193P: Developing Applications for iOS, Stanford
    University: http://cs193p.stanford.edu/
   HelloWorld Tutorial: http://bit.ly/helloiphone
   iPhone Programming Tutorials: http://bit.ly/crwpk0
   Learning Objective-C: A Primer: http://bit.ly/objcpl

More Related Content

iOS Dev Intro

  • 1. IOS DEVELOPMENT INTRODUCTION Gonzalo Parra #mume12 October 5, 2012
  • 2. A smartphone is a mobile phone that offers more advanced computing ability and connectivity than a contemporary feature phone. Source: LP33.TV
  • 3. WHAT IS THE IPHONE? accelerometer Three-axis gyro Assisted GPS Digital compass multi-touch display sensors (proximity, ambient light) camera (photos, video) UMTS/HSDPA, GSM/EDGE, WI-FI, Bluetooth
  • 4. IOS? iPod Touch iPhone iPad
  • 5. WHAT IS THE IOS? Based on a work at cs193p.stanford.edu
  • 6. iOS Core OS Cocoa Touch OSX Kernel Power Management Media Mach 3.0 Keychain Access BSD Certi鍖cates Core Services Sockets File System Core OS Security Bonjour Based on a work at cs193p.stanford.edu
  • 7. iOS Core Services Cocoa Touch Collections Core Location Media Address Book Net Services Networking Threading Core Services File Access Preferences Core OS SQLite URL Utilities Based on a work at cs193p.stanford.edu
  • 8. iOS Media Cocoa Touch Core Audio JPEG, PNG, TIFF Media OpenAL PDF Audio Mixing Quartz (2D) Core Services Audio Recording Core Animation Core OS Video Playback OpenGL ES Based on a work at cs193p.stanford.edu
  • 9. iOS Cocoa Touch Cocoa Touch Multi-Touch Alerts Media Core Motion Web View View Hierarchy Map Kit Core Services Localization Image Picker Core OS Controls Camera Based on a work at cs193p.stanford.edu
  • 10. TYPES OF DEVELOPMENT Native Apps Mobile Web Apps External frameworks
  • 11. NATIVE APPLICATIONS iOS SDK (requires an Intel Mac) Language: Objective-C Tools: XCode Apple Developer Program AppStore
  • 13. MOBILE WEB APPLICATIONS Language: HTML*, Javascript, CSS Frameworks: Sencha Touch, jQueryMobile, ... Tools: HTML* editor (DashCode), Safari Can be displayed in every smartphone * PHP, JSP, ASP, ...
  • 14. EXAMPLES iUi: iPhone User Interface Framework
  • 15. EXTERNAL PLATFORMS PhoneGap, Titanium,... requires iOS SDK Language: HTML, Javascript, CSS
  • 17. COMPONENTS iOS SDK (requires an Intel Mac) Frameworks: Foundation, UIKit, Core Data, Core ... Design strategy: MVC Language: Objective-C Tools: XCode (iOS Simulator), Instruments Apple Developer Program
  • 19. MVC MVC Controller Model View Its all about managing communication between camps St C Based on a work at cs193p.stanford.edu Fa
  • 20. MVC: CONTROLLER MVC Controller outlet Model View Controllers can also talk directly to their View. St C Based on a work at cs193p.stanford.edu Fal
  • 21. MVC: VIEW MVC should target will did Controller data count outlet at da de ta le g so at u action e rc e Model View No. The Model is (should be) UI independent. St C Based on a work at cs193p.stanford.edu Fal
  • 22. MVC: MODEL MVC should target will did Controller data count outlet at da de Noti鍖cation ta le & KVO g so at u action e rc e Model View Now combine MVC groups to make complicated programs ... St C Based on a work at cs193p.stanford.edu Fal
  • 23. MVC MVCs working together Stanford CS193p Fall 2010 Based on a work at cs193p.stanford.edu
  • 25. OBJECTIVE-C .h .m Interface Implementation
  • 26. CLASSES From: The Objective-C Programming Language
  • 27. METHODS [myArray insertObject:anObject atIndex:0]; From: The Objective-C Programming Language
  • 28. PROPERTIES @property BOOL 鍖ag; .h @property (nonatomic) NSString *nameObject; @synthesize 鍖ag = _鍖ag; .m @synthesize nameObject = _nameObject; From: The Objective-C Programming Language
  • 31. HELLO IPHONE MVC MVC HelloiPhoneViewController target Controller outlet X action myButtonPushed Model View UI際際滷r UILabel UIButton Then hand out an action to the View. Sta CS Based on a work at cs193p.stanford.edu Fall
  • 34. MVC
  • 36. CODE HelloiPhone: http://bit.ly/helloiphonecode Calculator: http://bit.ly/mume10calc MapApp: http://bit.ly/mume10map
  • 38. REFERENCES CS193P: Developing Applications for iOS, Stanford University: http://cs193p.stanford.edu/ HelloWorld Tutorial: http://bit.ly/helloiphone iPhone Programming Tutorials: http://bit.ly/crwpk0 Learning Objective-C: A Primer: http://bit.ly/objcpl