Mobile Application Development: Mandatory Assignment: Bird Watching
This text is preliminary: I might add more requirements, hints, etc.
This is the mandatory assignment for the 4th semester elective course Mobile Application Development.
Your solutions to this assignment must be "passed" before you can attend the 4th semester elective exam.
The case: Bird Watching aka. Bird Control
I want a mobile application to register birds that I have seen.
Some user stories
- As as user I must be able to login to the system. If I have previously logged in on my device, the login procedure should happen automatically.
- As a user I must be able to log out.
- As a user I must be able to register an observation:
Time, position (latitude, longitude), bird species.
Time + position must be taken from my device.
- As a user I must be able to register an observation:
Time, position (latitude, longitude), bird species.
Time + position added manually by the user.
- As a user I must be able to see/search my own observations.
Different sort orders
- As a user I must be able to see/search other users observations.
Different sort orders.
- As a user I must be able to delete my own observations.
- more ...
For your inspiration
Some apps for your inspiration
The back-end: REST API
I have created a simple REST API for you application.
If you want more more methods in the REST API, please tell me - maybe I will implement the methods.
Sparse documentation of the REST API (coming soon ... more methods)
Hint: Try the REST methods from Postman before you start using the methods in your application.
Code quality
Your code must be readable to humans as well as compilers:
- Avoid long lines
- Avoid long methods
- Use good naming of variables, methods, id's etc.
- Avoid most comments: Write better (more understandable) code
Run the static code analyzer from Android Studio:
- Analyze menu -> Inspect Code ...
Run "Inspect Code", look at the suggestions - you decide if you want to follow the suggestions.
Technical requirements
Activities
- The application must at least two (probably more) Activities
- Activities must be connected using Intents.
At least on of the intents must carry data.
- At least one Activity must be programmed in Java
- At least one Activity must be programmed in Kotlin
Screen size and density
- The application must look OK on screens of different sizes (phones and tablets) and densities.
Try you application using emulators with different screen sizes 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
AppBar
- The application must have an AppBar
REST
Gestures
- The application must use swipe or other gestures.
SharedPreferences
- The application must use SharedPreferences to hold the users user name (and password), and maybe other preferences.
Firebase
- Google Firebase must be used for authentication.
- You may use Google Firebase for other things, as well.
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