Institute of Computer Science
  1. Courses
  2. 2022/23 fall
  3. Mobile Application Development (LTAT.06.021)
ET
Log in

Mobile Application Development 2022/23 fall

  • Main
  • Lectures
  • Labs
  • Homeworks & Assignments
  • Task submission
  • Extra Materials
  • Best Practices
  • Results
  • Quizes
  • Projects
    • Presentations & Report
    • Teams & Topics
    • Grading & Submission

Team Project (30 pts)

Projects are the final part of the course. You will form teams, come up with your own idea for an Android* application, implement it and finally present your solution & write a short report on it.

*Other platforms are also welcome, if you agree this with the course instructor beforehand

Projects team size: 3-4 persons.

Requirements

The topic is up for you to design. However, we require you to compose your idea based on certain 'building blocks'. They can be picked based on suitability to your project idea. These building blocks have to be integrated and displayed in a cohesive story. However, certain implicit requirements also apply to the projects, regardless of which blocks you choose (see them below).

In the presentation, you have to play through this story while showing all the features of your system and how they provide value to your chosen domain(s).

Some feature blocks include topics not covered in the course so far, giving you a chance to learn something completely new if you wish.

Implicit requirements

Below is required regardless of which blocks you choose:

  • The application does not unexpectedly crash, takes care of lifecycle & permissions management
    • Rotating the screen, hitting home/return button in the app should not cause crashes.
    • The app can take care of requesting necessary permissions and will not crash if they are missing.
  1. Use resource files to manage constants used in your app logic & GUI:
    • Text values - strings.xml
      • Make use of string formatting at least once!
    • Colours, Styles - colors.xml and styles.xml
    • Dimensions used in UI layout files: dimens.xml
  2. The application uses Threading, Coroutines or other background worker mechanisms to delegate some work off the UI thread.
    • The result of the background work should still be notified in the UI.

Functional Blocks

Choose at least 3 functional blocks per your preference

  • Persistent Storage - the app provides persistent storage, choose either:
    • Local, on-device (Room DB)
    • Cloud storage (Firestore DB)
  • Integrating with Web Services or Cloud Services either:
    • Integrate some REST API to your app
      • You may also write your own HTTP API / server code and host it somewhere, e.g. Heroku
    • Use some cloud service, such as Firebase Cloud Messaging
  • Location-awareness or Sensors:
    • Make use of some of the on-device sensors: fingerprint reader, accelerometer, GPS, etc
    • Make use of the Map view
  • Uses Services
    • The app can run a background service
      • A notification should always be displayed when the service is running
      • The user should be able to open the application from the notification and have a way of manually stopping the service.
  • New API: make use of some API not covered in the course so far
    • Choose from:
    1. WorkManager API
    2. Calendar Content Provider
    3. Camera API
    4. MediaPlayer
    5. Bluetooth
    6. Google authentication
    7. App Widget
    8. Something else: consult course instructors if your proposal is OK.

Cohesiveness of the functionality

Note: If you implement a block, but it does not serve a purpose to the general topic/story of the app (e.g. randomly displaying sensor values in a contact manager app), you will lose points for Complexity and Cohesiveness (see grading info), even though you implemented that block. Instead, you should make sure the minimum 3 blocks form a meaningful whole.

For example, using sensor data + a contact manager usually doesn't make sense. But if your scenario involves functionality where sensors are used in a gesture recognition app that has a feature of sharing recognized gesture pattern with friends (contacts) - this makes more sense!

Other remarks.

Feel free to bring in additional assumptions or solutions to complement the above, but make sure to document them in your report.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment