SlideShare a Scribd company logo
1 of 79
Minimum Skills




Tuesday, 20 March 12
Minimum Skills   iPhone SDK




Tuesday, 20 March 12
Minimum Skills

                 •     C, Objective C
                 •     Foundation Classes
                 •     UIKit
                 •     Interface Builder




Tuesday, 20 March 12
iOS SDK Layers




Tuesday, 20 March 12
iOS SDK Layers   iPhone SDK




Tuesday, 20 March 12
What is iPhone SDK?

         Layered libraries and frameworks

         Development tools

         Documentation




Tuesday, 20 March 12
iPhone SDK


                       Cocoa Touch

                          Media

                       Core Services

                         Core OS


Tuesday, 20 March 12
iPhone SDK


                       Cocoa Touch

                         Media

                                  Core Services

                        Core OS


Tuesday, 20 March 12
Core Services Layer

       Foundation        Framework    Objective-C wrappers for Core Foundation

       Core Foundation   C Library    Strings, dates, collections, threads, etc.

       Core Location     Framework    Accessing geospatial positioning info

       Core Data         Framework    Persistence, object-relational mapping

       Address Book      Framework    Managing contact info

       SQLite            C Library    Accessing lightweight SQL database

       XML Support       ObjC Class   NSXMLParser class and libXML2 library

       Store Kit         Framework    In app purchasing




Tuesday, 20 March 12
iPhone SDK


                       Cocoa Touch

                          Media

                       Core Services

                         Core OS


Tuesday, 20 March 12
iPhone SDK


                       Cocoa Touch

                                       Media

                       Core Services

                         Core OS


Tuesday, 20 March 12
Media


                       Core Animation

                        Open GL ES

                       Core Graphics

                        Core Audio


Tuesday, 20 March 12
iPhone SDK


                       Cocoa Touch

                          Media

                       Core Services

                         Core OS


Tuesday, 20 March 12
iPhone SDK


                                   Cocoa Touch

                          Media

                       Core Services

                         Core OS


Tuesday, 20 March 12
Cocoa touch


                       AddressBookUI

                         MessageUI

                          MapKit

                           UIKit


Tuesday, 20 March 12
UIKit

   •     Application management and integration (via URL schemes)
   •     Graphics and windowing
   •     Handling touch events
   •     User interface views and controls
   •     Text handling
   •     Web content
   •     Device-specific features (accelerometer, camera, photo
         library)



Tuesday, 20 March 12
iOS SDK Tools




Tuesday, 20 March 12
iOS SDK Tools   iPhone SDK




Tuesday, 20 March 12
XCode

           •      IDE for iPhone Projects
                 •     Build
                 •     Run (Simulator, device)
                 •     Debug
                 •     Source code
                       management (SCM)
                 •     Documentation




Tuesday, 20 March 12
Interface Builder

    •     Was a separate application
    •     Now integrated with Xcode
    •     GUI design tool
    •     Doesn't generate code
    •     Works with ‘Freeze-dried’ objects
         •      Archived in .xib files
         •      Dynamically loaded
         •      Objects deserialized at load
                time


Tuesday, 20 March 12
Instruments


       •      Garage Band-style interface
       •      Performance monitoring
       •      Recording trace data
             •     CPU Sampler
             •     File Activity
             •     Object Allocations
             •     Leaks




Tuesday, 20 March 12
iOS Simulator


             •     Simulate iPhone/iPad
             •     Set the OS Version
             •     Simulate some hardware features
                   •   Rotate, shake, some gestures
             •     Network aware
             •     Home / Lock



            •     ~/Library/Application Support/iPhone Simulator

Tuesday, 20 March 12
Anatomy of an Application




Tuesday, 20 March 12
Anatomy of an Application   iPhone SDK




Tuesday, 20 March 12
Anatomy of an Application

       •     Applications are executed from within a sandbox on the
             iPhone
       •     A Sandbox is a restricted environment
           •      Prevents applications from accessing unauthorised
                  resources.
           •      Prevents read/write operations outside your applications
                  home folder
           •      Everything your application needs must be self
                  contained.


