Advanced iOS 4 Programming: Developing Mobile Applications Sample Chapter
iOS Programming
-
Upload
massimo-oliviero -
Category
Technology
-
view
524 -
download
4
description
Transcript of iOS Programming
Massimo Oliviero § Stefano Zanetti
iOS Programmingdive deep into technologies and frameworks
iOS Programming
Chi siamo
• Massimo OlivieroMobile Developer & EntrepreneurCappery - the make app companywww.massimooliviero.net - @maxoly
• Stefano ZanettiApple iOS DeveloperSuperpartes Innovation Campus & H-Farm@Doh__
iOS Programming
Agenda
• Anatomia di un App
• I design patterns nel framework
• iOS Techologies
iOS Programming
Code examples
• PMStarterKitPragma Mark Starter Kithttps://github.com/pragmamark/PMStarterKit
• PMTouchPragma Mark iOS General Purpose Libraryhttps://github.com/pragmamark/PMTouch
iOS Programming
Anatomia di un App
iOS Programming
File types
• .h - header file
• .m - implementation files (ObjC)
• .mm - implementation files (ObjC++, C++)
• .xib - file interfaccia (xml)
• .png (...) - immagini, audio e video
• .plist - settings (xml)
• .storyboards - view e controller storyboard
iOS Programming
File types
• .appè un bundle che contiene l’app e le risorse
• .ipa è la versione compressa e sotto DRM del file .app
iOS Programming
App Sandbox
• La sandbox è un contenitore virtuale dove l’app può leggere e scrivere file
• L’app non è autorizzata ad accedere ai file al di fuori della sandbox
• Esistono delle directory speciali all’interno della sandbox dove posizionare i file
iOS Programming
Directories
iOS Programming
App Lifecycle
iOS Programming
App Lifecycle
• UIApplication
• App Delegate
• UIWindow
• UIViewController
iOS Programming
App States
iOS Programming
Demo
iOS Programming
Design Patterns
iOS Programming
Design Patterns
• Mode View Controller
• Protocol
• Delegation
• Target-Action
• Notification Center
iOS Programming
Model View Controller
iOS Programming
Model View Controller
iOS Programming
Protocol
iOS Programming
Target-Action
iOS Programming
Notification Center
iOS Programming
Demo
iOS Programming
iOS Technologies
iOS Programming
Layers
• Cocoa TouchContiene i framework con le funzionalità base
• MediaContiene i framework per grafica, audio e video.
• Core ServicesContiene i framework per i servizi di sistema.
• Core OSContiene i framework di basso livello.
iOS Programming
Layers
iOS Programming
CocoaTouch
• Multitasking
• Storyboards
• Standard System View Controller
• Push Notification / Local Notification.
• iAd Framework
• Map Kit Framework
https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/_index.html#//apple_ref/doc/uid/TP40006955
iOS Programming
Multitasking
• Finite-Length Task in the Background
• Local Notifications
• Long-Running Background Tasks
iOS Programming
Long-Running Background Tasks
• Audio, per ascoltare un audio in background
• Location, per tracciare la posizione dell’utente
• Voip, per supportare chiamate voip
• Newsstand, per scaricare in background i contenuti
• External, per comunicare con accessori esterni
iOS Programming
Storyboard
• E’ una tecnologia introdotta in iOS 5
• Permette di disegnare l’interfaccia di tutta l’app in un unico posto (file)
• Permette di definire le transizioni tra una view e l’altra
• Si bello però, sconsigliato per progetti in team e troppo rigido per dev pro
iOS Programming
Standard System View Controllers
• Address Book UIPer visualizzare e manipolare contatti della rubrica
• Event Kit UIPer visualizzare e manipolare eventi del calendario
• Message UIPer inviare email e messaggi sms
• Media PlayerPer visualizzare e recuperare video ed immagini
iOS Programming
Notification
• Local notificationNotifiche locali schedulate dall’app e gestite dal sistema operativo del singolo device.
• Push Notification (remote notification)Notifiche inviate dai server Apple (APNs Apple Push Notification service) su tutti i device dove l’app è installata.
iOS Programming
Push Notification
iOS Programming
Push Notification
iOS Programming
iAd Framework
• Advertising network gestito da Apple
• Integrato in iOS 4 e successivi
• Semplice: solo due classi
• ADBannerView, classico banner (es. 320x50)
• ADInterstitialAd, full-screen banner (solo iPad)
iOS Programming
iAd Framework
iOS Programming
Map Kit Framework
• Controllo nativo per integrare le mappe nell’app
• Utilizza Google Mobile Maps fino ad iOS 5.1.1
• Da iOS 6 utilizza Apple Map (sig!)
• Supporta annotazioni, overlays e reverse geocoding
iOS Programming
Demo
iOS Programming
Media
• Graphics Technologies
• Audio Technologies
• Video Technologies
iOS Programming
Graphics Technologies
• Core Graphics (Quartz)Grafica vettoriale 2D e manipolazione immagini
• Core Animation (Quartz)Animazioni delle view e di altri oggetti
• Core ImageManipolazione video e immagini fisse
• Core TextText layout e rendering
• OpenGL ES + GLKit (2D e 3D rendering)
iOS Programming
Audio Technologies
• Media Player FrameworkPer accedere alla libreria di iTunes
• AVFoundation FrameworkAudio playback and recording
• OpenALHigh-performance, high-quality e positional audio
• Core AudioLibreria di basso livello
iOS Programming
Video Technologies
• AVFoundation Framework Video playback and recording
• Core MediaFramework di basso livello
iOS Programming
Demo
iOS Programming
Core Services
• iCloudSincronizzazione documenti e dati
• In-App PurchaseAcquisti all’interno dell’app
• Core Location FrameworkGeo-localizzazione dispositivo
• Core Data FrameworkPersistenza, object mapping e object graph
iOS Programming
Demo
iOS Programming
Core OS
• Accelerate frameworkDSP, linear algebra, and image-processing calculations
• Core Bluetooth frameworkPer interagire con il Bluetooth
• External Accessory frameworkPer comunicare con accessori esterni
Massimo Oliviero § Stefano Zanetti
grazie, domande?facebook.com/pragmamark
@pragmamarkorg
http://pragmamark.org