ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
IOS DEVELOPMENT
 INTRODUCTION
    Gonzalo Parra
     #mume11




    October 14, 2011
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
Sources: http://www.trendbird.co.kr/, iOS Developer Library, http://www.capsulecomputers.com.au
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, iOS   Simulator

? Apple   Developer Program

 ? AppStore
EXAMPLES
MOBILE WEB APPLICATIONS

? Language: HTML*, Javascript, CSS

     ? Frameworks: Sencha Touch, jQueryMobile, ...

? Tools: HTML*          editor (DashCode), iOS Simulator, Safari

? Can     be displayed in ¡°every¡± smartphone


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


? PhoneGap, Titanium,...

  ? requires   iPhone SDK

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

 ? Frameworks: Foundation, UIKit,...

 ? MVC

? Language: Objective-C

? Tools: XCode, iOS   Simulator, Instruments

? Apple   Developer Program
MVC
                     MVC

                    Controller




    Model                                   View


It¡¯s 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


   .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;

@property (copy) NSString *nameObject;



@synthesize ?ag;

@synthesize 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
MAPAPP (MAPKIT)
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!
   http://bit.ly/gonzalo-parra
REFERENCES

?   CS193P: Developing Applications for iOS, Stanford
    University: http://cs193p.stanford.edu/
?   HelloWorld Tutorial: http://bit.ly/helloiphone
?   iPhone Programming Tutorial: http://bit.ly/crwpk0
?   The Spoken Word: http://bit.ly/dcMXBK
?   The Objective-C Programming Language: http://bit.ly/
    objcpl
Ad

Recommended

iOS Dev Intro
iOS Dev Intro
Gonzalo Parra
?
Mobile development
Mobile development
Gonzalo Parra
?
Mume JQueryMobile Intro
Mume JQueryMobile Intro
Gonzalo Parra
?
Handout 00 0
Handout 00 0
Mahmoud
?
01 introduction
01 introduction
rakesyh
?
Assignment1 B 0
Assignment1 B 0
Mahmoud
?
More! @ ED-MEDIA
More! @ ED-MEDIA
Gonzalo Parra
?
Mume HTML5 Intro
Mume HTML5 Intro
Gonzalo Parra
?
Lecture 1
Lecture 1
tamil selvan
?
iOS Architecture and MVC
iOS Architecture and MVC
Marian Ignev
?
Lecture 1 slides
Lecture 1 slides
amarprabhu
?
iOS Development Introduction
iOS Development Introduction
Gonzalo Parra
?
iOS platform
iOS platform
maya_slides
?
Iphone course 3
Iphone course 3
Janet Huang
?
Lecture1
Lecture1
redwan1795
?
Developing Applications on iOS
Developing Applications on iOS
Francisco Ramos
?
iOS Design Patterns
iOS Design Patterns
Andreas Blick
?
ios basics
ios basics
Muthu Sabarinathan
?
04 Model View Controller
04 Model View Controller
Mahmoud
?
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
Pin-Ying Tu
?
200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA
Javier Gonzalez-Sanchez
?
Dancing about architecture
Dancing about architecture
Coraline Ehmke
?
Synapse india reviews on i phone and android os
Synapse india reviews on i phone and android os
saritasingh19866
?
Citibank
Citibank
thepragmaticlab
?
Synapse india mobile apps update
Synapse india mobile apps update
Synapseindiappsdevelopment
?
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
Vu Tran Lam
?
iPhone Development For .Net Dev
iPhone Development For .Net Dev
Alex Hung
?
Presentation
Presentation
Tony Vo
?
TiNYARM @ MATEL WS
TiNYARM @ MATEL WS
Gonzalo Parra
?
More! @ EC-TEL
More! @ EC-TEL
Gonzalo Parra
?

More Related Content

Similar to iOS Development Introduction (MuMe11) (20)

Lecture 1
Lecture 1
tamil selvan
?
iOS Architecture and MVC
iOS Architecture and MVC
Marian Ignev
?
Lecture 1 slides
Lecture 1 slides
amarprabhu
?
iOS Development Introduction
iOS Development Introduction
Gonzalo Parra
?
iOS platform
iOS platform
maya_slides
?
Iphone course 3
Iphone course 3
Janet Huang
?
Lecture1
Lecture1
redwan1795
?
Developing Applications on iOS
Developing Applications on iOS
Francisco Ramos
?
iOS Design Patterns
iOS Design Patterns
Andreas Blick
?
ios basics
ios basics
Muthu Sabarinathan
?
04 Model View Controller
04 Model View Controller
Mahmoud
?
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
Pin-Ying Tu
?
200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA
Javier Gonzalez-Sanchez
?
Dancing about architecture
Dancing about architecture
Coraline Ehmke
?
Synapse india reviews on i phone and android os
Synapse india reviews on i phone and android os
saritasingh19866
?
Citibank
Citibank
thepragmaticlab
?
Synapse india mobile apps update
Synapse india mobile apps update
Synapseindiappsdevelopment
?
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
Vu Tran Lam
?
iPhone Development For .Net Dev
iPhone Development For .Net Dev
Alex Hung
?
Presentation
Presentation
Tony Vo
?
iOS Architecture and MVC
iOS Architecture and MVC
Marian Ignev
?
iOS Development Introduction
iOS Development Introduction
Gonzalo Parra
?
Developing Applications on iOS
Developing Applications on iOS
Francisco Ramos
?
04 Model View Controller
04 Model View Controller
Mahmoud
?
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
³¬¼‰È«ÄÜΣ˜Ç¸ÄÔìÍõ - Ôö½¨¡¢¸Ä½¨¡¢´òµôÖØ½¨ÄãµÄÜ›ów¼Ü˜‹£¿
Pin-Ying Tu
?
Dancing about architecture
Dancing about architecture
Coraline Ehmke
?
Synapse india reviews on i phone and android os
Synapse india reviews on i phone and android os
saritasingh19866
?
Session 7 - Overview of the iOS7 app development architecture
Session 7 - Overview of the iOS7 app development architecture
Vu Tran Lam
?
iPhone Development For .Net Dev
iPhone Development For .Net Dev
Alex Hung
?
Presentation
Presentation
Tony Vo
?