Tuesday, 20 March 12
Applications home directory




Tuesday, 20 March 12
Applications home directory
   •     Documents
         •     User created Docs
         •     Not shared with any other application
   •     Library
         •     Application may store preferences
         •     Other resources
         •     Has a default Preferences folder
   •     MyApp.app
         •     Actual application
         •     Directory containing executable and other resources
Tuesday, 20 March 12
Anatomy of an Application

         •      Compiled Code
               •       Your code
               •       Frameworks
         •      Nib files
               •       UI elements and other objects
               •       Details about object relationships
         •      Resources
               •       Images, Sounds, strings etc


Tuesday, 20 March 12
La
                           un
                                   ch
                                        ap
                                           p




Tuesday, 20 March 12
                               A
                                   pp
                                        in
                                           it

                       Lo
                          ad
                               m
                                ai
                                  n
                                        ni
                                          b

                       W
                        ai
                          tf
                                                Application Lifecycle




                               or
                                    ev
                                       en
                                          t

                        H
                            an
                               dle
                                   ev
                                      en
                                         t


                               Ex
                                  it
                                     ap
                                        p
iPhone Application Skeleton

                         main()      main.m




                       Application   MyAppDelegate.h
                        Delegate     MyAppDelegate.m




Tuesday, 20 March 12
iPhone Application Skeleton

                         main()      main.m




                       Application   MyAppDelegate.h
                        Delegate     MyAppDelegate.m


                                     MyViewController.h
                         View
                                     MyViewController.m
                       Controller    MyViewController.xib

Tuesday, 20 March 12
Model, View, Controller


                               Controller

                                  Logic




                       Model                  View

                       Data                 Presentation /
                                            interaction

Tuesday, 20 March 12
Model
       •   Manages the app data and state
       •   Not concerned with UI or presentation
       •   Often persists somewhere
       •   Same model should be reusable, unchanged in different
           interfaces




Tuesday, 20 March 12
View
       •   Present the model to the user in an appropriate interface
       •   Allows user to manipulate data
       •   Does not store any data
           •     Except to cache state
       •   Easily reusable & configurable to display different data




Tuesday, 20 March 12
Controller
       •   Intermediary between Model & View
       •   Updates the view when the model changes
       •   Updates the model when the user manipulates the view
       •   Typically where the app logic lives




Tuesday, 20 March 12
Model, View, Controller


                               Controller




                       Model                View




Tuesday, 20 March 12
UIView
    •   Rectangular region of the screen
    •   Responsibilities
        •      Drawing
        •      Animation
        •      Responding to Events (touches etc)
    •   Parent to other views
        •      Can group other views/objects




Tuesday, 20 March 12
UIView




Tuesday, 20 March 12
View Coordinate System
         •      Origin in upper left corner
         •      y-axis grows downwards

                                       0,0
                                               +x




                                          +y


Tuesday, 20 March 12
Screen Sizes

            iPhone
        iPhone 3G/3GS    iPhone 4/4S    iPad 1/2     New iPad




             480 x 320   960 x 640     1024 x 768   2047 x 1536



Tuesday, 20 March 12
App - Icons
                  Size      File Name                    Used For

              512 x 512    iTunesArtwork               Ad Hoc iTunes

                57 x 57       Icon.png          Home screen on iPhone/iPod

              114 x 114     Icon@2x.png           Home screen for iPhone 4

                72 x 72      Icon-72.png            Home screen for iPad

              144 x 144    Icon-72@2x.png          Home screen for iPad 3

                29 x 29     Icon-Small.png          Spotlight and Settings

                50 x 50   Icon-Small-50.png    Spotlight for iPad compatibility

                58 x 58   Icon-Small@2x.png   Spotlight and Settings for iPhone 4

Tuesday, 20 March 12
Xcode: Workspace




Tuesday, 20 March 12
Xcode: Workspace




                  Navigator
                    area




