Ich will aber...iOS lernen

frauenPower

frauenPower

Aktives Mitglied
Thread Starter
Dabei seit
21.06.2011
Beiträge
287
Reaktionspunkte
75
So, Ferienzeit und ich bin ja dabei, mich in die iOS-Programmierung ein wenig einzuarbeiten. Aufgrund des Delegate-Threads und einiger sehr kluger Fragen auch in meine Richtung führe ich in diesem Thread eine Art Selbstgespräch, an dem sich jeder beteiligen darf. Ihr seid herzlich eingeladen.

Ich war heute morgen in der Stadtbibliothek in Frankfurt und habe mir einen großen Vorrat an Büchern zu den Themen "iOS", "Programmierung von Mac- und iOS-Anwendungen" sowie häufig genannte Bücher geholt. Einige besitze ich auch.
Ich werde jeden Tag, verteilt, 4 Wochen lang, 7 Stunden mit Büchern, Videoschulungen und Xcode arbeiten und versuchen, meine Lese- und Lernerfahrungen in Form einer Lernstruktur zu vermitteln. Ich bin von Beruf Grundschullehrerin und möchte am Schluss meinen Kids zum neuen Schuljahr mal meine eigene kleine Anwendung vorstellen. Ausdrücklich: Es geht hier nicht um Code, Programmlösungen etc.!

Hintergrund
Für mich als Newbie in der iOS-Programmierung stellt sich die ganze Geschichte als ein großes Durcheinander dar, dass für mich zu Anfang keine Ordnung hat. Die bis dato vorliegenden Bücher und auch Onlineerklärungen, Tutorials, Videos etc. fangen mit "Hello World" an und in Ermangelung eines besseren Konzeptes (eigentlich haben die meisten keins) wurschtelt man/frau sich dann halt durch und irgendwann wird es dann hoffentlich "Klick" machen.

Mein Ziel
Ermittlung der Kern-Lernziele und Verweise auf Lösungen in Form von Buchempfehlungen, Links, eigene Erklärungen etc.

Noch einmal: Es geht mir hier nur um die Kernlernziele, damit der Newbie, der ich ja auch noch bin, eine Lernstruktur erkennen kann und einen Start zu den Themen findet. Natürlich ist alles wichtig, aber eben nicht gleichgewichtig und wenn sich das scheinbare Durcheinander lichtet, findet sich vielleicht auch die eine oder andere geschicktere Vorgehensweise.

Liebe Grüße Karin, Teil 2 kommt sogleich!
 
  • Gefällt mir
Reaktionen: tocotronaut, Gerhold, The Seer und 4 andere
2. Teil

Karins Lernstruktur zur iOS-Programmierung

1. Stufe Kennenlernen


1.1. Start Cocoa und Xcode
Hier kann ich nur das Buch "Mac-Programmierung für Kids" empfehlen. Das Buch bietet dem Anfänger ohne irgendwelche Kenntnisse einen sehr guten Einstieg in die Programmierung auf einem Mac und man kann sehr preiswert feststellen, ob man diesem Weg weiter verfolgen möchte oder nicht. Erste gute und durchaus auch praxistaugliche Programme für den Mac gibt es dabei auch.

- Empfehlung - : Holger Hinzberg: Mac-Programmierung für Kids. ISBN-13: 978-3826686641. 24,95 Euro
Dauer: 5 bis 6 Wochen bei 2 bis 3 Stunden täglich Arbeitsaufwand. Davon entfallen am Anfang einige Stunden im Umdenken auf das neue SDK. Es gibt scheinbar derzeit noch keine Bücher, die auf dem neuen SDK basieren.

- Empfehlung - : Xcode 4 Transition Guide. PDF speichern und ausdrucken: http://developer.apple.com/library/...ransitionGuide/Introduction/Introduction.html]

Konventionen beim Programmieren:
- Empfehlung -: http://developer.apple.com/library/...eptual/CodingGuidelines/CodingGuidelines.html
Richtlinien von Apple.


1.2. Arbeiten mit Xcode
Bezüglich Xcode 4 ist natürlich die Apple-Dokumentation von zentraler Bedeutung:
Xcode 4 Transition Guide. PDF speichern und ausdrucken:
- Empfehlung - : http://developer.apple.com/library/...ransitionGuide/Introduction/Introduction.html


