Handy-App
Bevor man eine Handy-App schreibt, muss man sich für einen der zu vielen Wege entscheiden. Das liegt auch daran, dass es sehr viele Programmiersprachen gibt, die unterschiedliche Vor- und Nachteile haben. Daher ein Kommentar vorweg: Eine Programmiersprache zu lernen lohnt sich auf jeden Fall, egal welche. Gute Tutorials, mit denen man sich das Programmieren beibringen kann, gibt's auf codecademy.com und w3schools.
Nun zu meiner Einschätzung: Ich denke, dass in naher Zukunft Browser-Apps zunehmen werden, da Browser sich als Schnittstelle zwischen Internet und Handy dazu anbieten: über den Browser kann mit den Geräten des Handys gesprochen werden. Das ist m.E. aber auch der kritische Punkt, wieso das Rennen vielleicht doch besser von nativen Apps gewonnen werden sollte: unsere Browserabhängigkeit und die hier fehlende Differenzierung beim Rechtemanagement (Mozillas Firefox hat bzgl. Datenschutz in letzter Zeit manches Vertrauen verspielt und Chrome ist von Google).
Fachdidaktische Überlegungen
Ansatz Nr. 1 Aus fachdidaktischer Sicht ist die Entscheidung für die Programmierung einer WebApp extrem konsequent, da die Schüler ausgehend vom Coden mit Markdown, HTML und CSS perfekt zu JavaScript motiviert werden können und mit AppLab eine nette Brücke zu JavaScript existiert. Das war mein bisheriger Ansatz und ich finde diese Linie nach wie vor überzeugend. JavaScript wird wohl auch in nächster Zeit der Standard in der Webprogrammierung bleiben; bleiben wird allerdings auch die Wahrnehmung von JavaScript als große Hürde. Der Organisationsaufwand für diesen Weg ist sehr gering.
Ansatz Nr. 2 Im nächsten Durchgang will ich mit dem RaspberryPi anfangen, da ich die Idee schick finde, die damit erlernte Programmiersprache Python dann zur Entwicklung einer App zu verwenden. Zum Einen kommt es Schülern entgegen, nur eine Programmiersprache lernen zu müssen, zum Anderen kommt es ihnen auch entgegen, dass es nicht JavaScript oder Java ist. Außerdem scheint vielen Schülern (und mir, s.o.) das Programmieren einer nativen App attraktiver als das einer WebApp. Zu Markdown, HTML und CSS kommen die Schüler dann automatisch, wenn sie ihr Projekt dokumentieren oder ihre App im Internet präsentieren wollen. Ein Nachteil dieses Ansatzes ist, dass das Programmieren von nativen Apps mit Python (Kivy) realo kein Standard ist. Schülern, die später beruflich in die Richtung App-Entwicklung gehen wollen, wird das Umsteigen auf andere Programmiersprachen dann aber durch diese Einheit dennoch erleichtert. Der Vorteil von Kivy ist die Plattformunabhängigkeit. Ein kleiner Problempunkt von Kivy könnte das Kompilieren sein, ich habe bisher nur Buildozer ausprobiert und der ist nur für ein Projekt kostenlos. Organisatorisch ist dieser Weg aufgrund der RPis und einiger Programme, die erst im Netzwerk (oder auf den RPis) zum Laufen gebracht werden müssen, zumindest im ersten Durchgang aufwendig.
Ansatz Nr. 3 Ein dritter fachdidaktischer Weg könnte m.E. beim Arduino beginnen. Die Brücke zur App-Entwicklung ist Processing, da damit sowohl der Arduinos programmiert als auch super einfach Apps entwickelt werden können. Die Vor- und Nachteile sind ähnlich wie beim zweiten Ansatz. Gegenüber dem zweiten Ansatz ist das Programmieren einer Handy-App mit Processing einfacher, allerdings ist Python dagegen eine Standard-Programmiersprache.
Native App
Klicken
Zum Einstieg kann das Programmieren nach dem Baukasten-Prinzip auf code.org geübt werden.
Mit diesen Programmen kann man native Apps durch Klicki-Bunti "programmieren" (habe nicht alle ausprobiert)
Programmieren
- Kivy. Mittels Python können plattformübergreifende Apps geschrieben werden. Beispiel: Banana Grader.
- Processing. All-in-one Paket für alle Plattformen, mit dem man mit den geringsten Start- und Kompilierungsproblemen eine App auch z.B. für ein Android-Handy oder ein iPhone programmieren kann.
- Geile deutsche Anleitung auf creativecoding.org
- Weitere deutsche Anleitungen sind im Wikipedia-Artikel verlinkt.
- Das Forum nutzen, denn da gibt's viele Code-Schnipsel.
Weitere Möglichkeiten, die ich noch nicht ausprobiert habe:
- Meteor. Plattformunabhängige JavaScript-Apps.
- Ionic
- B4X
- AndroidStudio
Web-App
Der Hauptbegriff lautet hier JavaScript. Entweder man lernt JavaScript oder eine zu JavaScript kompilierende vereinfachte Skriptsprache.
Klicken
Programmieren
Fachdidaktisch ist es glaub am sinnvollsten, original JavaScript zu verwenden (wennschon-dennschon), vielleicht ist aber auch etwas davon sinnvoll (habe ich nicht ausprobiert):
- LimeJS
- CoffeeScript. GitBook-Anleitung
- Mozillas Konzept der Open Web Apps
- Framework, das nach JavaScript und andere Dateien kompilieren kann.
- Kompilieren einer WebApp zur nativen App mit PhoneGap oder Apparatio. Artikel