Tuesday, 20 March 12
Xcode: Workspace




                  Navigator   Editor area
                    area




Tuesday, 20 March 12
Xcode: Workspace




                  Navigator   Editor area   Utility area
                    area




Tuesday, 20 March 12
Xcode: Workspace




                  Navigator   Editor area   Utility area
                    area




                                             Library
                                              area




Tuesday, 20 March 12
Xcode: Workspace




                  Navigator   Editor area   Utility area
                    area




                                             Library
                                              area




                              Debugger
                                area


Tuesday, 20 March 12
Xcode: Workspace




Tuesday, 20 March 12
Xcode: Workspace
     Navigator
    selector bar




Tuesday, 20 March 12
Xcode: Workspace
     Navigator
                       Jump Bars
    selector bar




Tuesday, 20 March 12
Xcode: Workspace
     Navigator
                       Jump Bars
    selector bar

                                   Inspector
                                    Selector
                                      bar




Tuesday, 20 March 12
Xcode: Workspace
     Navigator
                       Jump Bars
    selector bar

                                   Inspector
                                    Selector
                                      bar




                                    Library
                                   Selector
                                      bar




Tuesday, 20 March 12
Xcode: Workspace
     Navigator
                              Jump Bars
    selector bar

                                          Inspector
                                           Selector
                                             bar




                                           Library
                                          Selector
                                             bar




                 Filter bar
Tuesday, 20 March 12
Xcode - Toolbars




                                          Toolbar

                       Standard Editor
                       Assistant Editor
                       Version Editor
                       Hide/Show Navigator
                       Hide/Show Debug
                       Hide/Show Utilities
Tuesday, 20 March 12
Xcode - Toolbars
                       Navigators

                       List of files, symbols, search, issues, debug, breakpoint, logs




                                                       Jump Bar

                                                       Jump to any location in your project



                                          Toolbar

                       Standard Editor
                       Assistant Editor
                       Version Editor
                       Hide/Show Navigator
                       Hide/Show Debug
                       Hide/Show Utilities
Tuesday, 20 March 12
Xcode - Interface Builder



                                                Connections
                                            Size Inspector
                                         Attributes
                                       Identity Inspector
                                   Quick Help
                               File Inspector




                       Dock




Tuesday, 20 March 12
Xcode - Interface Builder




                                        Media
                                     Objects
                                   Code Snippet
                               File Templates



Tuesday, 20 March 12
Create an Xcode Project

          •     Menu: File > New
                Project…
                •      Xcode displays project
                       template browser
          •     Select iOS / Application
          •     Various iPhone templates
          •     Click Next…




Tuesday, 20 March 12
Basic UI & Interaction




Tuesday, 20 March 12
Basic UI & Interaction   iPhone SDK




Tuesday, 20 March 12
UIControls
        User interface classes

           •     Subclass of UIView
           •     Numerous built-in controls
           •     Generates events
                 •     Touch up/down
                 •     Drag event/exit
                 •     value changed
           •     Invokes actions upon events


Tuesday, 20 March 12
Target Action




                         View
                       Controller




Tuesday, 20 March 12
Target Action




                         View
                       Controller




Tuesday, 20 March 12
Target Action




                       - (IBAction)buttonPressed     View
                                                   Controller




Tuesday, 20 March 12
Target Action




                             - (IB
                                  Out
                                     let)
                                            Upd
                                               ate
                                                     my
                                                       Tex
                                                           t


                       - (IBAction)buttonPressed                 View
                                                               Controller




Tuesday, 20 March 12
Target Action




                             - (IB
                                  Out
                                     let)
                                            Upd
                                               ate
                                                     my
                                                       Tex
                                                           t


                       - (IBAction)buttonPressed                 View
                                                               Controller




Tuesday, 20 March 12
Events

   •     View objects that allows users to initiate some type of action
   •     Respond to variety of events
         •     Touch events
               •       touchDown,touchDragged, touchUp(inside, outside)
         •     Value changed
         •     Editing events
               •       editing began, editing changed, editing ended