1.2.1. Weitere Erklärungen und Unterschiede zu Xcode 3.x
Xcode von NULL auf Hundert: Folge #065: Hello World in Xcode 4. Video 13:52 Minuten.
- Empfehlung - Ein HelloWorld-Projekt am Beispiel von Xcode 4.

Xcode von NULL auf Hundert: Folge #065: Xcode4 GM. Video 52:30 Minuten.
- Empfehlung - : Sehr geschwätzig, aber es werden sehr gut die Neuerungen aufgezeigt.


2. Stufe "Objective-C"
Ohne die Sprache geht es überhaupt nicht und nachdem man in Stufe 1 schon ziemlich viel dazu kennengelernt hat, dabei Beispiele programmieren und auch schon die eigene kleine Anwendung programmiert hat, muss man an dieser Stelle "Theorie" büffeln und kann diese nun problemlos ausprobieren. Man weiß ja bereits ganz gut, wie man Xcode einsetzt, den Debugger kann man auch rudimentär nutzen und man muss keine Zeit mehr aufwenden, um auch noch Xcode bedienen zu lernen.


2.1. Sprachelemente
Guter Einstieg mit Negm-Awad und Kochan, siehe 2.2. möglich.


2.2. Klassen und Klassenobjekte, Methoden: Zentraler Bestandteil.
- Empfehlung - : Amin Negm-Awad: Objective-C und Cocoa. Band 1: Grundlagen. 49,95 Euro. Seite 20 – 29
Gute, verständliche Erklärung.

- Empfehlung - : Stephen G. Kochan: Objective-C 2.0. Anwendungen entwickeln für Mac und iPhone. ISBN 978-3-8273-3053-6. Seite 47 + 50
Guter Spagat zwischen einfacher Erklärung und Beispielcode.

Mein Tipp: Die beiden genannten Bücher quasi parallel abarbeiten.
Start mit Kochan, er erklärt verständlicher und unmittelbar mit Negm-Awad folgen, er erklärt an der Praxis detaillierter, plaudert aber auch gerne mal übers Ziel hinaus und überfordert mit seinem profunden Wissen an der Stelle den Newbie mit erst einmal nicht relevanten Informationen. Durch Kochan weiß man aber, was einem erwartet und kann dann die Feinheit bei Negm-Awad goutieren.



2.3. Objektorientierung
Sehr guter Ansatz:
- Empfehlung - : Objective-C 2.0 – Von den Grundlagen bis zur professionellen Entwicklung. – 8 Stunden Videotraining. Addison-Wesley. 44,49 Euro.
2.2. Einstieg in die objektorientierte Programmierung und dort: 2.2.1. Einführung in die objektorientierte Programmierung und das Klassen-Konzept.

- Empfehlung - : S. Meyer, T. Wichers: Objective-C 2.0. Programmierung für Max OS X und iPhone. ISBN 978-3-8266-9132-4. 2. Auflage 2011. 39.39 Euro. Ab Seite 35: "Objekte und Klassen".

"Kurze Einführung in die objektorientierte Programmierung" erstreckt sich über knapp 20 Seiten und ist einfach nur grandios in der Verständlichkeit. Der Rest des altersschwachen Werks ist Mittelmaß.
- Empfehlung - : Klaus M. Rodewig: Objective-C und Cocoa. Programmieren unter Mac OS X. ISBN 3-908497-20-5. 39,95 Euro. Ab Seite: 92.




3. Stufe "iOS"
Da bedarf es dringend der Strukturierung, die bis dato noch nicht ausreichend klar ersichtlich wurde.
Ein erster Versuch einen Teil der Kernbereiche zu ermitteln:


3.1. MVC Model View Controller
Zentrales Software-Pattern.

Gute erste Einführung mit einigem an doch recht schwer für den Newbie zu verstehenden Informationen:
- Empfehlung - : Buck, Yacktman: Cocoa Design Patterns für Mac und iPhone. ISBN 978-3-8266-5054-3. 39,95 Euro. Seiten 29 – 44 und 51 + 56.

Kurz und knapp und trotzdem sehr gut verständlich ist diese Erklärung "Model View Controller" von cocoalab.com:



3.2. Speicherverwaltung
Diese wird bei iOS wohl manuell vom Programmierer verwaltet und somit handelt es sich hierbei um ein zentrales Thema, welches nach einem ersten Kennenlernen der iOS-Programmierung sofort angegangen werden sollte.