More from Gonzalo Parra (7)

TiNYARM @ MATEL WS
TiNYARM @ MATEL WS
Gonzalo Parra
?
More! @ EC-TEL
More! @ EC-TEL
Gonzalo Parra
?
Research2.0
Research2.0
Gonzalo Parra
?
More! A Social Discovery Tool for Researchers
More! A Social Discovery Tool for Researchers
Gonzalo Parra
?
MACE
MACE
Gonzalo Parra
?
ARIADNE LOM Application Profile
ARIADNE LOM Application Profile
Gonzalo Parra
?
Iphone Presentation for MuMe09
Iphone Presentation for MuMe09
Gonzalo Parra
?
Ad

Recently uploaded (20)

Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
?
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
?
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
?
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
?
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
?
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
?
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
?
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
?
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
?
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
?
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
?
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
?
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
?
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
?
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
?
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
?
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
?
AI vs Human Writing: Can You Tell the Difference?
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
?
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
?
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
?
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
?
Curietech AI in action - Accelerate MuleSoft development
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
?
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
?
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
?
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
?
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
?
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
?
OWASP Barcelona 2025 Threat Model Library
OWASP Barcelona 2025 Threat Model Library
PetraVukmirovic
?
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
?
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
?
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
?
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
?
AI VIDEO MAGAZINE - June 2025 - r/aivideo
AI VIDEO MAGAZINE - June 2025 - r/aivideo
1pcity Studios, Inc
?
UserCon Belgium: Honey, VMware increased my bill
UserCon Belgium: Honey, VMware increased my bill
stijn40
?
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
Cluster-Based Multi-Objective Metamorphic Test Case Pair Selection for Deep N...
janeliewang985
?
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
?
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
?
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
?
Cyber Defense Matrix Workshop - RSA Conference
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
?
Ad

iOS Development Introduction (MuMe11)

  • 1. IOS DEVELOPMENT INTRODUCTION Gonzalo Parra #mume11 October 14, 2011
  • 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. Sources: http://www.trendbird.co.kr/, iOS Developer Library, http://www.capsulecomputers.com.au
  • 5. IOS? ? iPod Touch ? iPhone ? iPad
  • 6. WHAT IS THE IOS? Based on a work at cs193p.stanford.edu
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. TYPES OF DEVELOPMENT ? Native Apps ? Mobile Web Apps ? External frameworks
  • 12. NATIVE APPLICATIONS ? iOS SDK (requires an Intel Mac) ? Language: Objective-C ? Tools: XCode, iOS Simulator ? Apple Developer Program ? AppStore
  • 14. MOBILE WEB APPLICATIONS ? Language: HTML*, Javascript, CSS ? Frameworks: Sencha Touch, jQueryMobile, ... ? Tools: HTML* editor (DashCode), iOS Simulator, Safari ? Can be displayed in ¡°every¡± smartphone * PHP, JSP, ASP, ...
  • 15. EXAMPLES iUi: iPhone User Interface Framework
  • 16. EXTERNAL PLATFORMS ? PhoneGap, Titanium,... ? requires iPhone SDK ? Language: HTML, Javascript, CSS
  • 18. COMPONENTS ? iOS SDK (requires an Intel Mac) ? Frameworks: Foundation, UIKit,... ? MVC ? Language: Objective-C ? Tools: XCode, iOS Simulator, Instruments ? Apple Developer Program
  • 19. MVC MVC Controller Model View It¡¯s 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
  • 24. OBJECTIVE-C .h .m Interface Implementation
  • 25. CLASSES From: ¡°The Objective-C Programming Language¡±
  • 26. METHODS [myArray insertObject:anObject atIndex:0]; From: ¡°The Objective-C Programming Language¡±
  • 27. PROPERTIES @property BOOL ?ag; @property (copy) NSString *nameObject; @synthesize ?ag; @synthesize nameObject; From: ¡°The Objective-C Programming Language¡±
  • 30. 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
  • 33. MVC
  • 36. CODE ? HelloiPhone: http://bit.ly/helloiphonecode ? Calculator: http://bit.ly/mume10calc ? MapApp: http://bit.ly/mume10map
  • 37. QUESTIONS? THANKS! http://bit.ly/gonzalo-parra
  • 38. REFERENCES ? CS193P: Developing Applications for iOS, Stanford University: http://cs193p.stanford.edu/ ? HelloWorld Tutorial: http://bit.ly/helloiphone ? iPhone Programming Tutorial: http://bit.ly/crwpk0 ? The Spoken Word: http://bit.ly/dcMXBK ? The Objective-C Programming Language: http://bit.ly/ objcpl