Werkmodul | Fachmodul
Lecturer: Michael Markert
Credits: 6 ECTS, 3 SWS
Date: Tuesdays, 13:30 until 16:00 h
Venue: Marienstraße 7b, Room 105
First meeting: Tuesday, 22. October 2013
Beschreibung
Wolltest du schon immer eine App für dein iPhone erstellen? Oder hast du eine tolle Idee für ein "Creative Coding Experience" auf deinem iPad? Hast du ein neues Android Tablett und möchtest etwas schickes damit machen? Das ist deine Chance!
Wir werden mit den neuesten cross-platform HTML5 Web-Technologien arbeiten (hauptsächlich mit der ECMA Scriptsprache, besser bekannt als JavaScript; inklusive CSS3), um Apps zu erstellen, die auf deinem internetfähigen mobilen Endgerät laufen.
Themen:
- siehe englische Auflistung
Dieser Kurs wird je nach Bedarf höchstwahrscheinlich auf Englisch abgehalten.
Hinweis: Wer mit mehreren Endgeräten und Web-Synchronisation arbeiten will, dem wird der gleichzeitige Besuch des Werk-/Fachmoduls von Kollege Gabriel Rausch empfohlen, das auch auf Serverseitige Programmierung eingeht. Aus zeitlichen Gründen können wir das in diesem Kurs nicht tun.
English description
Did you ever wish to design an app for your iPhone? Or do you have an idea for this nice creative coding experience on your iPad? Do you have a new Android Tablet and want to make something cool with it? This is your chance!
We will work with the latest cross-platform HTML5 web technologies (mainly the ECMA scripting language, better known as JavaScript; including CSS3) to create applications that will run on your mobile device.
Topics will be:
- Creative Coding on mobile devices
- Introduction to Programming
- Variables
- Functions / Methods
- Objects
- Events
- Best practices and Software Design Patterns (Accessors: Getters/Setters, Creating Objects, Modules…)
- ECMA Script (JavaScript)
- CSS3 (Design, Animation, Transition…)
- HTML5 (Multitouch, Geolocation, Device Orientation, Local Storage, Canvas, WebAudio, SVG...)
- Communication Protocols (JSON, AJAX with XMLHttpRequest), using the API of WebServices (Google, FlickR, Twitter, Yahoo Pipes, Facebook...)
- JavaScript Libraries (Processing.js, Paper.js, D3.js, jQuery Mobile and many more…)
- Webapps and Hybrid Apps (that's a webApp that is wrapped in a native application that you can download from an app store)
This course will most likely be held in English
Requirements
- Your own computer (Laptop) with a proper plain text code editor
- Your own mobile device that's capable of browsing the internet
- If you have a computer running Mac OS X 10.7 or newer, you'll get a free copy of Procoding
- If you have an iPhone, iPad or iPod Touch running iOS 7 or newer, you'll get a free copy of Procoding Mobile
- Procoding is not required, if you have another system, you'll get a starter package that you can edit with the code editor of your choice.
Registration Procedure
THE COURSE IS FULL. NO MORE REGISTRATIONS ACCEPTED.
Assignment
- Regular and active participation
- Working on the weekly assignments and documenting them in this Wiki
- Presentation of your work in progress in the course
- Presentation of your work at the IFD:Showreel
- Final hand-in (in this Wiki) with short documentation at the end of the term
Student Projects
Please copy this first entry (NameOrPseudonym) and make your own subpages:
- That's what the Wiki-Code means:
- The first two brackets create a infernal link in this wiki (this creates a new page).
- The slash "/" makes the page a subpage of this page
- /NameOderPseudonym <-- Please copy this link and use your own name (this is a public wiki!).
- /Charlotte
- /Xianzhi
- /MartinMelcher
- /NataSuu
- /Jano
- /merino
- /Alex
- /Saya
- /JonasKoehler
- /belikova
- /Livingoutloud
- /AdrianaR
Own Project
Inactive/incomplete (Please do something!!!)
Btw:
Help shows how to edit in this wiki; How to upload and use images. Please do not upload content that you did not create.
Eligible participants
- Bachelor Students Media Art & Design
- Master Students Media Art & Design
- Master Students MediaArchitecture
- All others: if you're interested, get in contact with Michael!
Syllabus
Preliminary schedule:
- 22.10. First meeting, Intro & Showcase
- 29.10. HTML, CSS & jQuery Mobile
05.11. no classdue to an excursion!- 12.11. CSS, JavaScript (ECMA): Variables & Functions
- 19.11. Objects (Classic & Modern Syntax, Prototype, Accessors)
- 26.11. Event Handlers (Drawing with a Touch)
- 03.12. Networking (XMLHttpRequest=xhr), Yahoo Pipes (XML to JSON), Weather-API
- 10.12. Geolocation, Reverse Geocoding & FlickR API (xhr)
- 17.12. Device Orientation, Device Motion, Compass Heading | Forms & Validation (Local Storage)
- 07.01. JS Libs Part I (Processing.js, Paper.js)
- 14.01. JS Libs Part II (d3) & SVG
- 21.01. JS Libs Part III (Bootstrap, PhoneGap, Titanium) & Offline Cache Manifest
& 1 topic of your choice (fixing errors & general FAQ, git intro, php crash course) - 28.01. Hybrid Apps Part I iOS SDK (Xcode & Objective-C), Android SDK (Java)
- 04.02. Hybrid Apps Part II (Design, Distribution, AppStores, …), Design Showcase (bring your most/least favorite apps), Final Remarks
- 31.03. Final Hand In of Course Assignment
Links
- Procoding - JavaScript IDE for iOS & Mac OS X
- CodeCademy.com - Learn Coding
- processing.js - JS Canvas Library
- paper.js - The Swiss Army Knife of Vector Graphics (Canvas)
- d3.js - Data-driven JS Library (incl SVG support)
Literature
Beginners:
- Marijn Haverbeke: Die Kunst der JavaScript Programmierung (DE) / Eloquent JavaScript (EN), ISBN 9873898647878, http://marijnhaverbeke.nl
- Florian Franke: Apps mit HTML5 und CSS3: für iPad, iPhone und Android (DE), ISBN 978-3836218481
Advanced:
- Stoyan Stefanov: O'Reilly JavaScript Patterns, ISBN 978-0596806750
D3:
- Scott Murray: O'Reilly Interactive Data Visualization with D3, ISBN 978-1-4493-3973-9
Processing and Processing.js:
- Daniel Shiffman: Pixels, Patterns, and Processing: A Beginner's Guide to Programming Images, Animation, and Interaction, ISBN 978-0123736024
- Daniel Shiffman: The Nature of Code: Simulating Natural Systems with Processing, ISBN 978-0985930806, http://natureofcode.com