Werkmodul | Fachmodul
Instructor: Michael Markert
Credits: 6 ECTS, 2 SWS
Capacity: max. 20 students
Language: English
Date: Tuesdays, 13:30 to 15:00
Location: Marienstr. 7b, Room 105
First Meeting: Tue, April 14th, 13:30
Beschreibung
Dieser Kurs richtet sich an Studentinnen und Studenten mit bereits vorhandener Programmiererfahrung. Wir werden uns die neuesten Technologien und Strategien zur App-Entwicklung ansehen und einen Überblick über native und web-basierte Technologien geben. Inhalte und Schwerpunkte - siehe "Topics".
English Description
This course (esp for intermediate students with preliminary programming experiences) will deal with the latest mobile development technologies like Web Apps using HTML5 and Javascript as well as native development with the new Swift Programming Language. Android will also be mentioned, though it's not the focus (simply because Michael is an iOS developer). We'll briefly look at some foundations, but the course aims to give some good tools and strategies, e.g. using live coding editors, splitting up complex projects in small pieces of easier to handle code - and (most important!) how to use a debugger.
We'll also look at available hardware options and how to use and interact them. You'll learn when and where you'll need the native SDK and that hybrid or web apps have become very powerful.
Expected outcome
- a good overview of what's possible and what not
- improved general programming skills
- how to use live editors to improve code quality
- how to debug
- advanced programming knowledge of JavaScript
- introduction to Swift
Final Assignment
The final assignment is pretty open, it could be (either, not all!):
- a prototype of an app (or an app of course!)
- a (wearable) accessory (prototype or working proof-of-concept)
- an app-dummy (video-concept),
- a detailed app concept
- or a scientific paper, researching a specific location based / mobile topic
It is recommended to also visit my other course: Outside Mobile will look at mobile applications stressing the word mobile - We're going out and test stuff! Awesome!
Topics
Focused topics appear in bold.
- Overview
- Native Apps: iOS, Android
- Web Apps: HTML5, JavaScript
- Hybrid Apps
- Web App or Native?
- The App Store
- Fake it 'til you make it (Prototyping Apps)
- Technologies
- Location
- Sensors (Magnetometer, Accelerometer, Device Motion/Orientation)
- Communication (WebSockets, Bluetooth ...)
- Programming
- Revisiting the basics (Variables, Functions, Objects)
- Communicating with JSON
- The new Swift Programming Language
- (upon general interest:) How was it with Objective-C?
- Unleashing the power of JavaScript
- JavaScript Design Patterns
- JavaScript Toolkits/Frameworks
- Server-side technologies (PHP, node.js, ...)
- JavaME
- Xcode and Eclipse
- Coding
- Why use live editors?
- How to debug
Prerequisite
- Active and regular participation, Freude am Programmieren
- Some intermediate programming knowledge in at least one programming language (HTML is not a programming language!). You should know what variables and functions are (see registration procedure)
Registration Procedure
THIS COURSE IS FULL. PLEASE DO NOT WRITE, AND DON'T COME WITHOUT ACCEPTANCE NOTIFICATION. NO EXCEPTIONS. I KNOW, THAT'S UNFAIR, SORRY.
To register for the course, please send an eMail due to April 8th with the Topic "Registration for InsideMobile" to Michael dot Markert (at) uni-weimar.de,
incuding the following informations:
- First name, last name
- program and semester (Studienprogramm und Fachsemester)
- matriculation number (Matrikelnummer)
- Valid email address @uni-weimar.de (no other mailing addresses will be accepted)
- Let me know about your preliminary programming knowledge (be brief, don't google it, there's no right and wrong, I just want to see where you stand):
- A local variable is:
- A function is:
- Swift is:
- I love JavaScript because:
- I hate JavaScript because:
- I like programming because:
- One short sentence why you want to (have to) be in this course (german or english)
If there are more than 15 registrations, students will be accepted depending on:
- Order (first come, first serve)
- If you are in a Project of Interface-Design (see Prof. Jens Geelhaar's semester projects this semester)
- What you've written in "why I want to be in this course" and how serious you are about this course
If there are more than 25 registrations, there might be a kick-off event with an evaluation competition.
Leistungsnachweis
- Active and regular participation
- Progress on the individual project you are working on
- Creating a piece of work / concept / app / scientific paper:
- The expected minimum should be a concept of a location based mobile app with a description, storyboards and (if possible) a functional dummy
- As an alternative to a concept, scientific papers that evaluate existing or new location based mobile apps are also welcome
- It would be desirable if we get enough material by beginning of July to set up a small exhibition for the Summary
- 2 minute presentation at the IFD:Showreel
Projects and Documentations
Please copy this entry (NameOrPseudonym) and create your own subpage:
- Explanation of the Media-Wiki code for a link:
- The square brackets create an internal link here in this wiki (linking to a new or existing page).
- The slash "/" at the beginning is creating a subpage of this page
- /NameOrPseudonym <-- please copy this link and add your own name (this wiki is public, btw!).
Help:
Here's an overview: Wiki Editing Help. There's also a help page on how to add images.
The easiest way is to push the image button in the editor toolbar above this textfield, give it a nice name and save. Then follow the newly created link and you'll get prompted to upload a file. Please respect copyrights and only upload material you own!
Target Group
- In general open to all students, but esp. suited for
- Bachelor- and Master students of Media-Arts & Design
- Master students Media-Architecture
Syllabus
This is a *preliminary* syllabus. Please check back regularly for latest updates.
- Tue, 14.04. Intro, Overview, HTML and CSS refresher
- Tue, 21.04. File Management: editors, git, naming conventions, project management,
Prototyping: designing, dummies, demos, wireframes, problems (what's to be done?) and breaking into units/tasks - Tue, 28.04. Technology: platforms, native/web, input, data persistence, features, languages, toolkits,
Software: models, classes, objects Tue, 05.05.No course, because Michael is presenting on a conference in UK- Tue, 12.05. Software: objects, programming languages, functions, datatypes
- Tue, 19.05. Software: events, synchronous and asynchronous code, networking (xhr), CORS, web APIs
- Tue, 26.05. Visuals: WebGL, Canvas, SVG, HTML Elements, Maps, CSS3, WebView, MapView, ViewControllers
- Tue, 02.06. Animation: CSS transition property, animation, raf, Unity,
HTML-Elements: forms, inputs..., Mobile UI Frontend Frameworks - Tue, 09.06. Input, Sensors, Accessories: location, heading, orientation, touch, gestures, BT, camera, microphone, LED
- Tue, 16.06. Audio: HTMLaudio, webAudio, AVAudio, openAL, CoreAudio
JS Libraries: Overview & D3.js, Three.js, Snap.js, Paper.js, Processing.js, P5.js, node.js - Tue, 23.06. Native App Development: Xcode, Obj-C, Swift, Eclipse, Java
- Tue, 30.06. Marketing: price tier, taxes, audience, review process, support, bugreports, updates, texting, internationalization, screenshots, videos, promos, ratings
- Tue, 07.07. to be announced