Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Tutorials bzw. Buch für iPhone Programmierung?

Tutorials bzw. Buch für iPhone Programmierung?

Stefab
Stefab03.07.0918:55
Hallo!

Das ganze mit Obj-C und Cocoa geht ja jetzt schon einigermaßen, ist zum Glück nicht all zu schwierig. Aber am iPhone sieht das ganze schon wieder anders aus …

Dafür würde ich jetzt schon zu einem Buch greifen, bzw. bis es soweit ist auch gerne von Quellen aus dem Internet lernen. Das "Hello World" Tutorial von Apple hab ich mal durch und das ist auch noch einigermaßen verständlich.

Nur weiß ich jetzt nicht so recht, wo ich weitermachen soll. Da ein mehrzeiliges TextField anscheinend nur über ziemlich komplizierte Umwege machbar zu sein scheint (wie zB. im SMS-Programm von Apple), will ich mal ein UITextView verwenden. Oben soll die Leiste rein, mit einem Done-Button, der erscheint, wenn man die Tastatur öffnet.
Soll ähnlich aussehen, wie das TextView-Beispiel im "UICatalog"-Example: - nur mit noch 1 oder 2 Buttons unter dem TextView. Leider wird in dem Beispiel praktisch das GUI im Code erzeugt, ich will aber lieber so viel, wie möglich im IB machen. Auch denke ich, dass TextView sollte auf weißem Hintergrund sein, und die Buttons unten auf einem anderen (welcher, weiß ich noch nicht so genau), so dass man das Ende erkennt. Da frag ich mich, was ich als Hintergrund für das TextView nehmen soll. Ein UIView, ein TableViewCell oder was? Und wenn ich da was reinmache, brauche ich wohl hoffentlich nicht wieder einen eigenen Controller dafür. Das TextView (evt. mit darunter liegendem View) soll sich in der Höhe anpassen, wenn die Tastatur ein bzw. ausgefahren wird (was wohl das kleinste Problem ist), während die Tasten unten bleiben sollen.

Auch verstehe ich nicht wirklich, wie man mit dem TableView umgeht (zumindest im grouped-style erschließt sich mir nicht ganz, was das genau kann und wie es funktioniert), wozu im Interface-Builder Dinge wie View Controller, Navigation Controller und solche Sachen zu finden sind, bzw. was die genau bringen. Die Controller sind doch normalerweise Klassen und im Falle des iPhones offenbar immer File's Owner.

Auch dachte ich darüber nach, evt. eine Utiltiy-Application zu erstellen, wo ich im Flipside-View Infos und Einstellungen anzeigen lassen kann. Dann habe ich aber das Problem, dass im MainViewController.h steht:

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate>

Ich brauche aber <UITextViewDelegate>, um auf User-Inputs im TextView mit den entsprechenden Delegate-Methoden zu reagieren. Kann man da irgendwie beide Delegates in einen Controller reinholen oder müsste ich dann einen extra Controller für das TextView machen? (ist erstmals zweitrangig, für den Anfang reicht es ohne Einstellungen, da ich mich mit Dateien lesen/schreiben noch nicht befasst habe - und Einstellungen müssen schließlich gespeichert werden)

Irgendwie ist das ganze im Vergleich zum Programmieren für Mac doch recht anders. Jeweils eigene nib-Files zu verwenden spart wohl Speicher. Der Aufbau unterliegt einem festen Muster mit mehr Code (muss zB. das View im AppDelegate initialisieren), man hat immer nur den File's Owner als Controller (evt. da auch immer nur einen Delegate-Typ?!) und die GUI-Elemente im IB sind auch nicht gerade zahlreich, um ein ansprechendes GUI zu gestalten muss man so einiges selbst basteln und coden, leider.
Irgendwie erscheint mir das ganze noch etwas unausgereift (obwohl schon SDK 3.0), auch die Delegate-Methoden für das TextView konnte ich in der Dokumentation erst gar nicht finden, sondern erst in der entsprechenden Header-Datei. Aber gut, damit muss man leben, bei Spielen wird das ganze wohl eh etwas einfacher (bzw. gewohnter), da man sich nicht mit der ziemlich komplizierten GUI-Gestaltung rumschlagen muss. Auch frage ich mich, wie und ob man im IB die Umschaltung zwischen Portrait und Landscape-Modus handhaben kann. Jetzt, wo so ziemlich überall ein Landscape-Keyboard drin ist, würde ich das auch gerne hineinbringen. (wenn nicht zu kompliziert)

