• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Anfängerhürde wie nehmen?

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Ich programmiere seit ca. 10 Jahren in PHP datenbankbasierte Webanwendungen.

Ich habe bereits mehrere Anläufe hinter mir in XCode einzusteigen. Leider (scheint) sich bei jeder Version von XCode vieles zu ändern, so dass Beispiele im Internet wertlos werden. Codeschnipsel und Tutorials die jetzt z.B. unter XCode 6.4 geschrieben wurden verlieren dann in XCode 6.5 ihre Gültigkeit und sind wertlos. Zumindest habe ich den Eindruck. Vielleicht ist mein Eindruck auch falsch.

Nun habe ich den vierten Start hinter mich gebracht und bin wieder kurz davor auf zu hören. Mir gelingen die grundlegendsten Sachen nicht. Ich habe z.B. die letzen zwei Wochen damit verbracht in Swift die Grafik eines Buttons während der Laufzeit zu verändern. Laut XCode sollte es so gehen:

button1.setImage( image: UIImage?, forState: UIControlState)

Aber schon die Übergabe von UIControlState ist ein unüberwindbares Problem. Ich finde kein Möglichkeit XCode zu sagen: Wenn der State "Normal" ist, dann benutze folgende Grafik.

Im AppStore tummeln sich tausende von Schrott Apps, aber ich bekomme das oben genannte Beispiel nicht auf die Reihe.

Es packt mich immer wieder statt "nur" einer Webanwandung eine echte App zu schreiben, abere scheitere jedesmal kläglich.

Gibt es irgendeinen Trick wie man die erste Hürde nehmen kann und z.B. laut der Dokumentation von XCode herauszufinden wie man (zum Beispiel jetzt) die Grafik eines Buttons ändert?

Tausend Dank für jede Hilfe die mir das Brett vom Kopf nimmt und ich nich wieder aufgebe und wieder zu PHP wechsle.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Habe jetzt endlich eine Lösung gefunden:

Code:
let image = UIImage(named: "sampleimage.png") as UIImage!
button1.setImage(image, forState: .Normal)


oder kürzer:
Code:
button1.setImage(UIImage(named: "thumbs-good-1.png"), forState: .Normal)


Welcher Schreibweise würdet ihr mir empfehlen?
 

RudolfGottfried

Schöner von Nordhausen
Registriert
13.03.11
Beiträge
316
Habe leider keinen Schimmer davon, sorry.
Aber wäre ich du, würde ich zuerst im Web nach Profis in Sachen Swift suchen.
Und dann z.B. die oder den finden.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
iOS Apps programmieren ist die härteste Nuss meiner gesamten Laufbahn.

Apple ändert alles so drastisch schnell so dass alles was älter als sechs Monate ist wieder komplett überholt sein kann.

In Swift wandelt man einen String in eine Ganzzahl mit toInt() um. In Swift2 (ein Jahr später erschienen) mit Int(). Das heisst bereits nach einem Jahr ist sämtlicher Code unbrauchbar geworden, da dies wohl nicht der einzige Unterschied zwische Swift und Swift 2 ist.

So eine rasend schnelle Veränderung habe ich bisher noch nie mit gemacht. Das erschwert einen dem Einstieg ungemein, da man Google nicht sagen kann: Verstecke alle Treffer und Tutorial die älter als X Monate sind.

Da sich nicht nur die XCode Versionen so rasend schnell verändern sonder auch die Sprache selbst empfinde ich für Anfänger eine echt harte Nuss.

Aber da es hunderttausende Apps im AppStore und tausende von Jugendlichen die Spiele programmieren kann es eigentlich nicht so schwer sein wie es mir vor kommt.
 

maddi06

Borowitzky
Registriert
10.11.14
Beiträge
9.027
da man Google nicht sagen kann: Verstecke alle Treffer und Tutorial die älter als X Monate sind.
Doch, kann man. ;)
Man kann sogar einen selbst definierten Zeitrum festlegen.

Wenn du deinen Text zur Suche eingegeben hast und die Treffer erscheinen gibt es unterhalb der Suchleiste einen Punkt der nennt sich "Suchoption". Der befindet sich neben den Button WEB, BILDER, VIDEOS... Es öffnet sich eine kleine Zusatzleiste: Beliebiges Land, Beliebige Sprache,Beliebige Zeit... Bei letzterem klickst du drauf und kannst den zu suchenden Zeitraum eingrenzen.

...ist das OT, weil es nicht die ursprüngliche Frage beantwortet? :D

Sooooo schlecht ist Googel gar nicht :p
 
  • Like
Reaktionen: belinea

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
GENIAL. Das ist schon mal eine riesige Hilfe.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Also das programmieren iOS Apps mit Swift ist verglichen mit PHP um den Faktor 1000 schwieriger.

