Introduction
This repository is for module 300CEM 'Android Application Development' at Coventry University. The module runs in 10 weeks, and there are 2 labs per week. Lab exercises are designed to expose different aspects of Android programming to our 3rd year undergraduate students. Detailed instructions are given in these lab sheets. You'll need to finish them to get a good understanding of the contents.
Before you start, you should have some experience with programming and a good knowledge of OOP. Understanding of Java syntax is desired but not essential as we have some dedicated sessions for it. The expected outcomes after the module are:
- Analyse the Android platform components and their uses.
- Design software suitable for Android platform.
- Develop apps that can interact with web service APIs
- Develop apps that can communicate with sensors built into the phone hardware
This current document contains the module plan for academic year 17-18, for the assessment please refer to Moodle. Our School also offers an equivalent iOS module, check out this GitHub page if interested.
Teaching plan
Week 1 Android Studio
Introduction to Android Studio
Contents
Installation of Java JDK/Android Studio, AVD, 'Hello World', navigating Android Studio, Context Menus, getting help
Refs
Ref.[1] chapter 1/2
Debugging
Contents
Git common operations, logging, debugger's tool window
Refs
Ref.[1] chapter 7/12
Week 2 The Java language
Language concepts
Contents
Data type, variable, expressions, identifiers, statements
Code generation, refactoring
Refs
Ref.[1] chapter 3
Ref.[2] chapter 2
Classes and objects
Contents
Classes, constants, methods, constructors, modifiers, inheritance
Google Java style
Refs
Ref.[3] chapter 5
Week 3 XML and Gradle
XML
Contents
App manifest, XML schema, syntax, styles
Refs
Ref.[3] chapter 4
Gradle
Contents
IntelliJ build system, Gradle build concepts, Android lib dependencies
Refs
Ref.[1] chapter 13
Week 4 Simple Views and Layouts
UI design
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
Simple and complex view
Contents
Common controls, AdapterView, Spinner, ProgressBar, Android threading
Refs
Ref.[4] chapter 3/4
Week 5 AdapterViews and Fragments
AdapterViews
Contents
Simple listview, complex listview, adapter view, Grid view
Refs
Ref.[4] chapter 4
Android official API guide: List View
Fragments
Contents
Fragments, specialized fragments, screen orientation
Refs
Ref.[4] chapter 4
Week 6 Data persistence
SharedPreferences and files
Contents
SharedPreferences API, Android Device Monitor, Java IO, writing and reading to files, internal/external storage
Refs
Ref.[5] chapter 11/12
SQL database
Contents
SQLite API, helper class, pre-creating databases
Refs
Ref.[4] chapter 6
Week 7 Graphics and animation
Graphics
Contents
ViewPager, Drawable resources, extended View class
Refs
Ref.[3] chapter 9
Ref.[4] chapter 5
Animation
Contents
Property animation, View animation
Refs
Ref.[3] chapter 10
Android official API guide: Adding Animations
Week 8 Location services and Google maps
Location services
Contents
Getting location, retrieve updates, display address
Refs
Android official API guide: Making Your App Location-Aware
Google maps
Contents
Google maps
Refs
Week 9 Services and wearables
Notifications on Android wearables
Contents
Android services, broadcasting, notifications
Android wear apps
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
Week 10 Testing
Unit testing
Contents
JUnit essentials, Unit test best practices, local unit testing, mocked unit testing
Refs
Ref.[5] chapter 18
vogella tutorials: Unit Testing with JUnit
Instrumented testing
Contents
Instrumented unit tests, UI testing using Espresso
Refs
Android official API guide: Testing fundamentals
Reading list
- Learn Android Studio
- Learn Java for Android Development
- Android Apps for Absolute Beginners
- Beginning Android 4 Application Development
- Introduction to Android Application Development
Some useful resources
- Official Android developer website
- Online Android courses on Coursera
- Past student coursework No. 1
- Past student coursework No. 2
About this Github repository
This Github repository is set up to host lab materials and code examples we use throughout the module. You can simply read and explore. However, writing to this repository is now allowed. If you would like a personal copy of it, you'll need to fork it. Read GitHub help on Fork A Repo for further info.
A number 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