Naja, jedenfalls, da da eben so einiges für mich ziemlich verwirrend ist, suche ich nach weitergehenden Infos/Tutorials/was auch immer, das über das "Hello World"-Beispiel hinausgeht und in etwa da anschließt, wo dieses aufhört, bzw. kann es sich auch überschneiden. Nur sollte kein zu großer Abstand dazwischen sein. Mein erstes Programm wird sehr einfach, und für Mac wäre das wohl schon seit einiger Zeit fertig. (mit RB hab ichs mal zum Spaß in ca. 15 Minuten gebastelt)

Ein Buch wäre auf längere Sicht natürlich fein, würde aber auch gerne möglichst schnell weiterkommen (Wochenende), und bis man so ein Buch bekommt und da durch ist, dauert nun mal seine Zeit. Also fürs erste wäre etwas im Web ideal.

Besten Dank für alle Tipps schon mal im Voraus!
0

Kommentare

bmc desgin03.07.0922:29
Also wenn du dich einfach mal im developer-Portal von Apple umschaust, oder die Dokumentation in Xcode benutzt, wirst du alles finden, was du suchst/benötigst...

Auch werden hier die einzelnen Klassen beschrieben...


Cheers
„Ask your questions...“
0
ExMacRabbitPro03.07.0923:20
Ja, so:

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate, UITextViewDelegate>

0
ExMacRabbitPro03.07.0923:23
P.S.

Die Dinger in den spitzen Klammern <...> sind auch keine "Delegates" sondern Protokolle.
So ganz geht Obj-C wohl doch noch nicht....
0
bmc desgin04.07.0901:24
Aber damit wird ein Object zum Delegate gemacht...
Hier nur noch die Delegates definieren und fertig...

Cheers
„Ask your questions...“
0
ExMacRabbitPro04.07.0902:09
bmc desgin
Aber damit wird ein Object zum Delegate gemacht...
Hier nur noch die Delegates definieren und fertig...

Cheers

Nö. Ein Protokoll schreibt lediglich eine bestimmte Schnittstelle vor. Wozu die dann verwendet wird, steht auf einem ganz anderen Blatt.
Zu einem "Delegate" wird so sicher nix gemacht. Ein Objekt wird zum Delegate eines anderen, wenn es bei dessen setDelegate: Message übergeben wird.
0
Stefab
Stefab09.07.0902:43
ExMacRabbitPro:

Danke für den Tipp! Habe es nur so:
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate>, <UITextViewDelegate>

probiert … und das ging natürlich nicht.

Klar, dass es nicht ganz so schnell geht mit Obj-C und allem drumherum. Ich meinte mehr, dass ich eher schon direkt aufs iPhone konzetrieren sollte, weil die Prorgrammierung für den Mac doch ziemlich anders ist. (jetzt nicht von der Sprache, aber dem drumherum, IB, GUI-Elemente, Controller dafür, usw.) Was mir an Obj-C, etc. noch fehlt, lerne ich da auch, und wenn ich jetzt viel am Mac mach, wundere ich mich wieder, warum am iPhone kaum etwas von dem gelernten dort auch so funktioniert … Hauptsächlich geht es mir um die GUI-Gestaltung, mit all den komischen (und wenigen) Dingen im IB, wie man das sinnvoll mit dem Code in Verbindung bringt, das ganze ordentlich gestaltet, usw.

Was ihr dann weiter unten redet, ist mir dann nicht mehr so klar, aber egal. Auf den Apple-Seiten finde ich viele Sample-Codes, aber irgendwie nicht so recht die Tutorials dazu. (oder eben andere Tutorials). Eben so ähnlich, wie das HelloWorld, nur eben ca. das es da ansetzt, wo dieses aufhört. Im letzten Kapitel, next steps oder so ähnlich finde ich auch keine weiteren.
Weiters wäre auch ein Buchtipp immer noch interessant.
0
dreyfus09.07.0905:29
Also am besten fand ich bis jetzt dieses: ... Es verwendet ausschliesslich die von Apple empfohlene Methode mit IB und ist sehr logisch aufgebaut. Alle Basics (Controls, Views, Rotation, TableView "nackt" und customized, u.v.m) werden erklärt und die Beispiele sind sehr umfangreich. Damit und den zahlreichen Obj-C Tutorials im Netz (bspw. ) soltest Du eigentlich schon sehr weit kommen.