Allgemein gehaltener Vortrag über Speicher unter Cocoa aber durchaus nützlich für die iOS-Programmierung "Macoon-Vortrag":
- Empfehlung - : http://macoun.de/?page_id=533
Besonders der Block "Reference Counting" ab 27:50 sollte angesehen werden.


3.2.1. Formale Logik
Warum und für welche Objekte ist man eigentlich verantwortlich?
- Empfehlung - : Dr. Dirk Koller. iPhone-Apps entwickeln. ISBN 978-3-645-600001-9. 30 Euro. Seite 63 – Seite 69.
Gute, verständliche Einführung, die hilft, zu verstehen worum es bei Memory-Management geht.

Wirr aber wer es mag findet manch nützliche Informationen hier. Besonders die Property-Erklärung ist sehr gut:
- Empfehlung - : Dan und Tracey Pilone: Head First iPhone Development. ISBN: 978-0-596-80354-4. 31,95 Euro. Seiten 96 – 105


3.2.2. Praxis und weitere Informationen
Gute Einführung mit Beispielen und einer informativen Grafik findet sich in der Wiki des OSX-Entwicklerforums:


"Retain", "Release" und "Autorelease": Schöne und sehr gut nachvollziehbare Erklärung von den Machern "Xcode von NULL auf Hundert":
- Empfehlung - : http://www.x02100.de/blog/Retain_Release_und_Autorelease.html?categories=grundlagen

Properties" und das Variablenhandling erledigen die Propertymethoden:
- Empfehlung - : http://www.x02100.de/f.html?categories=grundlagen

Die wohl verständlichste Beschreibung zu Properties findet sich hier:
-Empfehlung-: Markus Stäuble: Programmieren fürs iPhone. Seite 243 – 247.



3.2.3. Regeln
Was fordert Apple?
Memory Management Programming Guide – Performance. PDF speichern und ausdrucken.
- Empfehlung - : http://developer.apple.com/library/...onceptual/MemoryMgmt/Articles/MemoryMgmt.html

Umfassende, gut verständliche und kostenfreie Einführung: Franz Bruckhoff. Speichermanagement in iOS:
- Empfehlung - : http://www.blogging-it.com/wp-content/uploads/2011/04/eBook-Speichermanagement-in-iOS.pdf


3.3. Views, Viewhierarchie
So wie ich das mitbekommen habe, Kernelement einer jeden iOS-Programmierung. Konzept, Aufbau und Verwaltung wären hier meine Stichworte.


3.3.1. Formaler Verständnisaufbau
Die Benutzerschnittstelle einer Anwendung ist von zentraler Bedeutung und was ist nun Window, View oder gar die Wurzel des ganzen?
- Empfehlung - : Holger Frank: iPhone 4 - & iPad-Programmierung. ISBN 978-3-8158-3034-5. Seiten 172 – 176.

View Controller Programming Guide for iOS.
- Empfehlung - :
Speichern und drucken!


3.3.2. UIView


3.3.3. UIWindow


3.3.4. UIViewController


3.3.5. UINavigationController, UITabBarController, Tabellencontroller etc.
Informationen von Apple zum Thema "TableView" finden sich im "Table View Programming Guide for iOS":
- Empfehlung - : http://developer.apple.com/library/...leViewAndDataModel/TableViewAndDataModel.html


3.4. Interfacebuilder
Formales Verständnis. Wofür, Aufbau und Nutzung.
Xcode 4 Transition Guide. PDF speichern und ausdrucken:
- Empfehlung - : http://developer.apple.com/library/...ransitionGuide/Introduction/Introduction.html


3.5 Steuerelemente
Wie werden Sie eingebunden, Actions und Outlets.


3.5.1. Die Klasse UIControl


3.5.2. Steuerelemente im IB; Steuerelemente programmatisch erzeugen
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: papalapapp, Gwadro, Brutto und 32 andere
Wow, Dein Vorhaben klingt sehr interessant, vielleicht motiviert mich das auch, mich wieder intensiver mit Objective-C zu beschäftigen. Danke!

Kannst Du nicht nach Hamburg ziehen, hier täten Lehrer wie Du ganz gut, mir scheinst ein wenig frischen Wind in den Unterricht zu bringen, wenn ich mal so den Unterricht ansehe, den mein kleiner Sohn gerade hat. Immerhin bekommen die nach den Sommerferien Smartboards und die Lehrer eine entsprechende Schulung, ich hoffe nur, dass die das dann auch anwenden.

Weiter so. :thumbsup:
 
3. Teil


Bis dato unverzichtbare Literatur:


