This repository is for module 300CEM 'Android Application Development' at Coventry University. The module runs in 11 weeks, and there are 3 labs per week. Lab exercises are designed to expose different aspects of Android programming to our 3rd year undergraduate students. For the first 2 labs in each week, detailed instructions are given in lab sheets. You'll need to finish them all to get a basic understanding of the contents. Guidelines for the 3rd lab (if present) are normally very brief . Most of our students use the 3rd lab to catch-up, or to explore more advanced topics.
Before you start, you should have some experience with programming and a good knowledge of basic principles of OOP. Understanding of Java syntax is desired but not essential as we have some dedicated sessions for the language itself. The expected outcomes after the module are:
- Demonstrate familiarity with the Java Programming language and the Android Studio.
- Design applications suitable for Android devices.
- Use the Android software development kit and an emulator to develop applications for the Android platform.
- Make use of the main modes of interaction available on a smartphone platform.
This current document contains the module plan for academic year 16-17, for assessment plan please refer to Moodle. Our School also offers an equivalent iOS module, see here.
Contents
Installation of Java JDK/Android Studio, AVD, 'Hello World', navigating Android Studio, Context Menus, getting help
Refs
Ref.[1] chapter 1/2
Contents
Git common operations, logging, debugger's tool window
Refs
Ref.[1] chapter 7/12
Contents
Data type, variable, expressions, identifiers, statements
Code generation, refactoring
Refs
Ref.[1] chapter 3
Ref.[2] chapter 2
Contents
Classes, constants, methods, constructors, modifiers, inheritance
Google Java style
Refs
Ref.[3] chapter 5
Contents
App manifest, XML schema, syntax, styles
Refs
Ref.[3] chapter 4
Contents
IntelliJ build system, Gradle build concepts, Android lib dependencies
Refs
Ref.[1] chapter 13
Contents
MVC pattern, activity lifecycle, layouts, and intents
Pattern usability and design principles: animation, style, layout, components, pattern, usability
Refs
Ref.[4] chapter 2
Android official API guide: Material Design
Contents
Common controls, AdapterView, Spinner, ProgressBar, Android threading
Refs
Ref.[4] chapter 3/4
Contents
Simple listview, complex listview, adapter view, Grid view
Refs
Ref.[4] chapter 4
Android official API guide: List View
Contents
Fragments, specialized fragments, screen orientation
Refs
Ref.[4] chapter 4
Contents
SharedPreferences API, Android Device Monitor, Java IO, writing and reading to files, internal/external storage
Refs
Ref.[5] chapter 11/12
Contents
SQLite API, helper class, pre-creating databases
Refs
Ref.[4] chapter 6
Contents
JUnit essentials, Unit test best practices, local unit testing, mocked unit testing
Refs
Ref.[5] chapter 18
vogella tutorials: Unit Testing with JUnit
Contents
Instrumented unit tests, UI testing using Espresso
Refs
Android official API guide: Testing fundamentals
Contents
Android services, broadcasting, notifications
Contents
Setting up wearable environment, optimize for screen technologies, build watchface service, initialize drawable resources and styles
Refs
Ref.[1] chapter 15
Ref.[3] chapter 15
Contents
ViewPager, Drawable resources, extended View class
Refs
Ref.[3] chapter 9
Ref.[4] chapter 5
Contents
Property animation, View animation
Refs
Ref.[3] chapter 10
Android official API guide: Adding Animations
Contents
Getting location, retrieve updates, display address
Refs
Android official API guide: Making Your App Location-Aware
Contents
Google maps
Refs
Contents
Volume, playback, audio focus
Refs
Ref.[3] chapter 10
Android official API guide: Managing Audio Playback
Contents
Camera2, Streaming video, MediaPlayer, MediaController
Refs
Ref.[3] chapter 11
Android official API guide: Capturing Photos
Refer to Moodle for this.
- Learn Android Studio
- Learn Java for Android Development
- Android Apps for Absolute Beginners
- Beginning Android 4 Application Development
- Introduction to Android Application Development
- Official Android developer website
- Online Android courses on Coursera
- Past student coursework No. 1
- Past student coursework No. 2
- Week1, in Android Studio intro, use something from https://developer.android.com/studio/intro/index.html
- Week2, together with Toast, introduce Snackbar, https://developer.android.com/training/snackbar/showing.html
- Week3, creating old non-generic arraylist example, http://www.javatpoint.com/ArrayList-in-collection-framework
- Week5, together with listview, introduce RecyclerView, viewholder, TextInputLayout, card view etc., https://developer.android.com/training/material/lists-cards.html
This Github repository is set up to host lab materials and code examples we use throughout the module. You can simply read and explore. If you would like a personal copy of it, you'll need to fork it as writing to it is not allowed. In the repository for module 305CDE, there is a README file written by Mark Tyers that explains how to fork repositories and keep them up to date.
A lot of colleagues and students contributed to this set of material by providing comments and/or corrections. I would especially express my thanks to the following people: Mark Tyers, Sumeet Gopiani, Adam Towse