In this elective module students will learn about the relevance, challenges and technologies of mobile software development. After taking part in this module they will be able to design, implement and manage mobile apps for smartphones. This module enables students to deal with their own mobile systems for other study projects, for their final theses or on job.
Learning Outcome
After taking part in this module students can design, develop and manage mobile software on their own. Therefore they learn about mobile computing following an incremental-iterative approach and apply their knowledge within a project by
- developing software for mobile terminals,
- structuring mobile software into its main components,
- designing mobile software architectures,
- reacting on the challenges of mobile networks,
- and managing the distribution of an application.
Schedule
Date | Lecture | Project Milestone |
---|---|---|
Oct 04 | Kick Off | |
Oct 11 | Hello Mobile World | |
Oct 18 | Working on the Frontend | Project idea and Wireframes |
Oct 25 | Working on the Backend | |
Nov 1 | Holiday | |
Nov 8 | Storing Data | First Activities implemented |
Nov 15 | Distributing Mobile Apps | |
Nov 22 | Project Week | |
Nov 29 | Handling Asynchronism | Background Operations & Database |
Dec 06 | Improving Mobility | |
Dec 13 | Poster Session | Alpha in PlayStore |
Dec 20 | Holidays | |
Dec 27 | Holidays | |
Jan 03 | Block Week | |
Jan 10 | Adding Smart Components | Data exchange with other users via web server |
Jan 17 | Managing Mobile Software | |
Jan 24 | Retrospective | Short final presentation |
Feb 01 | Exam Week | |
Feb 17 | Deadline project report (by e-mail!) |
Additional Material
Hello Mobile World
- Android Developer Website
- Android Studio and SDK
- Some information on how to use git
- Application fundamentals
Working on the Frontend
- Managing the Activity Lifecycle
- User Interface
- Layouts
- Input Events and Listeners
- Demo source code discussed during class
- Icon resources: Noun Project, Material Design Icons and Android Asset Studio
Working on the Backend
- Running in a Background Service
- Scheduling Repeating Alarms
- Connecting to the Network
- Keeping Your App Responsive
- Demo source code discussed during class
- Some relevant classes: Service, IntentService, AsyncTask, AlarmManager, HttpURLConnection
Storing Data
- General guide on saving data
- Saving key-value sets
- Saving files
- User interface for settings and preferences
Distributing Mobile Apps
Handling Asynchronism
- Broadcast receiver
- Monitoring the battery level and charging state
- Sensors overview
- Receiving location updates
- Building a location-aware application
- Location and Sensor APIs
- Working with permissions
- Working with System Permissions
- Requesting permissions during runtime
- Notifying the user
Improving Mobility
- Security with HTTPS and SSL
- Managing Network Usage
- DownloadManager
- Reducing Network Battery Drain
- GCM Network Manager
- Effective Network Batching
- Optimizing Downloads for Efficient Network Access
- Caching
- Connectivity Patterns
- Connectivity Monitoring
- Transmitting Network Data Using Volley
- Telephony Manager
- Telephony
- Smaller Serialized Data
Adding Smart Components
- Near Field Communication
- NFC App for debugging and testing tags
- Android Wear
- Connectivity: Bluetooth
- Creating and Running a Wearable App
- Building Apps for Wearables
- Creating Wearable Apps
Managing Mobile Software
Registration
- This WPF is available for bachelor AI/MI/TI/WI
You can apply for this WPF module through HoPS.- The course will be on German, most materials will be on English.
- The kick off meeting will be on Oct 4th, 10 am.
Useful Links
- Download Android Studio
- Getting started with Android Studio
- Getting started with developing for Android
- Android design guideline – Material Design
- Google Maps – Android – Access Key
Video Tutorials
- Video2Brain – You can get full access using VPN of TH Köln.
Going Further
- Later in the semester you will find some Links here that will help you getting further into Developing for and with Android.