Android Application Development

Android-Tools-01

We will then install and set up effective tools for Android application development. This will include a specially equipped version of Eclipse + an emulator. The emulator we are using - Genymotion - is a third party application not strictly part of the android build tools. However it is considerably faster and more useful than the standard emulator provided with the Android SDK.

Donation-01

Here we proceed to explore in detail the creating of a simple activity class + the associated layout. This process will seem quite complex on first contact - but as we proceed through the labs over the next few sessions the deep structure should start to emerge.

Donation-02

Introduce a second screen to display the list of donations made by the user. In addition, enable our app its first "Model" objects, which will be used to store the individual donations made by the user.

Donation-03

We continue the implementation of Donation to including the welcome, sign up and login. Support these views with a User model, and validate the users on log in.

MyRent-00

We start a new application in this lab, which will be succeeded by numerous version over the next few topics. In this lab the focus is on explaining the essential 'plumbing' of the app, and introducing the first Interface based listener you may have encountered.

MyRent-01

In this version of MyRent, we introduce a range of UI Widgits to evolve the UX into something more useful. These widgits will be 'active', meaning that the host Activity will be intercepting and responding to events the user may generate when interacting with the application.

Event-Handling

This is a short lab whose aim is to provide a detailed explanation of event handling via a simple standalone non-android application

Event-Handling-Solution

This is a solution to the event handling lab.

MyRent-02

Our current version of MyRent (V01) only permits a single Residence to be entered. In this lab we seek to manage a list of residences. To do this we need to extend the model in include a new class - 'Portfolio' - to manage all our residences. We will also need a new Activity - ResidenceListActivity - to display the full portfolio of residences.

MyRent-03

In a significant update to the app, we introduce navigation within the app using an Action Bar. This will allow us to create new residences, or navigate to existing ones. Additionally, we will explore a simple date picker dialog to all the user to select a registration date for the residence.

MyRent-04

Introduce into MyRent a serialization mechanism to save/restore the residence list to a file. The app will load the contents of this file on launch, and update the file if residence data is updates. In addition, continue to evolve the navigation support in the app, enabling a 'up' navigation in the action bar from the ResidenceActivity to the ResidenceListActivity.

MyRent-05

Activities within an application can reach out to activities in other applications to perform specific tasks. In this lab we introduce two new features - selecting a contact from the phone's contact lists, and sending an email to the selected user. Both of these features require the usage of 'implicit' intents.

MyRent-06

Modern Android Activities tend to be composed of one or more Fragments - as opposed to consisting of a single layouts. This introduces a slightly more complicated creation process. However, using fragments opens up other opportunities we will explore in later labs.

MyRent-07

In this lab we introduce a facility to select and delete a subset of residences in the list view. The selected items need not be contiguous. Also, introduce a new feature to support 'swipe' interaction. This allows a user to swipe left/right to page through the residence list.

TDD-01

Explore the Unit test features of Play by writing some tests to verify the current behavior of the User and Message classes for the spacebook app.

MyRent-08

Introduce a Google Map including necessary supporting resources such as Google Play Services Library and a personal API key. Additionally, support a landscape layout, validation of geolocation input, immediate mirroring any changes in this input in the view title and support for smaller small factor devices.

JPA-01

Build new project to explore JPA relationships in more depth. in particular, define a model with OneToMany, MnyToOne and ManyToMany relations - and test each of the relationships via unit tests in order to ensure they are correctly implemented.

JPA-02

Explore the model developed in the last lab a little further by attaching a Semantic UI. Experiment with UI elements that change the model.

MyRent-09

Make use of the device camera to take a photo go display as thumbnail a single-photo gallery. Also, support saving the photo

Donation-04

Create a version of the the donation app as a play project. Expose an 'API' from this app to enable other programmes to use it. Try to access the API from a browser, and also from a special purpose browser extension.

Donation-05

Create a new standard java project specifically to test the API we have developed in donation-service-play project.

Donation-06

Deploy the donation-service app to Heroku. This will require a heroku account + a locally installed git tool set.

Donation-07

Reintroduce the Donation Android app, refactor it to interact with the donation-play-service

Donation-08

Rework the Donation-android activities to support signup and donate activities using the REST service.

MyTweet-Assignment-01

The aim of this lab is to facilitate the creation of a walking skeleton of the baseline Android MyTweet assignment 2 app.

Donation-09

Refactor the the Donation Play Service to capture a OneToMany relationship from User->Donation. Then, reflect this relationship in the API.

Donation-10

With the revised service implemented and deployed, upgrade donation-android to use this new API.

Donation-12

Refactor Donation Android client to refresh donations list using a background service in a non-blocking call, replacing the present Response interface.

MyTweet-Assignment-02

This is a follow-on lab to MyTweet-Assignment-01. The lab provides guidance but not comprehensive instructions (which is reasonable given that it relates to an assignment). The guidance addesses issues that might otherwise prove quite difficult to resolve.

Donation-11

Using the latest Semantic UI, introduce a simple but well structured User Interface into the donation-service-play application.

MyTweet-Assignment-03

This lab has been developed to assist in the preparation of the current assignment, which comprises the development of a MyTweet suite of apps. The lab explains how to capture geolocations using map markers and also how to display a user's list of residences as markers on a map. A version of MyRent has been refactored to include sample features since MyRent structure closely resembles that of MyTweet.