Ich werde weiter bei PHP bleiben. Das schont Nerven, Geduld und und vor allem Zeit. :)
 

Buhmi

Osnabrücker Reinette
Registriert
21.11.09
Beiträge
977
Solange du nicht beim Auftauchen der ersten Beta direkt zu Xcode 7 wechselst, sollte auch in Swift 1.x geschriebener Code noch funktionieren. Allerdings ist Swift nunmal eine stark in Entwicklung befindliche Sprache, also kleine Änderungen wirst du immer verkraften müssen.

Ich würde aber weniger versuchen mich mit zusammenhanglosen Codeschnipseln aus dem Netz auf eine Aufgabe zu stürzen, als vielmehr ein zusammenhängendes Tutorial durchzuarbeiten. Sei es ein Buch oder der sehr sehr gute Stanford Kurs (https://itunes.apple.com/us/course/developing-ios-8-apps-swift/id961180099). So hast du eine grundlegende Basis über Syntax und vor allem die Zusammenhänge von UIKit. Dann sollten auch Aufgaben wie die da oben um einiges leichter fallen. Und jeglicher Code, der in dem Kurs verwendet wird sollte entweder noch funktionieren, oder Xcode schlägt direkt die neue Variante vor.
 
  • Like
Reaktionen: belinea

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Ich habe mir jetzt folgende Tips die mir selber geholfen haben:

- nicht jede Funktion bis in's letzte Detail versuchen verstehen zu wollen. Das kostet Zeit und man kommt nicht wirklich vorwärts

- nicht alles auswendig lernen, sondern sich kleine funktionierende Codeschnipsel Sammlungen anlegen. Manche Funktionen sind so lang geschrieben, dass sie glaube ich kaum jemand (auch wenn XCode die Möglichkeiten vorschlägt)

- wenn es einem zu viel wird --> einen Schritt zurück bis dahin wo alles noch verständlich war. Das nochmal durchspielen, etwas Routine dazu gewinnen und dann wieder einen Schritt nach vorne. Überspringt man grundlegendes Dinge, so wird man später nicht mehr weiter kommen und man steckt in einer Sackgasse

- nicht aufgeben! Die Zeitpunkt wo man hinschmeißen will wird immer wieder mal kommen.

- sich im klaren sein, wie Buhmi geschrieben hat, dass hier alles stark verändert in einer schnellen Zeitspanne. Tutorials die mit XCode 7 Beta 1 funktioniert haben lassen sich ohne marginale Änderungen manchmal in der nächten Beta schon gar nicht mehr nutzen

- nutze "Playground". Mit Playground kann man fast live sehen wie sich sein Code verhält und man kann sehr schnell austesten welche Ergebnisse ein Prgogramm liefert

Spätestens wenn der erste App, sei sie noch so klein, auf dem iOS Gerät ist man stolz wie Oskar und will sich gleich an den nächsten Schritt machen und die App erweitern. Aber das Ganze kostet viel Nerven und Schweiß (mir zumindest).

Ich hoffe der eine oder andere Tipp hilft euch auch mal weiter.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Hier noch ein Tip den ich mir angewöhnt habe: Speichert funktionierende Versionen und legt sie an einen sichere Ort ab.

Gerade an Anfang war die Fehlersuche für mich sehr schwer. Findet man den Fehler wirklich überhaupt nicht, so kann man so wieder einen kleinen Schritt zurück gehen und die letzte Programmfunktion nochmals neu schreiben. Eine App die nicht mehr läuft und keine lauffähige Version mehr zu haben kann ganz schön Zeit kosten

Und wenn man genügend Erfahrung gesammelt hat kann zu einem späteren Zeitpunkt bei der nicht mehr lauffähigen Version immer noch auf Fehler suche gehen um zu lernen was man falsch gemacht hat.

Das sichern von Versionen hat mir also sehr viel geholfen.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Also das ist schon wirklich verdammt schwer und kompliziert. Obwohl in Swift schon vieles leichter sein soll.

Ein ziemlich wichtiges Element ist die TableView. Ich denke mal dass man sie in fast jedem Projekt benötigt. Aber der Aufbau und die Initialisierung ist so undurchsichtig und kompliziert. Ich bastle schon länger nach verschiedenen Tutorials immer wieder von Null an eine TableView zusammen um da etwas Routine zu bekommen. Aber ich glaube diese Tabelle scheint das schwierigste überhaupt zu sein.

Will man dann noch eine Zelle ein eigenes Aussehen geben und nicht aus den vorgegebenen Typen wählen, dann wird es echt aufwendig.

Swift ist das deprimierendste was ich je versucht habe zu lernen. :( Bücher und Tutorials veralten leider auch schnell. Viele Bücher beschreiben noch XCode 6 mit Swift in der ersten Version.

Ich weiß nicht ob ich überhaupt noch Zeit investieren soll. Wenn ich den Hintergrund von TableViews nicht verstehe wird alles weitere vielleicht noch schwerer und unverständlicher. Aber ich habe jetzt schon soviel Freizeit darin investiert dass es echt zu schade wäre aufzuhören.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Nun habe auch ich es endlich geschafft eine TableView zu realisieren. Es hat mir nur geholfen dass andauernd wieder von Null aufzubauen.

Ich empfinde als schwer weil es absolut nicht intuitiv ist. XCode hat auch so seine paar Eigenheiten. An manchen Stellen meint man hier waren die Entwickler von iTunes am Werk. :D. Manche empfehlen AppCode zu verwenden, dass soll besser laufen.

Also das Erfolgserlebnis hat mich jetzt wieder zum weitermachen motiviert. Falls hier jemand liest der auch Interesse hat mi Swift anzufangen: Es ist eine Achterbahnfahrt. Nach dem nächsten Hoch kommt das nächste Tief und anders herum.

Lasst euch den Mut nicht nehmen, eure erste App wird euch mit Stolz belohnen...... bis das erste Feedback er Nutzer kommt. :D
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Aus Neugier: Darf man dich fragen, wie gut deine (Programmier-)Grundlagen sind? Du schreibst zwar:

Ich programmiere seit ca. 10 Jahren in PHP datenbankbasierte Webanwendungen.

Deine Beiträge lesen sich aber so, als ob du vor allem mit dem Cocoa Framework kämpfst. Kennst du dich bspw. mit MVC aus? Evtl. suchst du nur die Logik am falschen Ort oder solltest dich vor dem Programmieren noch etwas mehr mit dem Aufbau des Frameworks beschäftigen.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Also bei PHP gehe ich auf www.php.net, suche meine Funktion. In der ersten Zeile steht dann der Funktionsname, welche Parameter dieser Aufruf benötigt, welche optional sind, was er zurück gibt und das aller hilfreichste: Ein Beispiel dass die Funkton erklärt und man eigentlich sofort weiss ob man sie gebrauchen kann für das was man vor hat.

Allerdings muss ich auch dazu sagen, dass ich in PHP noch kein Projekt umgesetzt hätte das so groß wäre wie z.B. eine Forensoftware. Also ein Profi bin ich ganz gewiss nicht. Aber man kann mit den Grundfunktionen und einer Datenbank im Hintergrund wirklich sehr schnelle die schönsten Sachen zaubern. Die meiste Zeit in Anspruch nimmt dann die Gestaltung des Frontends.

So, aber jetzt zurück zu XCode/Swift. Die Grundfunktionen wie Datentypen, Schleifen, Funktionen sind ja schon mal sehr sehr ähnlich und bei Büchern und Tutoroials komme ich der sehr schnell voran. Einziger Unterschied ist jetzt noch, dass ich Codezeilen nicht zwingend einem ";" abschließen muss (vergesse ich seit Swift in PHP jetzt gerne mal :)). Die Klammern in IF-Abfragen muss man nicht setzten (kann man aber). Okay also bis hier also also noch sehr simpel.

Der Interface Builder wurde dann schon etwas tricky. Dass man dann ausversehen meint man kann ein Outlet einfach umbennen oder man vergisst einem ViewController seine Klasse zu zuweisen sind Anfängerfehler die einem dann eigentlich beim dritten mal nicht mehr passieren.

Jetzt wird es kompliziert. Das ein Ergebnis ein Optional sein kein brachte mich am Anfang zur Verzweiflung. Entweder in einem String steht etwas oder er ist eben leer. Warum man ein Optional mit ? entpacken muss --> man bekommt den Wert oder ein Nil zurück. Beim einem force unwrap mit ! muss ich dann mit einem IF LET abfragen ob sich wirklich ein Wert darin befand. Warum es Optionals gibt habe ich eigentlich bis heute noch nicht verstanden.

Suche ich auf https://developer.apple.com/library eine Funktion, so vermisse ich ein Beispiel so wie es auf PHP.net der Fall ist. Man kann zwar auf stackoverflow.net suchen, aber selbst wenn man da Objective-C Beispiele aussortiert funktionieren eigentlich der Großteil der dargestellten Lösungen nicht und enden nur in einer Fehlermeldung.

Von daher hat mir des Apfeltalk Forum schon wahnsinnig viel weitergeholfen mit Lösungsbeispielen. Da möchte ich mich nochmal recht Herzlich bedanken bei den Nutzern die mir weitergeholfen haben.

Aber was ist jetzt eigentlich mein Problem. Also nur mit dem Online Manual von Apple komme ich nicht weiter. Ohne Beispiel wie man jetzt z.B. eine TableView generiert: https://developer.apple.com/library...tocol/#//apple_ref/doc/uid/TP40006941-CH3-SW3 habe ich keine Chance. Selbst wenn ich versuche ein YouTube Beispiel nachzuarbeiten, spätestens wenn dann Paramter in einem Seqgue übergeben werden sollen und die in den Videos mit AnyObjects, Sendern und Delegates um sich werfen setzt es aus bei mir. :rolleyes:
 

ImpCaligula

deaktivierter Benutzer
Registriert
05.04.10
Beiträge
13.859
...ich muss da allerdings insofern Recht geben, dass weder Apples ObjectiveC noch Xcode intuitiv noch einfach sind. Gegenüber Java (samt Eclipse und/oder Android Studio) oder C# und Visual Studio ist das schon teilweise einfach nur krampf.

Dummerweise sieht die Anforderung an ein Softwarehaus heute eben so aus - eine Anwendung darf nichts kosten und muss gestern bereits fertig gestellt sein. Und da braucht es eine moderne intuitive Sprache und entsprechende Entwicklerwerkzeuge. Und da muss ich auch sagen... da arbeite ich zZt. lieber mit Java/C# ....
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Also bei PHP gehe ich auf www.php.net, suche meine Funktion. In der ersten Zeile steht dann der Funktionsname, welche Parameter dieser Aufruf benötigt, welche optional sind, was er zurück gibt und das aller hilfreichste: Ein Beispiel dass die Funkton erklärt und man eigentlich sofort weiss ob man sie gebrauchen kann für das was man vor hat.

Allerdings muss ich auch dazu sagen, dass ich in PHP noch kein Projekt umgesetzt hätte das so groß wäre wie z.B. eine Forensoftware. Also ein Profi bin ich ganz gewiss nicht. Aber man kann mit den Grundfunktionen und einer Datenbank im Hintergrund wirklich sehr schnelle die schönsten Sachen zaubern. Die meiste Zeit in Anspruch nimmt dann die Gestaltung des Frontends.

Liest sich so, als ob du noch kein Framework (z.B. in der PHP Welt CakePHP) verwendet hast, oder? Daher auch meine Frage, ob du dich mit MVC auskennst, welche du leider Übergangen hast(?) Naja, jedenfalls wenn dies nicht der Fall ist, möchte ich dir empfehlen, dich mit der Strukturierung deiner App und des Framework auseinanderzusetzen.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Frameworks nutze ich derzeit nur UIKit und SQLite. Mit denen bin ich schon vollstens ausgelastet. :)
 