Tuesday, 20 March 12
Interface Builder Tags

       •   IBActions
           •     Associate methods (code) to actions in the UI
                 •     Run some code when button press etc
       •   IBOutlets
           •     Associate properties in code with objects in UI
                 •     Get or set a value of a UI object
                       •   Set/Get value of a switch
                       •   Set a view’s hidden propertie


Tuesday, 20 March 12
Target Action




                         View
                       Controller




Tuesday, 20 March 12
Target Action




                         View
                       Controller




Tuesday, 20 March 12
Target Action




                       - (IBAction)buttonPressed     View
                                                   Controller




Tuesday, 20 March 12
Target Action




                             - (IB
                                  Out
                                     let)
                                            Upd
                                               ate
                                                     my
                                                       Tex
                                                           t


                       - (IBAction)buttonPressed                 View
                                                               Controller




Tuesday, 20 March 12
Target Action




                             - (IB
                                  Out
                                     let)
                                            Upd
                                               ate
                                                     my
                                                       Tex
                                                           t


                       - (IBAction)buttonPressed                 View
                                                               Controller




Tuesday, 20 March 12
Files
                       •   Header file contains declarations
                           •   variables, methods etc



                       •   Method file implementation
                           •   Your code goes here


                       •   Xib file
                           •   The user interface goes here


Tuesday, 20 March 12
Linking in Interface Builder
                       Files Owner




Tuesday, 20 March 12
Linking in Interface Builder
                       Files Owner




Tuesday, 20 March 12
Linking in Interface Builder
                       Files Owner




Tuesday, 20 March 12
Demo and Exercise




Tuesday, 20 March 12
Demo and Exercise   iPhone SDK




Tuesday, 20 March 12

More Related Content

Similar to iOS Development Seminar Keynote

Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...InSync2011
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOSFrancisco Ramos
 
IoT, computer intelligence and javascript in the physical world
IoT, computer intelligence and javascript in the physical worldIoT, computer intelligence and javascript in the physical world
IoT, computer intelligence and javascript in the physical worldIvo Andreev
 
mobile technologies iOS
mobile technologies iOSmobile technologies iOS
mobile technologies iOSchrisiegers
 
Xamarin.Mac Seminar
Xamarin.Mac SeminarXamarin.Mac Seminar
Xamarin.Mac SeminarXamarin
 
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...InfiniteGraph
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to TitaniumGraham Weldon
 
Keynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumKeynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumTechday7
 
Extending Spring for Custom Usage
Extending Spring for Custom UsageExtending Spring for Custom Usage
Extending Spring for Custom UsageJoshua Long
 
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesEnterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesAlex Senkevitch
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Axway Appcelerator
 
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...InSync2011
 
Wideo Pitch
Wideo PitchWideo Pitch
Wideo PitchTony Jin
 
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008eLiberatica
 
Appcelerator Overview
Appcelerator OverviewAppcelerator Overview
Appcelerator OverviewJeff Haynie
 
Native Augmented Reality: An Introduction to ARKit and ARCore
Native Augmented Reality: An Introduction to ARKit and ARCoreNative Augmented Reality: An Introduction to ARKit and ARCore
Native Augmented Reality: An Introduction to ARKit and ARCoreAll Things Open
 
Fred Spencer & Blain Hamon: Advanced Titanium for iOS
Fred Spencer & Blain Hamon: Advanced Titanium for iOSFred Spencer & Blain Hamon: Advanced Titanium for iOS
Fred Spencer & Blain Hamon: Advanced Titanium for iOSAxway Appcelerator
 
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...Alec Tucker
 

Similar to iOS Development Seminar Keynote (20)

200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA
 
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
 
Developing Applications on iOS
Developing Applications on iOSDeveloping Applications on iOS
Developing Applications on iOS
 
IoT, computer intelligence and javascript in the physical world
IoT, computer intelligence and javascript in the physical worldIoT, computer intelligence and javascript in the physical world
IoT, computer intelligence and javascript in the physical world
 
