IFD:InsideMobile: Difference between revisions

From Medien Wiki
 
(14 intermediate revisions by the same user not shown)
Line 5: Line 5:
''Capacity:'' max. 20 students<br/>
''Capacity:'' max. 20 students<br/>
''Language:'' English<br/>
''Language:'' English<br/>
''[[Zeitraster|Date]]:'' to be announced, most likely Tuesdays, 13:30 to 15:00<br/>
''[[Zeitraster|Date]]:'' Tuesdays, 13:30 to 15:00<br/>
''Location:'' Marienstr. 7b, Room 105<br/>
''Location:'' Marienstr. 7b, Room 105<br/>


''First Meeting:'' to be announced, most likely Tue, April 14th, 15:15
''First Meeting:'' Tue, April 14th, 13:30




== Beschreibung ==
== 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 ==
== 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 ===
=== Expected outcome ===
Line 22: Line 26:
** how to use live editors to improve code quality
** how to use live editors to improve code quality
** how to debug
** how to debug
* basic programming knowledge of JavaScript
* advanced programming knowledge of JavaScript
* introduction to Swift
* introduction to Swift


Line 34: Line 38:
* or a scientific paper, researching a specific location based / mobile topic
* or a scientific paper, researching a specific location based / mobile topic


It is recommended to also visit my other course: [[IFD:OutsideMobile|Outside Mobile]] will look at mobile applications stressing the word ''mobile'' - We're going out and test stuff! Awesome!
'''It is recommended to also visit my other course: [[IFD:OutsideMobile|Outside Mobile]] will look at mobile applications stressing the word ''mobile'' - We're going out and test stuff! Awesome!'''


== Topics ==
== Topics ==
Line 46: Line 50:
** Web App or Native?
** Web App or Native?
** The App Store
** The App Store
** Fake it 'til you make it (Prototyping Apps)
* Technologies
* Technologies
** '''Location'''
** '''Location'''
Line 52: Line 57:
* Programming
* Programming
** Revisiting the basics (Variables, Functions, Objects)
** Revisiting the basics (Variables, Functions, Objects)
** Communicating with JSON
** The new '''Swift''' Programming Language
** The new '''Swift''' Programming Language
** (upon general interest:) How was it with Objective-C?
** (upon general interest:) How was it with Objective-C?
** Unleashing the power of '''JavaScript'''
** Unleashing the power of '''JavaScript'''
** '''JavaScript Design Patterns'''
** '''JavaScript Design Patterns'''
** JavaScript Toolkits/Frameworks
** Server-side technologies (PHP, node.js, ...)
** JavaME
** JavaME
** Xcode and Eclipse
** Xcode and Eclipse
Line 67: Line 75:


== Registration Procedure ==
== Registration Procedure ==
To register for the course, please send an eMail due to March 31st with the Topic "Registration for {{PAGENAME}}" to Michael.Markert (at) uni-weimar.de,
 
'''THIS COURSE IS FULL. PLEASE DO NOT WRITE, AND DON'T COME WITHOUT ACCEPTANCE NOTIFICATION. NO EXCEPTIONS. I KNOW, THAT'S UNFAIR, SORRY.'''
 
<s>To register for the course, please send an eMail due to April 8th with the Topic "Registration for {{PAGENAME}}" to Michael dot Markert (at) uni-weimar.de,
incuding the following informations:
incuding the following informations:
* First name, last name
* First name, last name
Line 73: Line 84:
* matriculation number (Matrikelnummer)
* matriculation number (Matrikelnummer)
* Valid email address @uni-weimar.de (no other mailing addresses will be accepted)
* Valid email address @uni-weimar.de (no other mailing addresses will be accepted)
* Let me know about your preliminary programming knowledge (don't google it, there's no right and wrong, I just want to see where you stand):
* 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 local variable is:  
** A function is:  
** A function is:
** "OOP." stands for:
** Swift is:  
** "Swift" is:  
** I love JavaScript because:  
** I love JavaScript because:  
** I hate 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)
* One short sentence why you want to (have to) be in this course (german or english)


Line 87: Line 98:
* What you've written in "why I want to be in this course" and how serious you are about this course
* 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.
If there are more than 25 registrations, there might be a kick-off event with an evaluation competition. </s>


== Leistungsnachweis ==
== Leistungsnachweis ==
Line 119: Line 130:
This is a *preliminary* syllabus. Please check back regularly for latest updates.
This is a *preliminary* syllabus. Please check back regularly for latest updates.


# 14.04. Intro, Overview, Semester Planning
# Tue, 14.04. Intro, Overview, HTML and CSS refresher
 
# Tue, 21.04. '''File Management:''' editors, git, naming conventions, project management,<br/>'''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, <br/>'''Software:''' models, classes, objects
# <del>Tue, 05.05.</del> 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, <br/>'''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 <br/>'''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


[[Category:Courses]]
[[Category:Courses]]
[[Category:Excursion]]
[[Category:Fachmodul]]
[[Category:Fachmodul]]
[[Category:Going Mobile]]
[[Category:GPS]]
[[Category:HTML5]]
[[Category:HTML5]]
[[Category:IFD]]
[[Category:IFD]]

Latest revision as of 17:05, 1 June 2015

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.

  1. Tue, 14.04. Intro, Overview, HTML and CSS refresher
  2. 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
  3. Tue, 28.04. Technology: platforms, native/web, input, data persistence, features, languages, toolkits,
    Software: models, classes, objects
  4. Tue, 05.05. No course, because Michael is presenting on a conference in UK
  5. Tue, 12.05. Software: objects, programming languages, functions, datatypes
  6. Tue, 19.05. Software: events, synchronous and asynchronous code, networking (xhr), CORS, web APIs
  7. Tue, 26.05. Visuals: WebGL, Canvas, SVG, HTML Elements, Maps, CSS3, WebView, MapView, ViewControllers
  8. Tue, 02.06. Animation: CSS transition property, animation, raf, Unity,
    HTML-Elements: forms, inputs..., Mobile UI Frontend Frameworks
  9. Tue, 09.06. Input, Sensors, Accessories: location, heading, orientation, touch, gestures, BT, camera, microphone, LED
  10. 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
  11. Tue, 23.06. Native App Development: Xcode, Obj-C, Swift, Eclipse, Java
  12. Tue, 30.06. Marketing: price tier, taxes, audience, review process, support, bugreports, updates, texting, internationalization, screenshots, videos, promos, ratings
  13. Tue, 07.07. to be announced