[Swift] Swift-Tutorial-Videos für Anfänger auf YouTube (in deutsch)

mightyM

Lambertine
Mitglied seit
18.01.07
Beiträge
698
Liebe Apfeltalker,

ich habe vor einigen Tagen eine Serie von Swift-Tutorial-Videos auf YouTube gestartet und dachte, dass dies evtl. den ein oder anderen von euch interessieren könnte. Die Videos sind in deutsch und ich habe vor, jeden Dienstag eine neue Episode zu veröffentlichen.

Wenn ihr eine Faszination für's Programmieren hegt, aber euch bislang noch nicht an Xcode getraut habt, dann nichts wie los :) Hier der Link zum YouTube-Kanal.


Freue mich auf euer Feedback und hoffe, die Videos sind eine Unterstützung für euch!

Liebe Grüße,
Martin
 

MacApple

Schmalzprinz
Mitglied seit
05.01.04
Beiträge
3.599
Schön, schön. Das kann was Gutes werden. Jedenfalls erklärst du auch was du da machst und erzählst nicht einfach nur, wie viele andere das machen, was du da gerade eintippst. Eine Frage hätte ich aber. Woher hast du die Information, dass Variablen mehr Speicher belegen sollen, als Konstanten?
 

mightyM

Lambertine
Mitglied seit
18.01.07
Beiträge
698
Lieben Dank für dein Feedback und entschuldige meine späte Antwort!

Soweit ich mich erinnere, hatte ich die Aussage, dass Variablen im Vergleich zu Konstanten mehr Speicher reservieren, vor einiger Zeit in einem Obj-C Buch gelesen. Das Buch habe ich gerade leider nicht zur Hand, folgender Thread bei stackoverflow schneidet das Thema allerdings an:

Mutable collections may be organized differently than immutable ones in order to allow for them to be changed. Immutable collections can be optimized for read-only operation.

Then there is the use of mutable/immutable objects. The compiler may have to generate code that copies a mutable object when it's shared as a property of another object in order to avoid undesired side-effects.
Offen gestanden hat mich jetzt gerade aber etwas verunsichert, dass ich die Aussage, so explizit wie ich sie im Video am Ende getroffen habe, kein zweites mal in der Form auffinden konnte. Ich werde das im Video jetzt nachträglich mit einem Kommentar ergänzen. Danke für deine kritische Nachfrage!

Idealerweise hieße es wohl: »Die Beachtung von var / let bietet grundsätzlich einen semantischen Vorteil und hilft dem Compiler, deine App zu optimierten«

Ich bereite übrigens gerade die nächste Folge vor, in der es dann um Arrays gehen wird!

Viele Grüße
Martin
 

m1LLo

Osnabrücker Reinette
Mitglied seit
29.05.10
Beiträge
991
Woher hast du die Information, dass Variablen mehr Speicher belegen sollen, als Konstanten?
Naja man könnte es auch so ausdrücken. Wenn du in Swift eine "var Zahl = 453" anlegst muss das spätere Programm auch höhere Werte speichern können. Wobei bei "let Zahl2 = 126" z.B auch ein Byte ausreichen würde. Der Compilers wählt also vor Konstanten immer die gleichstmöglich adressierbare Möglichkeit. Wenn man jetzt aber eine 64 Bit Zahl in einer Konstanten Speichert verbraucht das Natürlich gleichviel Speicher wie eine 64Bit Variable.
 
  • Like
Wertungen: PitiL

Tobias Scholze

Apfeltalk Entwicker
AT Redaktion
Mitglied seit
15.07.09
Beiträge
1.582
Hi,
erstmal Hut ab, dass du versuchst sehr hochwertige, interessante Tutorials zu veröffentlichen. Dies funktioniert schon einmal. :)

Bisschen klugscheißen muss ich dennoch, dein "Float" ist eigentlich ein "Double". Eventuell könntest du in kommenden Videos auch eingehen, dass man eigentlich eher in englisch schreiben soll da dann auch sprechende Methodenaufrufe zustande kommen können. Unter Obj-C war es noch wichtiger, aber ganz ausser Augen sollte man es auch nicht lassen.

In deinem Video von gestern (09.08) ist die Rede von "Swift 3". Nutzt du dies wirklich oder doch eher das stabile 2.x Swift?

Freue mich auf mehr!

Viele Grüße, Tobi

PS: Ist da ein leichtes Rauschen über den kompletten Aufnahmen?
 

u0679