mobile technologies iOS
mobile technologies iOSmobile technologies iOS
mobile technologies iOS
 
Xamarin.Mac Seminar
Xamarin.Mac SeminarXamarin.Mac Seminar
Xamarin.Mac Seminar
 
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
The Synergy Between the Object Database, Graph Database, Cloud Computing and ...
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
 
Keynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titaniumKeynote: Techday7 appcelerator titanium
Keynote: Techday7 appcelerator titanium
 
Extending Spring for Custom Usage
Extending Spring for Custom UsageExtending Spring for Custom Usage
Extending Spring for Custom Usage
 
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It PosesEnterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
Enterprise Java: Just What Is It and the Risks, Threats, and Exposures It Poses
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem Nolan Wright: Appcelerator's World-Class Ecosystem
Nolan Wright: Appcelerator's World-Class Ecosystem
 
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...
Database & Technology 2 _ Damien Bootsma _ best Practices for capturing meta ...
 
Wideo Pitch
Wideo PitchWideo Pitch
Wideo Pitch
 
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
"Open Source at Microsoft" by Zoli Herczeg @ eLiberatica 2008
 
Appcelerator Overview
Appcelerator OverviewAppcelerator Overview
Appcelerator Overview
 
Native Augmented Reality: An Introduction to ARKit and ARCore
Native Augmented Reality: An Introduction to ARKit and ARCoreNative Augmented Reality: An Introduction to ARKit and ARCore
Native Augmented Reality: An Introduction to ARKit and ARCore
 
Fred Spencer & Blain Hamon: Advanced Titanium for iOS
Fred Spencer & Blain Hamon: Advanced Titanium for iOSFred Spencer & Blain Hamon: Advanced Titanium for iOS
Fred Spencer & Blain Hamon: Advanced Titanium for iOS
 
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
SydMobDev Feb 2014 - Cross Platform Native App Development with Xamarin and M...
 

Recently uploaded

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