Die Rotation kannst Du im IB nicht einstellen, nur für die einzelnen Controls festlegen, wie sie sich verhalten... Das die Anwendung rotiert, musst Du in der Quelldatei des ViewControllers festlegen. Dazu einfach die "shouldAutorotateToInterfaceOrientation" Methode abändern in bspw.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait ||
         interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
         interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

Dann sollte es mächtig rotieren...
0
Stefab
Stefab11.07.0919:41
dreyfus: Klingt gut und ist auch mal nicht so teuer. Auch praktisch, weil es ein Taschenbuch ist. Möchte mich mit meinem geplanten 13" MacBook Pro bei Schönwetter in den Wald setzten und dort coden.

Gibt es da noch viele Alternativen oder eine deutsche Übersetzung? Wenn nicht, werd ichs wohl gleich bestellen.
0
dreyfus11.07.0920:00
Stefab
Gibt es da noch viele Alternativen oder eine deutsche Übersetzung? Wenn nicht, werd ichs wohl gleich bestellen.

Dt. Übersetzung gibt es wohl nicht, liest sich aber eigentlich recht leicht. Das "Developers Cookbook" von Erica Sadun ist auch ganz prima, aber für Anfänger völlig ungeeignet. Es ist eher eine Tip-Sammlung ohne jeden didaktischen Aufbau, außerdem macht sie fast alles "per Hand" (ohne oder "mit wenig" Interface Builder). Das "iPhone SDK Application Development" von Zdziarski soll angeblich auch schon sehr gute Cocoa und Obj-C Kenntnisse voraussetzen, allerdings habe ich das nur gehört, die anderen beiden Bücher kenne ich selbst (ich hätte es eh nicht gekauft, da diese blöden O'Reilly Schinken immer schon beim zweiten Lesen auseinanderfallen).

0
Stefab
Stefab11.07.0921:26
dreyfus: Ich glaub ich nehm's …
0
Stefab
Stefab13.07.0912:08
Ist bestellt.

Hab mir noch anderes angesehen, aber ich denke das genannte bringts am meisten. Was ich natürlich auch gesehen habe ist "Programmieren fürs iPhone", aber da wird wohl gerade mal so an der Oberfläche gekratzt (hab mir die ersten Seiten via Amazon angesehen), das Beispiel mit dem Adressbuch wäre für mich zwar besonders interessant, aber dafür ein eigenes Buch zahlt sich nicht aus. Auch denke ich, nen Teil davon würde ich schon kennen, also brächte es nicht sehr viel neues.

Evt. einigermaßen interessant (und auch von dir erwähnt) wäre da noch: "Das iPhone-Entwicklerbuch: Rezepte für Anwendungsprogrammierung mit dem iPhone SDK" - aber scheint ähnlichen Umfang zu bieten, kostet aber deutlich mehr und ist kein Taschenbuch, ausserdem sollen da viel einzelne Schnipsel drin sein, die dann nur über main.m probiert werden und undokumentierte Schnittstellen sollen verwendet werden (welche ja dann später ohne Vorwarnung geändert oder gestrichen werden können), nicht so ganz das, was ich mir vorstelle. Jedenfalls schreibt da noch einer:
Im Vergleich:
Programmieren fürs IPhone / dpunkt / Stäuble
netter Einstieg, aber nur 10% der Tiefe im vergleich zu diesem Buch
Kann ich mir gut vorstellen, hatte einen ähnlichen Eindruck, bzw. eben nur 10% der Tiefe, wie "Beginning iPhone Development: Exploring the iPhone SDK "
Beginning iPhone development exploring the iphone sdk / apress / mark LaMarche
ähnlich zu diesem Buch. Maskenprogrammierung jedoch mit Designer. Finde ich aber nicht ganz so gut.
Da blick ich nicht ganz durch, was er mit "Maskenprogrammierung mit Designer" meint. Kann da jemand was dazu sagen?

Hab auch anderswo gelesen, dass die Bücher von Erica Sadun nicht unbedingt optimal sein sollen, da eben nicht gerade die von Apple vorgeschlagenen Wege benutzt werden, weitere Gründe auch schon von dreyfus genannt. Einziger Vorteil wäre die deutsche Übersetzung, die aber auch nicht viel bringt, wenn mich das Buch inhaltlich nicht so sehr anspricht.

Da bleibt wohl eh nur das eine übrig, und das ist noch dazu das günstigste, und im Taschenbuchformat - also ideal zum mitnehmen.
Was ich jetzt aber nicht auf amazon.de gefunden habe, sind die angesprochenen O'Reilly Schinken. Jedenfalls nix, was iPhone Programmierung angeht.
0
iCode
iCode16.07.0909:34
Bei awakeFromNib sammeln die Buchempfehlungen für eine möglichst vollständige Liste zu dem Thema.

Wenn Ihr Bücher findet die sich mit Cocoa / Objective-C / Mac OS X- / iPhone-Entwicklung beschäftigen, oder Kritiken über diese Bücher, bitte dort melden.
0
Stefab
Stefab19.07.0914:39
Also ich bin gerade mal bei Kapitel 3: "Button Fun", eine noch sehr simple Anwendung. Aber so wie es bisher aussieht, wird echt sehr wenig Obj-C Kenntnis vorausgesetzt. Auch wurde schon beim extrem simplen "Hello World" einiges erklärt und auch zwischendurch auch über die Hintergründe, also auch über Obj-C und das MVC-Paradigma, usw.

Es scheint mir (bisher) zumindest auszureichen, wenn man nur mal "Become An XCoder": (man sollte dazu auf jeden Fall auch auf die Online-HTML-Version auf Englisch schauen, wenn man was nicht recht versteht, dort sind Kommentare zu jedem Kapitel und man kann auch direkt selbst nachfragen) und ein wenig darüber hinaus gelernt hat (so wie ich). Im Anschluss hab ich bisschen dort weitergemacht: (überschneidet etwas von BecomeAnXoder, geht dann aber viel weiter - habe es nicht bis zu Ende gemacht) und vor allem auch selber rumexperimentiert, also ein bisschen was eigenes macht.

Jetzt, wo es wieder schön ist, werd ich wohl rausgehen und weitermachen. (gestern Regen)

Was mich nun noch interessieren würde: Was braucht man, um ins kostenpflichte iPhone-Developer-Programm einzusteigen (kostet wohl €79,- pro Jahr, oder?)? Ich schätze mal, ich muss ne Firma anmelden, muss ich? Brauch ich dazu dann auch eine eigene Domain? Wegen diesen Bezeichnungen, wie: "com.firmenname.programmname"… wobei statt .com sicher auch .net, .de, .at, .org usw. möglich ist, hoff ich mal. Nur at.tt kann ich wohl vergessen, oder de.macbay.accountname.programmname. Aber vermutlich muss die Domain eh nicht wirklich existieren, oder? Und wenn, ist auch ok, nehm ne .net oder .org oder sowas. Und wie geht dann die Anmeldung? Kann ich wie bei iTunes mit click&buy bezahlen oder braucht man ne Kreditkarte? Und was ist der Aproval-Process, und wie lang dauert der?

Hätte ich dafür einen neuen Thread anfangen sollen

Jedenfalls danke für alles, besonders dreyfus! Das Buch scheint genau richtig. Mit Abschluss von Kapitel 4 könnt ich wohl schon mein erstes Programm anbieten, mit weiteren dann freie Updates mit neuen Funktionen.
0
Stefab
Stefab21.07.0920:14
Mal ne andere Frage: Warum sind im iPhone Simulator am MBP keine Beispiel-Fotos und Kontakte drauf? Habe dort frisch das 3.0 SDK installiert.

Ich hab mal den Tipp aus dem Buch genommen, und den "User"-Ordner aus ~/Library/Application Support/iPhone Simulator/ in den Papierkorb verschoben, so dass man bei den Apps mit Null anfangen kann. Hab das aber noch immer im Trash liegen, dort sind aber auch keine Fotos o.ä. drauf.

Danke!
0
Stefab
Stefab24.07.0917:15
Also ich hab mir den User-Ordner (bis auf die Applications) vom iMac geholt. Beispiel-Fotos sind nun drauf, aber die Beispiel-Kontakte fehlen noch.

Und da kommt noch eine Frage: Kann man den iPhone-Simulator so umstellen, dass es sich ganz normal Multitouch-mäßig mit dem Multitouch Trackpad von MBP steuer lässt?! Ist schon sehr eigenartig, so wie es jetzt ist, mit klicken und nur mit Alt die Zoom-Geste, etc. Bei ner Maus oder normalen Trackpad geht's ja nicht anders. Aber mit dem MBP könnte man den Simulator genauso bedienen, wie das echte iPhone, mit wischen, pinchen, usw. usf. Kann man das aktivieren?!? Das brächte auch den Vorteil, dass man im Simulator mehrere Multitouch-Gesten testen könnte.

Besten Dank im Voraus!
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.