View on GitHub

Mobile App Development (MAD)

Mobile App Development class for University of Applied Sciences Vienna

Welcome to Mobile App Development (MAD)!

This class will teach the fundamentals of Mobile Development. Since this is such a broad topic, we’ll focus on a few key aspects and learn those really well. We’re going to be doing native iOS development using Xcode, Swift, and UIKit.

The class is divided into a few session of lectures and exercises. During the lecture sessions, I’ll try to make things interactive - apart from a regular presentation with slides and a few case studies, we’ll also do some live coding sessions together.

For the exercises, I’ve prepared a few programming assignments for you. There will be fixed exercises and freeform exercises.

The fixed exercises are pretty firm in their scope and tasks. They’re almost like an interactive tutorial, but without the solutions. The goal is for you to gain competence in the most important aspects of iOS development that everyone should know about.

The freeform exercises are much more flexible. You can choose which topics you’d like to work on and pick from a variety of frameworks to learn and features to implement. To learn more about the exercises, see this page.

This class is very new, so you’ll probably encounter some rough edges and run into problems in these exercises. Maybe something isn’t specified that should be, or maybe something is missing, or some information is conflicting. Since this will definitely happen, if you’re stuck, or feel something is more difficult than it should be, please contact me. I’m always happy to help.

This is a living document. If you have suggestions for improvements, or found a mistake, please send me a message. Or even better, fork the repo on GitHub and send me a pull request.

Required previous knowledge

This is a fairly intense class that involves a lot of programming. You will need very good skills in object oriented programming to keep up. Specifically, you should understand and be able to apply the following concepts and technologies:

Don’t worry if you’re missing a few things on this list - you can learn them as you go. But if a lot of this list is foreign to you (especially the first bullet), you might have a very hard time in this class. In that case, I’d highly recommend reading up on these concepts before class starts.

Previous knowledge in Objective-C, Swift or iOS Development is not required.

Lectures & Topics

I’ve divided the lecture topics into lecture blocks. One lecture block may span multiple lectures. This way I can stay flexible in how many lectures I dedicate to one block.

You can find all the details on the lectures here.

Exercises

There will be multiple programming exercises for you to do during the semester. You can find all the details here.

Support or Contact

For quick answers to questions, you can post to the class’s Telegram group. I don’t want to post the invite link here publicly, but you should’ve received it via email. I monitor the group frequently to quickly help you during the programming assignments.

Any questions, comments or feedback on the class? Send me an email any time. If you prefer, you can also send me a message in German. I’m always happy to help.