Baumanns Renette
Mitglied seit
09.11.12
Beiträge
5.912
ModInfo: Ich hatte versehentlich die beiden Beiträge von @MacApple falsch verschoben (geplant war lediglich, beide zu einem Beitrag zusammenzuführen. Nachfolgend der Text der Beiträge. Sorry nochmal.

Text von MacApple:


Offen gestanden hat mich jetzt gerade aber etwas verunsichert, dass ich die Aussage, so explizit wie ich sie im Video am Ende getroffen habe, kein zweites mal in der Form auffinden konnte.
Die Aussage war eigentlich nur zu allgemein. Bei komplexen Datentypen ist es ja nicht unbedingt falsch. Konstanten haben aber auch für einfache Datentypen Vorteile, wie zum Beispiel Thread Sicherheit oder bei Übergabe an Funktionen muss nicht alles kopiert werden.

Naja man könnte es auch so ausdrücken. Wenn du in Swift eine "var Zahl = 453" anlegst muss das spätere Programm auch höhere Werte speichern können. Wobei bei "let Zahl2 = 126" z.B auch ein Byte ausreichen würde. Der Compilers wählt also vor Konstanten immer die gleichstmöglich adressierbare Möglichkeit. Wenn man jetzt aber eine 64 Bit Zahl in einer Konstanten Speichert verbraucht das Natürlich gleichviel Speicher wie eine 64Bit Variable.
Nein, wenn du keinen Typ angibst, dann nimmt Swift für Ganzzahlen den Type Int und für Fließkommazahlen den Typ Double.
Code:
var variableZahl = 1
let konstanteZahl = 1
let kleineZahl: Int8 = 1

print(sizeofValue(variableZahl))    // prints 8
print(sizeofValue(konstanteZahl))   // prints 8
print(sizeofValue(kleineZahl))      // prints 1
 
Zuletzt bearbeitet:

thabune

Tokyo Rose
Mitglied seit
11.10.15
Beiträge
66
Find ich super :)
Ich will schon länger damit beginnen - habs aber nie geschafft.
Ich werd zuschauen. :cool:
 

m1LLo

Osnabrücker Reinette
Mitglied seit
29.05.10
Beiträge
991
Nein, wenn du keinen Typ angibst, dann nimmt Swift für Ganzzahlen den Type Int und für Fließkommazahlen den Typ Double.
Naja ist aber eigentlich keine Sache der Sprache sondern des Kompilers. Macht wenig Sinn für kleine Konstanten 8 Byte rauszuhauen.
 

Tobias Scholze

Apfeltalk Entwicker
AT Redaktion
Mitglied seit
15.07.09
Beiträge
1.582
@m1LLo deswegen setzt du einen Typen wenn du speicherschonen arbeiten willst. :)

Viele liebe Grüße!, Tobi
 

MacApple

Schmalzprinz
Mitglied seit
05.01.04
Beiträge
3.599
Naja ist aber eigentlich keine Sache der Sprache sondern des Kompilers. Macht wenig Sinn für kleine Konstanten 8 Byte rauszuhauen.
Doch, das ergibt Sinn, gerade in Swift.
Swift hat sich Typsicherheit auf die Fahne geschrieben. Eine Konstante willst du irgendwann auch mal verwenden. Sei es mit anderen Konstanten oder Variablen verrechnen oder an Funktionen/Methoden übergeben. Dann muss der Typ stimmen, sonst musst du erst wieder eine Typumwandlung vornehmen.
 

m1LLo

Osnabrücker Reinette
Mitglied seit
29.05.10
Beiträge
991
Dann muss der Typ stimmen, sonst musst du erst wieder eine Typumwandlung vornehmen.
Aha und deswegen nimmt man immer immer den Größtmöglichen Datentyp?... Irgendwie mit Kanonen auf Spatzen geschossen.
Ich denke es hat wohl mit der Art der Optimierung zutun. Ja Typumwandlung kostet Rechenzeit. Wenn man jetzt aber Statt auf CPU Optimierung auf RAM-Optimierung geht macht es keinen Sinn ;) . Ich bin eben etwas Embedded geschädigt.

@m1LLo deswegen setzt du einen Typen wenn du speicherschonen arbeiten willst. :)
Ich glaube das weiß jeder der sich länger als 7 Tage mit Programmierung beschäftigt ;)
 

MacApple

Schmalzprinz
Mitglied seit
05.01.04
Beiträge
3.599
Aha und deswegen nimmt man immer immer den Größtmöglichen Datentyp?
Nein, man legt einen Default Typ fest. Für Ganzzahlen empfiehlt es sich als Default Typ die zum Prozessor am besten passende Größe. Das ist bei 32 Bit Prozessoren 4 Byte und für 64 Bit Prozessoren eben 8 Byte und das ist in Swift der Typ Int. Die Festlegung eines Default Typs braucht Swift ja auch nur, weil Swift Type Inference erlaubt.

Wenn man jetzt aber Statt auf CPU Optimierung auf RAM-Optimierung geht macht es keinen Sinn ;) . Ich bin eben etwas Embedded geschädigt.
Es steht dir ja frei, einen Typ explizit anzugeben.
 

