Bonus Feature Ideas
Overview
Implement one or more of the following advanced features in your final server-integrated project to earn +1 extra point for the practical exam.
Note: You are welcome to propose your own feature idea, but please confirm it with the lab instructor first!
Ideas Based on Lecture Topics
Animations
- Implement custom screen transitions (e.g., shared element transitions from the list item to the detail/update screen).
- Add advanced list animations for create/delete operations (beyond the default).
- Create a loading state animation (e.g., a "shimmer" effect or skeleton screen) while data is being fetched from the server.
System Services & Sensors
- Camera Integration: Add a feature to use the device's camera to take a photo and attach it to an item (e.g., a profile picture, or a photo for a list item).
- Location Services: Use the GPS sensor to "tag" an item with the user's current location when it's created or updated.
- Advanced Background Sync: Use
WorkManager(Android) or a similar background task mechanism for more robust and efficient offline-to-online data synchronization.
Securing Mobile Apps
- Local Authentication: Implement a simple login/register screen or a local PIN/biometric lock to protect access to the app's data.
- Data Encryption: Encrypt the local database (e.g., using SQLCipher) to secure data at rest.
Coroutines, Flow & Reactive Programming
- Reactive Search: Implement a
real-time search/filter bar on the main list screen
that updates the UI reactively as the user types (e.g., using
Flow,LiveDatatransformations, or Rx).
AI (On-Device)
- On-Device ML: Integrate a simple on-device machine learning model (e.g., using TensorFlow Lite) for a feature like image classification on a photo taken, or text recognition (OCR) from an image to pre-fill a form.
Testing Frameworks
- Comprehensive Testing: Write a solid suite of unit tests for your ViewModels/Repositories and/or implement UI tests (e.g., Espresso, XCTest) that automate and verify the full CRUD flow.