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 |
---|---|---|
April 5 | Kick Off | |
April 12 | Hello Mobile World | |
April 19 | Working on the Frontend | App components designed |
April 26 | Working on the Backend | |
May 3 | Storing Data | Data model designed |
May 10 | no meeting (Profil2 week) | |
May 17 | no meeting (Pfingstdienstag) | |
May 24 | Distributing Mobile Apps | App available on app store |
May 31 | Handling Asynchronism | |
June 7 | Improving Mobility | |
June 14 | External Guests | Poster presentation |
June 21 | Adding Smart Components | |
June 28 | Managing Mobile Software | |
July 5 | Retrospective | Final presentations |
July 29 | -/- | Deadline project report (by e-mail) |
Useful Links
- Slides and additional material are available in the wiki (
only within university network or VPN,login with ADV-/Gummersbach-ID) - Wiki (
only within university network or VPN, login with ADV-/Gummersbach-ID) - Repository with source code of this class
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
Working on the Frontend II
Managing Mobile Apps
Registration
You can apply for this WPF module through HoPS. The kick off meeting will on April 5th in the moxd lab (room 3.209, formerly known as TDI Labor). The course will be on German, but most material will be on English.
Contact
- Please contact Prof. Dr. Matthias Böhmer for any questions.