mightyM

Lambertine
Mitglied seit
18.01.07
Beiträge
698
Bisschen klugscheißen muss ich dennoch, dein "Float" ist eigentlich ein "Double".
Ich habe immer ein offenes Ohr für Verbesserungen! Du hast natürlich recht, Swift legt die Fließkomma-Zahl immer als Double an, sofern nicht anders deklariert. Ich habe das im Video mit einem Kommentar ergänzt :)

Eventuell könntest du in kommenden Videos auch eingehen, dass man eigentlich eher in englisch schreiben soll da dann auch sprechende Methodenaufrufe zustande kommen können.
Da bin ich absolut deiner Meinung! Vor allem sollten auch Kommentare idealerweise in Englisch verfasst werden. Darauf werde ich in den kommenden Videos definitiv eingehen.

Und ja, es ist tatsächlich Swift 3! Im Rahmen der Videos nutze ich die aktuelle Xcode Beta, die auch gelegentlich ganz gerne mal abstürzt - das habe ich im Video einfach rausgeschnitten.

Das leichte Rauschen im Hintergrund ist vermutlich eine Kombi aus MacBook-Lüfter, Mikrofon und Raumsituation. Daran arbeite ich noch... Ich habe schon ein neues Mikrofon organisiert und weiß jetzt auch, warum mein MacBook-Lüfter Vollgas gegeben hat. Das wird in den nächsten Folgen also deutlich besser! :)

Danke für euer Feedback!
 
  • Like
Wertungen: Tobias Scholze

Fedelix

deaktivierter Benutzer
Mitglied seit
15.04.10
Beiträge
818
Da bin ich absolut deiner Meinung! Vor allem sollten auch Kommentare idealerweise in Englisch verfasst werden. Darauf werde ich in den kommenden Videos definitiv eingehen.
Vorweg: Ich bin Anfänger und deswegen kann es durchaus sein, dass ich die Kritik an der gewählten Sprache gerade falsch verstehe...

Jedoch ist es eine enorme Erleichterung, wenn die Beispiele und Kommentare auf Deutsch verfasst sind (also z. B. statt „var weather“ „var wetter“)! Auch wenn es vielleicht abseits der Konvention ist: Das Lernen der Sprache wird so sehr stark vereinfacht. Deine Videos richten sich schließlich an blutige Anfänger und gerade für diese ist es eine Erleichterung (und da spreche ich aus eigener Erfahrung), wenn sie Bekanntes (in dem Fall die Texte auf Deutsch, die sofort verstanden werden) mit Neuem (alles, was Englisch ist), verbinden können. So ist direkt ersichtlich, welche Dinge feststehend sind (diese sind dann auf Englisch und muss man lernen, z. B. in deinem Beispiel „var“) und welche veränderbar sind (z. B. „geburtsJahr“).

Es war mit am mühsamsten für einen Anfänger, wenn er eine deutschsprachige Einführung gelesen hat und dann mit englischsprachigen Beispielen konfrontiert war. Denn: Dann könnte man auch gleich einen englischsprachigen Swiftkurs machen.

Den Weg, den du in deinen Videos einschlägst, finde ich aus lernpädagogischer Sicht enorm sinnvoll.

1.jpeg
 

Scotch

Harberts Renette
Mitglied seit
02.12.08
Beiträge
7.020
Auch wenn das vielleicht nicht alle hören wollen: Wer programmieren möchte, sollte sich tunlichst intensivst mit der englischen Sprache auseinandersetzen. Ehrlich gesagt finde ich es als jemand, der in einem sehr internationalen Umfeld arbeitet nach wie vor erschreckend, wie schlecht der durchschnittliche Deutsche (Akademiker explizit eingeschlossen) Englisch im Vergleich zu seiner internationalen Konkurrenz spricht.

Wenn das Programmieren Lernen da einen zusätzlichen Anreiz setzt, sollten alle Tutorials allein deshalb schon in Englisch sein - ganz sicher aber hat Deutsch in einem Programmcode nichts zu suchen. Im Notfall vielleicht noch in den Kommentaren...

Eventuell könntest du in kommenden Videos auch eingehen, dass man eigentlich eher in englisch schreiben soll da dann auch sprechende Methodenaufrufe zustande kommen können. Unter Obj-C war es noch wichtiger, aber ganz ausser Augen sollte man es auch nicht lassen.
Kann man nur dick unterstreichen!
 
  • Like
Wertungen: rootie

Fedelix

