Android Application Development: Mandatory assignment
This text is preliminary: I might add more requirements, hints, etc. later.
This is the mandatory assignment for the 4th semester elective course Android Application Development.
Your solutions to this assignment must be "passed" before you can attend the 4th semester elective exam.
The case: Anglers log
When you go fishing you want to be able to register your catches - and compare it to other anglers catches.
You must develop an Android application to support this.
Some user stories
As a user, I want to
- See a list of all catches
sort the list by breed (type of fish), date, name of angler, etc.
- Choose one of the catches and see its details
- Add a new catch
Using my current position (latitude, longitude)
or a map to select the position
using my current location (name of location)
using current weather, obtained from a 3rd party web-service.
- See all catches on a map
- See my catches on a map
- do a lot of other things ...
Apps for your inspiration
Similar(?) Android apps, for you inspiration
The back-end
My colleague Ebbe has developed a back-end for the system. The back-end has a REST service.
Anglers Log API documentation
Please, note that the API and its documentation is subject to change.
The API comes in two versions:
- v1 no tokens
Start using this version of the API.
- v2 with tokens
The user registers and obtains a token. This token must be used in all future requests to the REST service
Hint: Start trying the v1 service using Postman.
Technical requirements
Activities
- The application must at least two (probably more) Activities
Screen size and density
- The application must look OK on screens of different sizes (phones and tablets) and densities.
Screen orientation
- The application must look OK in landscape and portrait orientation.
- No data is lost during change of screen orientation.
Lists
- The application must use list: ListActivity and/or ListView
Gestures
- The application must use swipe or other gestures.
SharedPreferences
- The applications must use SharedPreferences to hold the users preferences, etc.
Error handling
- The application must inform the user about communication errors (exceptions), etc.
Just ignoring exceptions is not acceptable
- The application must use logging, specially for error conditions Log.e(..., ...)
Extras
- Use POP 2.0 Protototyping on Paper to help you design the user interface of you application.
- Internationalization and localization.
- The v2 (version 2) of the REST API, using tokens.
- Ability to work offline
Sometimes you go fishing in places with no network.