Applicazione iPhone con utilizzo di CoreData e UIKit
-
Upload
gcastaldi -
Category
Technology
-
view
2.272 -
download
0
Transcript of Applicazione iPhone con utilizzo di CoreData e UIKit
![Page 1: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/1.jpg)
Applicazione iPhone con utilizzo di UIKit e CoreData
Giannandrea CastaldiSoftware Engineer in [email protected]://www.exmachina.ch
![Page 2: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/2.jpg)
Obiettivo
![Page 3: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/3.jpg)
Design e pratiche utilizzate nello sviluppo di applicazioni iPhone
Obiettivo
![Page 4: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/4.jpg)
Design e pratiche utilizzate nello sviluppo di applicazioni iPhone
Come utilizzare UIKit quasi esclusivamente da codice
Obiettivo
![Page 5: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/5.jpg)
Design e pratiche utilizzate nello sviluppo di applicazioni iPhone
Come utilizzare UIKit quasi esclusivamente da codice
Come definire il persistent stack di CoreData da codice
Obiettivo
![Page 6: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/6.jpg)
Studio
![Page 7: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/7.jpg)
Studio
![Page 8: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/8.jpg)
Studio
![Page 9: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/9.jpg)
Studio
![Page 10: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/10.jpg)
XCode: IDE di sviluppo
![Page 11: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/11.jpg)
XCode: IDE di sviluppo
Ok!
![Page 12: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/12.jpg)
IB: Graphical editor per GUI
![Page 13: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/13.jpg)
IB: Graphical editor per GUI
Ok, bu
t with
cauti
on
![Page 14: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/14.jpg)
Interface Builder
![Page 15: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/15.jpg)
Interface Builder
No RAD (Rapid Application Development)
![Page 16: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/16.jpg)
Interface Builder
No RAD (Rapid Application Development)
No RGD (Rapid Gui Development)
![Page 17: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/17.jpg)
Interface Builder
No RAD (Rapid Application Development)
No RGD (Rapid Gui Development)
Alla lunga paga di più fare direttamente tutto da codice
![Page 18: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/18.jpg)
Interface Builder
Jonathan Zdziarski: “Many of the properties you’re able to set using IB are reproducible in code. Think of IB as a GUI for code. While IB supports many of the same characteristics you
can set up, it not support all”.
![Page 19: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/19.jpg)
CoreData model: Editor Grafico
![Page 20: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/20.jpg)
CoreData model: Editor Grafico
No,
Than
ks
![Page 21: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/21.jpg)
CoreData model: da codice
![Page 22: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/22.jpg)
CoreData model: da codice
Ok!
![Page 23: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/23.jpg)
CoreData
Core Data Programming Guide by Apple: “You typically create the
managed object model graphically using Xcode's Data Model Design tool.
(If you wish you can construct the model programmatically at runtime.)”.
![Page 24: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/24.jpg)
i4twitties
[Demo e Project overview]
![Page 25: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/25.jpg)
UIKit
![Page 26: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/26.jpg)
UIKit
UIKit fornisce gli oggetti necessari per:
![Page 27: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/27.jpg)
UIKit
UIKit fornisce gli oggetti necessari per:
•eseguire applicazioni grafiche
![Page 28: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/28.jpg)
UIKit
UIKit fornisce gli oggetti necessari per:
•eseguire applicazioni grafiche
•MVC: visualizzare i contenuti sul video
![Page 29: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/29.jpg)
UIKit
UIKit fornisce gli oggetti necessari per:
•eseguire applicazioni grafiche
•MVC: visualizzare i contenuti sul video
•MVC: gestire le azioni dell’utente
![Page 30: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/30.jpg)
UIKit: UIWindow
[esempio MainWindow]
![Page 31: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/31.jpg)
UIKit: UIView
[esempio UserCatalogViewController]
![Page 32: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/32.jpg)
UIKit: UIViewController
![Page 33: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/33.jpg)
UIKit: UIViewController
Due responsabilità:
![Page 34: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/34.jpg)
UIKit: UIViewController
Due responsabilità:•visualizzare il modello sulla vista
![Page 35: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/35.jpg)
UIKit: UIViewController
Due responsabilità:•visualizzare il modello sulla vista•far evolvere il modello sulla base delle
azioni dell’utente
![Page 36: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/36.jpg)
UIKit: UIViewController
Due responsabilità:•visualizzare il modello sulla vista•far evolvere il modello sulla base delle
azioni dell’utente
[esempio TimeLineViewController con utilizzo di UITableView]
![Page 37: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/37.jpg)
UIKit: UINavigationController
[esempio MainWindow]
![Page 38: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/38.jpg)
CoreData
Offre la gestione del ciclo di vita di oggetti persistenti.
La persistenza può essere su file Sqlite, xml e binari.
![Page 39: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/39.jpg)
CoreData: NSManagedObject
User
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
![Page 40: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/40.jpg)
CoreData: NSManagedObject
User
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Oggetti del modello persistenti
![Page 41: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/41.jpg)
CoreData: NSManagedObject
User
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Oggetti del modello persistenti
Insieme formano un grafo di entità e
relazioni
![Page 42: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/42.jpg)
NSManagedObjectContext
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
![Page 43: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/43.jpg)
NSManagedObjectContext
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Legge/scrive/rimuove gli oggetti dalla
persistenza
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
![Page 44: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/44.jpg)
NSManagedObjectContext
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Legge/scrive/rimuove gli oggetti dalla
persistenza
Con un context si agisce su sezioni degli
oggetti persistenti
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
![Page 45: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/45.jpg)
NSPersistentStoreCoordinator
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
![Page 46: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/46.jpg)
NSPersistentStoreCoordinator
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Presenta al context gli object store sottostanti
come un’unico store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
![Page 47: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/47.jpg)
NSPersistentStoreCoordinator
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Presenta al context gli object store sottostanti
come un’unico store
Un context può creare un grafo di oggetti
distribuiti su più data store.
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
![Page 48: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/48.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
![Page 49: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/49.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Mappa gli oggetti persistenti nel file
associato
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
![Page 50: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/50.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Mappa gli oggetti persistenti nel file
associato
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
![Page 51: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/51.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Mappa gli oggetti persistenti nel file
associato
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
![Page 52: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/52.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Mappa gli oggetti persistenti nel file
associato
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
![Page 53: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/53.jpg)
Data Store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Mappa gli oggetti persistenti nel file
associato
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
Data Store
Bin
![Page 54: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/54.jpg)
Document
NSPeristentDocument
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
Data Store
Bin
![Page 55: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/55.jpg)
Document
NSPeristentDocument
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
È possibile configurare il persistent stack da
codice.
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
Data Store
Bin
![Page 56: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/56.jpg)
Document
NSPeristentDocument
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
È possibile configurare il persistent stack da
codice.
Per applicazioni document-based
NSPeristentDocument
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
Data Store
Bin
![Page 57: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/57.jpg)
Document
NSPeristentDocument
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
È possibile configurare il persistent stack da
codice.
Per applicazioni document-based
NSPeristentDocument
mapping one-to-one document-data store
ContextUser
TimeLine
homeTimeline
timeLine
Statusn
loadedStatus
Status 1
Coordinator
Data Store
Sqlite
Data Store
Sqlite
Data Store
XML
Data Store
Bin
![Page 58: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/58.jpg)
Domanda
![Page 59: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/59.jpg)
Domanda
Ok, ma come indico a CoreData quali sono gli oggetti da rendere
persistenti?
![Page 60: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/60.jpg)
Domanda
Ok, ma come indico a CoreData quali sono gli oggetti da rendere
persistenti?
NSManagedObjectModel
![Page 61: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/61.jpg)
Domanda
Ok, ma come indico a CoreData quali sono gli oggetti da rendere
persistenti?
NSManagedObjectModel
Rappresenta il modello degli oggetti persistenti
![Page 62: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/62.jpg)
Opzione 1: Editor Grafico
![Page 63: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/63.jpg)
Opzione 1: Editor Grafico
No,
Than
ks
![Page 64: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/64.jpg)
Opzione 2: Da codice
![Page 65: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/65.jpg)
Opzione 2: Da codice
Ok!
![Page 66: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/66.jpg)
Opzione 2: Da codice
Ok!
[esempio PersistenceStack]
![Page 67: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/67.jpg)
Conclusioni: Principi
![Page 68: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/68.jpg)
Conclusioni: Principi
È fondamentale curare il design:
![Page 69: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/69.jpg)
Conclusioni: Principi
È fondamentale curare il design:•No alle duplicazioni
![Page 70: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/70.jpg)
Conclusioni: Principi
È fondamentale curare il design:•No alle duplicazioni•Alta coesione e basso accoppiamento
degli oggetti
![Page 71: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/71.jpg)
Conclusioni: Principi
È fondamentale curare il design:•No alle duplicazioni•Alta coesione e basso accoppiamento
degli oggetti
La flessibilità di Objective-c aiuta
![Page 72: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/72.jpg)
Conclusioni: In pratica
![Page 73: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/73.jpg)
Conclusioni: In pratica
Nello specifico dell’iPhone SDK:
![Page 74: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/74.jpg)
Conclusioni: In pratica
Nello specifico dell’iPhone SDK:
Costruzione delle relazioni del MVC nel codice
![Page 75: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/75.jpg)
Conclusioni: In pratica
Nello specifico dell’iPhone SDK:
Costruzione delle relazioni del MVC nel codice
Costruzione del persistence stack nel codice
![Page 76: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/76.jpg)
![Page 77: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/77.jpg)
Domande?
![Page 78: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/78.jpg)
Presentazione
![Page 79: Applicazione iPhone con utilizzo di CoreData e UIKit](https://reader034.fdocument.pub/reader034/viewer/2022050613/54bb6d574a7959ee3c8b473e/html5/thumbnails/79.jpg)
Presentazione