Einführung in Cocoa Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Do, Uhr, Archäologie-Pool Referent: Nelson Marambio
Framework vs. Klassenbibliothek Klassenbibliothek (z.B. Java): ausformulierte Attribute Einführung in Cocoa2
Framework vs. Klassenbibliothek Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung Einführung in Cocoa3
Framework vs. Klassenbibliothek Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung Framework: Bibliothek + Grundgerüst für grafische Anwendung Einführung in Cocoa4
Framework vs. Klassenbibliothek Klassenbibliothek (z.B. Java): ausformulierte Attribute Werkzeuge zu verschiedenen Bereichen, keine Spezialisierung Framework: Bibliothek + Grundgerüst für grafische Anwendung (Dummy) Auswahl je nach Kontext, dabei implizite Bedarfsformulierung notwendig Einführung in Cocoa5
Framework Dummy: enthält tote GUI Einführung in Cocoa6
Framework Dummy: enthält tote GUI Klassenbibliothek konkret implementiert Einführung in Cocoa7
Framework Dummy: enthält tote GUI Klassenbibliothek konkret implementiert Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen Einführung in Cocoa8
Framework Dummy: enthält tote GUI Klassenbibliothek konkret implementiert Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen Framework setzt Benutzer [sinnvolle] Grenzen Einführung in Cocoa9
Framework Dummy: enthält tote GUI Klassenbibliothek konkret implementiert Benutzer programmiert nicht völlig neu, sondern überschreibt gesetzte Standardwerte /-routinen Framework setzt Benutzer [sinnvolle] Grenzen Was das Framework nicht vorsieht, kann der Benutzer nicht implementieren Einführung in Cocoa10
Cocoa: Historie Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) Einführung in Cocoa11
Cocoa: Historie Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) Später: NeXTStep Grundlage für MacOS X Einführung in Cocoa12
Cocoa: Historie Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) Später: NeXTStep Grundlage für MacOS X [daher Präfix NS bei Datentypen / Klassen] Einführung in Cocoa13
Cocoa: Historie Basiert auf Betriebsystem NeXTStep (Produkt der Firma NeXT, Gründer: Steve Jobs) Später: NeXTStep Grundlage für MacOS X [daher Präfix NS bei Datentypen / Klassen] Konsequente Objektorientierung Einführung in Cocoa14
Cocoa: Allgemein MVC Einführung in Cocoa15
Cocoa: Allgemein MVC = Modell-View-Controller Einführung in Cocoa16
Cocoa: Allgemein MVC = Modell-View-Controller Modell: konkrete Nutzdaten innerhalb der Anwendung Einführung in Cocoa17
Cocoa: Allgemein MVC = Modell-View-Controller Modell: konkrete Nutzdaten innerhalb der Anwendung View: grafische Elemente zur Visualisierung des Modell Einführung in Cocoa18
Cocoa: Allgemein MVC = Modell-View-Controller Modell: konkrete Nutzdaten innerhalb der Anwendung View: grafische Elemente zur Visualisierung des Modell Controller: ermöglicht Kommunikation zw. Modell und View eigentliche Anwendungs-Logik Einführung in Cocoa19
Architektur Zentrales Objekt NSApplication Einführung in Cocoa20
Architektur Zentrales Objekt NSApplication Mutterschiff ? Einführung in Cocoa21
Architektur Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! Einführung in Cocoa22
Architektur Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! leitet Nachrichten / Ereignisse an zuständige Klassen weiter Einführung in Cocoa23
Architektur Zentrales Objekt NSApplication Mutterschiff ? Telefonvermittlung ! leitet Nachrichten / Ereignisse an zuständige Klassen weiter Prinzip: Delegates, Klassen stehen parallel zu NSApplication, keine Ableitung Einführung in Cocoa24
Protokolle Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen Einführung in Cocoa25
Protokolle Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen Formelles Protokoll: Klasse muss Methode x implementieren (obligatorisch) Einführung in Cocoa26
Protokolle Protokoll: Menge von Methoden, die der Interaktion von Objektion dienen Formelles Protokoll: Klasse muss Methode x implementieren (obligatorisch) Informelles Protokoll: Klasse kann Methode x implementieren (optional), häufiger benutzt Einführung in Cocoa27
Protokolle II Informelles Protokoll wird über eine Kategorie umgesetzt Einführung in Cocoa28
Protokolle II Informelles Protokoll wird über eine Kategorie umgesetzt Vorhandene Klasse wird nicht abgeleitet, sondern erweitert (vgl. Delegates) Einführung in Cocoa29
Observer Observer: schwächere Form der Delegates Einführung in Cocoa30
Observer Observer: schwächere Form der Delegates Eher informativer Charakter Einführung in Cocoa31
Observer Observer: schwächere Form der Delegates Eher informativer Charakter Objekt_1 bespitzelt andere Objekt_2 Einführung in Cocoa32
Observer Observer: schwächere Form der Delegates Eher informativer Charakter Objekt_1 bespitzelt andere Objekt_2 Objekt_2 weiß nichts von Beobachtung Einführung in Cocoa33
Observer Observer: schwächere Form der Delegates Eher informativer Charakter Objekt_1 bespitzelt andere Objekt_2 Objekt_2 weiß nichts von Beobachtung Objekt_1 muss sich beim NotificationCenter für die Beobachtung von Objekt_2 registrieren Einführung in Cocoa34
Observer Observer: schwächere Form der Delegates Eher informativer Charakter Objekt_1 bespitzelt andere Objekt_2 Objekt_2 weiß nichts von Beobachtung Objekt_1 muss sich beim NotificationCenter für die Beobachtung von Objekt_2 registrieren Einführung in Cocoa35
Target-Action Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller Einführung in Cocoa36
Target-Action Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller Einziges Argument: Referenz auf Sender der Nachricht Einführung in Cocoa37
Target-Action Verbindung von [mitteilender] Methode eines Objekts an einen reagierenden Controller Einziges Argument: Referenz auf Sender der Nachricht Einführung in Cocoa38
Programmieren ???? Einführung in Cocoa39
Programmieren !!! Objective-C !!! Einführung in Cocoa40
Literatur K. Surendorf, M. Hardt: Einstieg in Objective-C 2.0 und COCOA Artikel Framework, work Einführung in Cocoa41