Online- und Videokurse



Diese Liste wird von mir stetig ergänzt und erweitert und Rückmeldungen sind gerne willkommen.
 
Zuletzt bearbeitet:
Ich kann nur Xcode von null auf 100 empfehlen, findest du hier: Einfach von Folge 1 an hocharbeiten, wichtig ist dass du es auch gleich mitprogrammierst. Für Xcode 4 ist die letzte Folge (65) eine gute Einführung. Ich bin selbst ca. bei Folge 36. Das wichtigste: Nutze die Doku in Xcode. Sonst erscheint es dir unerklärlich wie die auf die ganzen Methoden kommen. Das steht aber in der Doku drinnen.
Das Thema ist zwar hart, aber zu schaffen. Ich habe selbst in GTK und Qt programmiert, das war zwar einfacher, ich finde aber das man mit Cocoa weit schneller und komfortabler unterwegs ist, vor allem weil Xcode sehr viel hilft, in dem es beim schreiben schon die richtigen Methoden und Parameter hinschreibt.
 
  • Gefällt mir
Reaktionen: frauenPower
Danke Gondomir. Habe ich mir auch schon angesehen und bin aber derzeit nicht in der Lage aus all dem dort Gebotenen ein vernünftiges Exzerpt zu ziehen. Ich weiß zwar wie etwas gemacht wird, und das ist mit Sicherheit wichtig, aber eben nicht warum und welche Struktur der Sache zugrunde liegt.

Ich bin bis dato zwei Ansätzen "Stufe 1" vollständig und "Stufe 2" teilweise gefolgt und bewege mich seit wenigen Tagen in "Stufe 3" ohne "Stufe 2" zu vernachlässigen aber zielführend in Hinsicht auf ein strukturelles Verständnis ist es bis dato nicht gewesen.
Deshalb ist es für mich wichtig, und das verfolge ich mal hier öffentlich, Struktur reinzubekommen und eben die elementaren Themen sehen zu können.

Beispiel: Irgendwann, wenn es sich halt nicht weiter vermeiden lässt, kommt notgedrungen das Thema "Speicherverwaltung". Neben all dem Gewusel, was ein Newbie sowieso schon hört, wird doch nur sehr rudimentär in der Literatur auf die wahrlich zentrale Bedeutung dieses Themas hingewiesen. Nein, man ist nicht ab einem gewissen Punkt bei diesem Thema sondern sollte es gleich zu Beginn vermittelt bekommen.

Folge 65 schaue ich mir heute Abend an. Alleine das Anlegen von Actions und Outlets aus den ersten Folgen funktioniert nun etwas anders und auch die Erklärung reicht mir nicht. Bei "delegates" Folge 11 habe ich es nun gar nicht mehr geblickt und mir mit viel Arbeit eine hoffentlich schlüssige Erklärung erarbeitet, die in einem anderen Thread von mir verfolgt wurde.

Also, Daaanke für den Tipp und die Folge wird heute noch angesehen.

Liebe Grüße
Karin
 
Update für den 2. Post:
3.2.1. Formale Logik hinsichtlich der Speicherverwaltung.
Gut verständlich und ein Anfang. Allerdings nicht sehr detailliert.

Liebe Grüße
Karin

MVC wurde ebenfalls eingebaut.
 
Zuletzt bearbeitet:
3.3.1 ist hinzugekommen und damit bin ich jetzt erst einmal weiter beschäftigt.

Liebe Grüße
Karin
 
Godomirs Vorschlag ist in Post 2 eingebaut worden. 1.2. und 1.2.1. Auch Folge 064 lohnt sich, wenn man die Geschwätzigkeit ein wenig außer acht lässt.

Liebe Grüße
Karin
 
So, einen habe ich auch noch, ein Buch aus der "von Kopf bis" ganz neu zur iPhone Entwicklung, daher noch auf Englisch. Ich habe es mir mal gekauft und lese mal, gibt's auch als PDF. ;)
hier ein Beispiel.
 
  • Gefällt mir
Reaktionen: frauenPower
Hi pdr2002,

Danke für den Tipp. Liegt mir auch vor und unter 3.2.1. wurde auch ein für mich sehr nützliches Kapitel explizit erwähnt.
Als generelle Empfehlung sehe ich das Buch aber nicht, da es in der Tat stellenweise mehr verwirrt als nützt.

Liebe Grüße
Karin
 
Als generelle Empfehlung sehe ich das Buch aber nicht, da es in der Tat stellenweise mehr verwirrt als nützt.

