This page will hold lecture notes, and pointers to other useful material for the G54MDP course.
The 2011 exam can be found here.
Details about the expected deliverables and marking criteria for the Group Project can be found in this document.
Lectures are on Tuesdays at 1pm (in LT1) and Wednesday mornings at 9am (I know… — in B18 in the Amenities building).
There is not enough time in the course to do justice to either the iOS or Android SDK, let alone both. Therefore, it is expected that as well as attending lectures you will be looking at the Android and iOS SDKs to build on the material covered in the lectures.
We discussed the characteristics of various mobile devices (including various Android handsets, the Amazon Kindle, iPad and iPhone). These characteristics will become important as we study the rest of the course, and use them to inform the way we im plement our software.
A brief overview of the ARM processor and the hardware that is used to make a mobile device.
Details about ARM's big.LITTLE processor family can be found here.
Video looking inside the iPhone and discussing the patent battles over mobile devices.
Most mobile device SDKs, make use of the Model-View Controller (MVC) design pattern, this lecture briefly revisits the structure.
There's a song about MVC, here.
A broad-view of the Android platform.
No notes for this lecture since it was given by demonstration. Equivalent material is covered in Building an Android Application 101 from Google I/O 2008.
Additional material is found on developer.android.com, where you can download and install the SDK and emulator. In particular, the following tutorials might be helpful:
An introduction the Android UI components, Activities and the use of Intents to pass messages between them. The code from this lecture is included with the sample code for lecture ten.
The following pages from Android SDK, make useful reading.
The code developed during this lecture is available here.
A video from Google I/O 2010 on common Android UI Design Patterns was shown.
A look at how the Dashboard design pattern can be implemented by manipulating the layout XML files.
An overview of what services are, and how and why you would use them in your app.
The code developed in this and lecture seven is available here.
An overview of how to store data on an Android Device.
The code developed in this lecture is available here.
Continuing the overview of how to store data on an Android Device, this lecture looks at the use of a ContentProvider
to expose data to other apps on the system.
See also the Notepad sample provided with the Android SDK.
Looking at the implications of Touch-based Interaction and how to handle Touch-based input and multitouch gestures. Note: this lecture also looked at creating custom-drawn views, see the source code and linked documentation for details.
The code developed in this lecture is available here. Please note that TouchViewer
is an iPad application I developed to demonstrate multitouch input, and not an Android project. Similar functionality is p
rovided by TouchTest
, for a single input.
Looking at how to optimize your app for both speed and power.
A video from Google I/O 2010 on Android Best Practices for Beginners was shown.
Looking at how to optimize yourapp for power.
Labs are on Tuesdays and Thursdays at 17:00, in CS-A32. The Android SDK has been installed on the school machines specifically to allow you to create Android apps – please bear with us if there are any teething troubles. It has been set up to sto
re some temporary files in your UNIX home directory (in Private/android
accessible from Windows as H:\Private\android\
).
You may attend either lab, or both, or neither, as you wish. However, with the exception of the first exercise, all exercises will be marked and count towards your final mark, so if you do not attend the labs then you will need to complete them in your own time.