z3ro

Damasonrenette
Registriert
11.06.13
Beiträge
486
Naja, UIKit ist ein Kit und SQLite eine Datenbank bzw. in diesem Fall eine Programmbibliothek, welche dir den Datenbankzugriff auf eine SQLite Instanz erleichtert.

Mit Framework meine ich eher das Cocoa (Touch) Framework, zu welchem UIKit gehört.

Wie gesagt, ich empfehle dir, dich noch weiter mit den Grundlagen zu beschäftigen und vor allem nachzuvollziehen, wie das MVC Pattern funktioniert, damit du weisst wie Cocoa Touch und deine eigene App strukturiert ist.
 

Schniko

Reinette Coulon
Registriert
01.08.08
Beiträge
954
Stehe ich allein da, wenn ich sage, dass Objective-C für den Einstieg einfacher ist? Meiner Meinung nach, ist das leichter zu entziffern, da auf komplizierte Syntax verzichtet wird. Die Syntax ist zwar lang und teilweise umständlich, aber mit weniger Regeln aufgebaut im Vergleich zu Swift.
 

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Ist Objective-C in Sachen Typensicherheit etwas entspannter? Vielleicht so einfach wie PHP?

Die Typensicherheit haben mich in Swift jetzt zum absoluten Stillstand gebracht. Ich verbringe fast 100% der Zeit Datentypen aufwendig (ohne Erfolg) umzuwandeln um dann zu merken dass die Datentypen dann immer noch nicht zusammenpassen.

Habe ich eine Zahl als String und eine als Double ist es in PHP eine Sache von Sekunden mit diesen zu rechnen. In Swift brauche ich dazu eine halben Liter Kreislauftropfen um dann nach Stunden zu merken dass ich die Rechnung 5x5 immer noch nicht ausführen könnte weil die erste Zahl ein String ist und die zweite ein AnyObject.

Dass es irgendwie gehen muss ist klar. Es gibt Leute die entwicklen ganze 3D-Shooter in Swift. ;)