Ups, habe ich glatt überlesen, sorry.

Hast Du das schon? Die 1. Auflage ist vergriffen in der 2. Auflage wird übrigens auch auf Xcode 4 eingegangen.

Wie gesagt, habe die Bücher bisher nicht als verwirrend empfunden, wenn man sich erst einmal an die andere herangehensweise gewöhnt hat. Habe es auf mein iPad geladen, werde ich dann mal loslegen :)

Grüße
Peter
 
Hi Peter,

nein in der Bücherei gab es nur die alte Version und eine neue Version mit "iPad"(?) steht bei Amazon noch auf "kommt demnächst".

PDF-Version??? Wo gibt es die?

Liebe Grüße
Karin
 
Die Speicherverwaltung ist nicht so kompliziert. Wenn du ein neues Objekt erzeugst belegt es Speicher. Brauchst du es nimmer gibst den Speicher frei. Soll dich nicht weiter verwirren, wenn du den Speicher nicht frei gibst ist es auch egal, die paar hundert KB merkt keiner. Sobald das Programm beendet ist wird eh alles freigegeben.
Bei einem großen Projekt wird es natürlich wichtig. Deswegen soll man sich dran gewöhnen. Ist nichts anders als wenn du in C ein malloc machst, du den Speicher eigentlich mit free später freigeben solltest.
Oder du schaltest die Garbage collection ein, dann brauchst du keine Speicherverwaltung mehr machen.

Bei den delegates braucht man nur wissen welche es gibt, das steht in der Xcode Doku bei jeder Klasse dabei. Wenn du meinst du brauchst ein delegate, dann schreib es einfach hin, so wie es in der Doku steht. Dann baust du dort die Funktionalität ein, die du brauchst, und gut isses.
 
Die Speicherverwaltung ist nicht so kompliziert. Wenn du ein neues Objekt erzeugst belegt es Speicher. Brauchst du es nimmer gibst den Speicher frei. Soll dich nicht weiter verwirren, wenn du den Speicher nicht frei gibst ist es auch egal, die paar hundert KB merkt keiner. Sobald das Programm beendet ist wird eh alles freigegeben.
Bei einem großen Projekt wird es natürlich wichtig. Deswegen soll man sich dran gewöhnen. Ist nichts anders als wenn du in C ein malloc machst, du den Speicher eigentlich mit free später freigeben solltest.
Oder du schaltest die Garbage collection ein, dann brauchst du keine Speicherverwaltung mehr machen.
Die Garbage Collection gibt es aber bei iOS nicht, da muss man es noch (?) manuell machen. ;)
 
  • Gefällt mir
Reaktionen: frauenPower
Nee, nee: Speicherverwaltung gehört dazu und wenn ich es heute Abend noch schaffe, gehe ich da noch einmal ran. Vielleicht schreibe ich auch ein kleines Exzerpt und füge es zur Diskussion bei. Ansonsten sichte ich weiterhin Literatur und wollte auch noch einige Zeilen Code schreiben.
So langsam sehe ich Licht am Ende des Tunnels.

Liebe Grüße
Karin
 
@Peter

Sehr verlockend die O'Reilly-Geschichte.
Da ich nicht in den Urlaub fahre habe ich mir dann doch das iOS 4 Programming Cookbook geordert.
"Constructing and Using Table Views" wird ausprobiert. Das Kapitel hat es mir erst einmal angetan.

Heute Abend gibt es auch noch ein Update der Literatur- und Linkliste.

Liebe Grüße
Karin (bin ich infiziert :Waveyib: )
 
@Peter

Sehr verlockend die O'Reilly-Geschichte.
Da ich nicht in den Urlaub fahre habe ich mir dann doch das iOS 4 Programming Cookbook geordert.
"Constructing and Using Table Views" wird ausprobiert. Das Kapitel hat es mir erst einmal angetan.

Heute Abend gibt es auch noch ein Update der Literatur- und Linkliste.

Liebe Grüße
Karin (bin ich infiziert :Waveyib: )

Verflixt und es ist ansteckend. :D
 
Die Garbage Collection gibt es aber bei iOS nicht, da muss man es noch (?) manuell machen. ;)
Stimmt, hab erst gestern davon gesprochen. Aber sobald alle IOS Geräte einen Quadcore haben kann doch einer die GC machen, dann wird es sicher eingebaut werden. :D
 
Zurück
Oben Unten