deaktivierter Benutzer
Mitglied seit
15.04.10
Beiträge
818
Auch wenn das vielleicht nicht alle hören wollen: Wer programmieren möchte, sollte sich tunlichst intensivst mit der englischen Sprache auseinandersetzen. Ehrlich gesagt finde ich es als jemand, der in einem sehr internationalen Umfeld arbeitet nach wie vor erschreckend, wie schlecht der durchschnittliche Deutsche (Akademiker explizit eingeschlossen) Englisch im Vergleich zu seiner internationalen Konkurrenz spricht.

Wenn das Programmieren Lernen da einen zusätzlichen Anreiz setzt, sollten alle Tutorials allein deshalb schon in Englisch sein - ganz sicher aber hat Deutsch in einem Programmcode nichts zu suchen. Im Notfall vielleicht noch in den Kommentaren...
!
Abgesehen davon, dass du niemandem zwingen kannst, sein Englisch zu verbessern und dass der Schluss, auf Deutsch für Anfänger zu programmieren auf eine mangelnde Sprachkenntnis hinweisen soll (was Unfug ist).

Man sollte die Zielgruppe beachten. Zielgruppe sind nicht Entwickler oder Menschen, die beruflich programmieren und im internationalen Umfeld tätig sind.... Zielgruppe sind blutige Anfänger, denen Swift nahegebracht wird. Wie erreicht man Menschen? Indem man sie da abholt, wo sie stehen – das zieht die deutsche Sprache mit ein.

Wenn man also noch ein Tutorial auf Englisch macht, dann hätten wir wie viele Tutorials, die auf Englisch sind? 100, 1000 oder mehr? Benötigt man dann überhaupt noch eines?
 

rootie

Hadelner Sommerprinz
Mitglied seit
30.06.11
Beiträge
8.483
Es geht darum, dass man ohne fundiertes Englisch beim Programmieren keinen Fuß fassen wird. Die ganzen Schlüsselwörter der Programmiersprachen und im Regel auch generierte Fehlermeldungen sind auf Englisch. Es nützt nix, zum Lernen die 3 Variablen auf Deutsch zu schreiben.

Ich finde, dass ein Tutorial keinesfalls gegen internationale Konventionen verstoßen darf. Das sind nämlich dann die Leute, die später im Job auch auf Deutsch programmieren, weil sie es ja so gelernt haben. Das habe ich in meiner Firma immer wieder leidvoll erleben müssen.
 

Fedelix

deaktivierter Benutzer
Mitglied seit
15.04.10
Beiträge
818
Ist ja schon gut, ich möchte nicht, dass mehr in meinen Beitrag interpretiert wird, als dort überhaupt steht – auch möchte ich keine Grundsatzdiskussion anzetteln.

Ich habe lediglich meine Sichtweise als Anfänger und Lernpädagoge (das ist etwas, wovon ich wirklich Ahnung habe) geschildert und den TE für sein Vorgehen gelobt, da mir solch ein Vorgehen den Programmiereinstieg enorm erleichtert und ich es für Anfänger sinnvoll finde.
 
  • Like
Wertungen: rootie

mightyM

Lambertine
Mitglied seit
18.01.07
Beiträge
698
Ich finde die Diskussion super interessant, vielen Dank an alle Beteiligten! Ich hatte mir dazu im Vorfeld auch einige Gedanken gemacht. Ich kenne das Thema von beiden Seiten: der des Lernenden, als auch der des produktiv Arbeitenden. Im professionellem Kontext lege ich auf durchgängig englischen Code (inkl. Kommentare) sehr großen wert. Das werde ich in künftigen Tutorial-Videos weiter betonen. Im aller ersten Video traf ich bereits das Statement »Englisch ist meines Erachtens die wichtigste Fremdsprache«.

Die Entscheidung, ein deutschsprachiges Tutorial anzubieten, war vom Gedanken geprägt, den Einstieg für Anfänger so einfach wie möglich zu gestalten. Dazu zählt m.E. auch der Abbau von etwaigen Sprachbarrieren. Wer mit dem programmieren beginnt, schnappt während des Lernens ohnehin von ganz allein neue Fachbegriffe auf. Auf der Tonspur sage ich z.B. immer "Integer" statt "Ganzzahl" (oder beides zusammen). Ich hatte die Hoffnung, dass man so spielend die neuen Begriffe lernt.

Und so sind auch meine anfänglichen Kommentare eher Übersetzungen: "Integer = Ganzzahl" schreibe ich deshalb so konkret als Kommentar, weil ich es schön fand, eine Art Vokabelliste im Video zu haben. Dass die Variablennamen auch auf deutsch sind ist sicherlich ein Punkt über den man künftig nachdenken kann, das hatte ich aus dem Gefühl heraus entschieden.

LG, Martin

PS: Heute geht es übrigens schon weiter mit einem Video über Arrays :)
 
  • Like
Wertungen: Dat_T und SGiersch