iOS Programming

819 views

Published on

Introduzione alle tecnologie e ai framework dell'iOS SDK. Slide presentate al secondo evento pragma mark.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
819
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

iOS Programming

  1. 1. iOS Programmingdive deep into technologies and frameworks Massimo Oliviero § Stefano Zanetti
  2. 2. Chi siamo• Massimo Oliviero Mobile Developer & Entrepreneur Cappery - the make app company www.massimooliviero.net - @maxoly• Stefano Zanetti Apple iOS Developer Superpartes Innovation Campus & H-Farm @Doh__ iOS Programming
  3. 3. Agenda• Anatomia di un App• I design patterns nel framework• iOS Techologies iOS Programming
  4. 4. Code examples• PMStarterKit Pragma Mark Starter Kit https://github.com/pragmamark/PMStarterKit• PMTouch Pragma Mark iOS General Purpose Library https://github.com/pragmamark/PMTouch iOS Programming
  5. 5. Anatomia di un App iOS Programming
  6. 6. 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
  7. 7. File types• .app è un bundle che contiene l’app e le risorse• .ipa è la versione compressa e sotto DRM del file .app iOS Programming
  8. 8. 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
  9. 9. Directories iOS Programming
  10. 10. App Lifecycle iOS Programming
  11. 11. App Lifecycle• UIApplication• App Delegate• UIWindow• UIViewController iOS Programming
  12. 12. App States iOS Programming
  13. 13. Demo iOS Programming
  14. 14. Design Patterns iOS Programming
  15. 15. Design Patterns• Mode View Controller• Protocol• Delegation• Target-Action• Notification Center iOS Programming
  16. 16. Model View Controller iOS Programming
  17. 17. Model View Controller iOS Programming
  18. 18. Protocol iOS Programming
  19. 19. Target-Action iOS Programming
  20. 20. Notification Center iOS Programming
  21. 21. Demo iOS Programming
  22. 22. iOS Technologies iOS Programming
  23. 23. Layers• Cocoa Touch con le funzionalità base Contiene i framework• Media i framework per grafica, audio e video. Contiene• Core Services per i servizi di sistema. Contiene i framework• Core OSframework di basso livello. Contiene i iOS Programming
  24. 24. Layers iOS Programming
  25. 25. CocoaTouch• Multitasking• Storyboards• Standard System View Controller• Push Notification / Local Notification.• iAd Framework• Map Kit Frameworkhttps://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/_index.html#//apple_ref/doc/uid/TP40006955 iOS Programming
  26. 26. Multitasking• Finite-Length Task in the Background• Local Notifications• Long-Running Background Tasks iOS Programming
  27. 27. 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
  28. 28. 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
  29. 29. Standard System View Controllers • Address Book UI contatti della rubrica Per visualizzare e manipolare • Event Kit UImanipolare eventi del calendario Per visualizzare e • Message UI e messaggi sms Per inviare email • Media Player Per visualizzare e recuperare video ed immagini iOS Programming
  30. 30. Notification• Local notification Notifiche 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
  31. 31. Push Notification iOS Programming
  32. 32. Push Notification iOS Programming
  33. 33. 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
  34. 34. iAd Framework iOS Programming
  35. 35. 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
  36. 36. Demo iOS Programming
  37. 37. Media• Graphics Technologies• Audio Technologies• Video Technologies iOS Programming
  38. 38. Graphics Technologies• Core Graphics (Quartz) immagini Grafica vettoriale 2D e manipolazione• Core Animatione (Quartz) Animazioni delle view di altri oggetti• Core Image e immagini fisse Manipolazione video• Core Text Text layout e rendering• OpenGL ES + GLKit (2D e 3D rendering) iOS Programming
  39. 39. Audio Technologies• Media Player Framework Per accedere alla libreria di iTunes• AVFoundation Framework Audio playback and recording• OpenAL high-quality e positional audio High-performance,• Core Audio livello Libreria di basso iOS Programming
  40. 40. Video Technologies• AVFoundation Framework Video playback and recording• Core Media Framework di basso livello iOS Programming
  41. 41. Demo iOS Programming
  42. 42. Core Services• iCloud Sincronizzazione documenti e dati• In-App Purchase Acquisti all’interno dell’app• Core Location Framework Geo-localizzazione dispositivo• Core Data Framework Persistenza, object mapping e object graph iOS Programming
  43. 43. Demo iOS Programming
  44. 44. Core OS• Accelerate framework DSP, linear algebra, and image-processing calculations• Core Bluetooth framework Per interagire con il Bluetooth• External Accessory framework Per comunicare con accessori esterni iOS Programming
  45. 45. grazie, domande? facebook.com/pragmamark @pragmamarkorg http://pragmamark.org Massimo Oliviero § Stefano Zanetti

×