iOS Development Seminar Keynote

  • 2. Minimum Skills iPhone SDK Tuesday, 20 March 12
  • 3. Minimum Skills • C, Objective C • Foundation Classes • UIKit • Interface Builder Tuesday, 20 March 12
  • 5. iOS SDK Layers iPhone SDK Tuesday, 20 March 12
  • 6. What is iPhone SDK? Layered libraries and frameworks Development tools Documentation Tuesday, 20 March 12
  • 7. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 8. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 9. Core Services Layer Foundation Framework Objective-C wrappers for Core Foundation Core Foundation C Library Strings, dates, collections, threads, etc. Core Location Framework Accessing geospatial positioning info Core Data Framework Persistence, object-relational mapping Address Book Framework Managing contact info SQLite C Library Accessing lightweight SQL database XML Support ObjC Class NSXMLParser class and libXML2 library Store Kit Framework In app purchasing Tuesday, 20 March 12
  • 10. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 11. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 12. Media Core Animation Open GL ES Core Graphics Core Audio Tuesday, 20 March 12
  • 13. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 14. iPhone SDK Cocoa Touch Media Core Services Core OS Tuesday, 20 March 12
  • 15. Cocoa touch AddressBookUI MessageUI MapKit UIKit Tuesday, 20 March 12
  • 16. UIKit • Application management and integration (via URL schemes) • Graphics and windowing • Handling touch events • User interface views and controls • Text handling • Web content • Device-specific features (accelerometer, camera, photo library) Tuesday, 20 March 12
  • 17. iOS SDK Tools Tuesday, 20 March 12
  • 18. iOS SDK Tools iPhone SDK Tuesday, 20 March 12
  • 19. XCode • IDE for iPhone Projects • Build • Run (Simulator, device) • Debug • Source code management (SCM) • Documentation Tuesday, 20 March 12
  • 20. Interface Builder • Was a separate application • Now integrated with Xcode • GUI design tool • Doesn't generate code • Works with ‘Freeze-dried’ objects • Archived in .xib files • Dynamically loaded • Objects deserialized at load time Tuesday, 20 March 12
  • 21. Instruments • Garage Band-style interface • Performance monitoring • Recording trace data • CPU Sampler • File Activity • Object Allocations • Leaks Tuesday, 20 March 12
  • 22. iOS Simulator • Simulate iPhone/iPad • Set the OS Version • Simulate some hardware features • Rotate, shake, some gestures • Network aware • Home / Lock • ~/Library/Application Support/iPhone Simulator Tuesday, 20 March 12
  • 23. Anatomy of an Application Tuesday, 20 March 12
  • 24. Anatomy of an Application iPhone SDK Tuesday, 20 March 12
  • 25. Anatomy of an Application • Applications are executed from within a sandbox on the iPhone • A Sandbox is a restricted environment • Prevents applications from accessing unauthorised resources. • Prevents read/write operations outside your applications home folder • Everything your application needs must be self contained. Tuesday, 20 March 12
  • 27. Applications home directory • Documents • User created Docs • Not shared with any other application • Library • Application may store preferences • Other resources • Has a default Preferences folder • MyApp.app • Actual application • Directory containing executable and other resources Tuesday, 20 March 12
  • 28. Anatomy of an Application • Compiled Code • Your code • Frameworks • Nib files • UI elements and other objects • Details about object relationships • Resources • Images, Sounds, strings etc Tuesday, 20 March 12
  • 29. La un ch ap p Tuesday, 20 March 12 A pp in it Lo ad m ai n ni b W ai tf Application Lifecycle or ev en t H an dle ev en t Ex it ap p
  • 30. iPhone Application Skeleton main() main.m Application MyAppDelegate.h Delegate MyAppDelegate.m Tuesday, 20 March 12
  • 31. iPhone Application Skeleton main() main.m Application MyAppDelegate.h Delegate MyAppDelegate.m MyViewController.h View MyViewController.m Controller MyViewController.xib Tuesday, 20 March 12
  • 32. Model, View, Controller Controller Logic Model View Data Presentation / interaction Tuesday, 20 March 12
  • 33. Model • Manages the app data and state • Not concerned with UI or presentation • Often persists somewhere • Same model should be reusable, unchanged in different interfaces Tuesday, 20 March 12
  • 34. View • Present the model to the user in an appropriate interface • Allows user to manipulate data • Does not store any data • Except to cache state • Easily reusable & configurable to display different data Tuesday, 20 March 12
  • 35. Controller • Intermediary between Model & View • Updates the view when the model changes • Updates the model when the user manipulates the view • Typically where the app logic lives Tuesday, 20 March 12
  • 36. Model, View, Controller Controller Model View Tuesday, 20 March 12
  • 37. UIView • Rectangular region of the screen • Responsibilities • Drawing • Animation • Responding to Events (touches etc) • Parent to other views • Can group other views/objects Tuesday, 20 March 12
  • 39. View Coordinate System • Origin in upper left corner • y-axis grows downwards 0,0 +x +y Tuesday, 20 March 12
  • 40. Screen Sizes iPhone iPhone 3G/3GS iPhone 4/4S iPad 1/2 New iPad 480 x 320 960 x 640 1024 x 768 2047 x 1536 Tuesday, 20 March 12
  • 41. App - Icons Size File Name Used For 512 x 512 iTunesArtwork Ad Hoc iTunes 57 x 57 Icon.png Home screen on iPhone/iPod 114 x 114 Icon@2x.png Home screen for iPhone 4 72 x 72 Icon-72.png Home screen for iPad 144 x 144 Icon-72@2x.png Home screen for iPad 3 29 x 29 Icon-Small.png Spotlight and Settings 50 x 50 Icon-Small-50.png Spotlight for iPad compatibility 58 x 58 Icon-Small@2x.png Spotlight and Settings for iPhone 4 Tuesday, 20 March 12
  • 43. Xcode: Workspace Navigator area Tuesday, 20 March 12
  • 44. Xcode: Workspace Navigator Editor area area Tuesday, 20 March 12
  • 45. Xcode: Workspace Navigator Editor area Utility area area Tuesday, 20 March 12
  • 46. Xcode: Workspace Navigator Editor area Utility area area Library area Tuesday, 20 March 12
  • 47. Xcode: Workspace Navigator Editor area Utility area area Library area Debugger area Tuesday, 20 March 12
  • 49. Xcode: Workspace Navigator selector bar Tuesday, 20 March 12
  • 50. Xcode: Workspace Navigator Jump Bars selector bar Tuesday, 20 March 12
  • 51. Xcode: Workspace Navigator Jump Bars selector bar Inspector Selector bar Tuesday, 20 March 12
  • 52. Xcode: Workspace Navigator Jump Bars selector bar Inspector Selector bar Library Selector bar Tuesday, 20 March 12
  • 53. Xcode: Workspace Navigator Jump Bars selector bar Inspector Selector bar Library Selector bar Filter bar Tuesday, 20 March 12
  • 54. Xcode - Toolbars Toolbar Standard Editor Assistant Editor Version Editor Hide/Show Navigator Hide/Show Debug Hide/Show Utilities Tuesday, 20 March 12
  • 55. Xcode - Toolbars Navigators List of files, symbols, search, issues, debug, breakpoint, logs Jump Bar Jump to any location in your project Toolbar Standard Editor Assistant Editor Version Editor Hide/Show Navigator Hide/Show Debug Hide/Show Utilities Tuesday, 20 March 12
  • 56. Xcode - Interface Builder Connections Size Inspector Attributes Identity Inspector Quick Help File Inspector Dock Tuesday, 20 March 12
  • 57. Xcode - Interface Builder Media Objects Code Snippet File Templates Tuesday, 20 March 12
  • 58. Create an Xcode Project • Menu: File > New Project… • Xcode displays project template browser • Select iOS / Application • Various iPhone templates • Click Next… Tuesday, 20 March 12
  • 59. Basic UI & Interaction Tuesday, 20 March 12
  • 60. Basic UI & Interaction iPhone SDK Tuesday, 20 March 12
  • 61. UIControls User interface classes • Subclass of UIView • Numerous built-in controls • Generates events • Touch up/down • Drag event/exit • value changed • Invokes actions upon events Tuesday, 20 March 12
  • 62. Target Action View Controller Tuesday, 20 March 12
  • 63. Target Action View Controller Tuesday, 20 March 12
  • 64. Target Action - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 65. Target Action - (IB Out let) Upd ate my Tex t - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 66. Target Action - (IB Out let) Upd ate my Tex t - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 67. Events • View objects that allows users to initiate some type of action • Respond to variety of events • Touch events • touchDown,touchDragged, touchUp(inside, outside) • Value changed • Editing events • editing began, editing changed, editing ended Tuesday, 20 March 12
  • 68. Interface Builder Tags • IBActions • Associate methods (code) to actions in the UI • Run some code when button press etc • IBOutlets • Associate properties in code with objects in UI • Get or set a value of a UI object • Set/Get value of a switch • Set a view’s hidden propertie Tuesday, 20 March 12
  • 69. Target Action View Controller Tuesday, 20 March 12
  • 70. Target Action View Controller Tuesday, 20 March 12
  • 71. Target Action - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 72. Target Action - (IB Out let) Upd ate my Tex t - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 73. Target Action - (IB Out let) Upd ate my Tex t - (IBAction)buttonPressed View Controller Tuesday, 20 March 12
  • 74. Files • Header file contains declarations • variables, methods etc • Method file implementation • Your code goes here • Xib file • The user interface goes here Tuesday, 20 March 12
  • 75. Linking in Interface Builder Files Owner Tuesday, 20 March 12
  • 76. Linking in Interface Builder Files Owner Tuesday, 20 March 12
  • 77. Linking in Interface Builder Files Owner Tuesday, 20 March 12
  • 79. Demo and Exercise iPhone SDK Tuesday, 20 March 12