Project Requirements
A project should integrate 2-4 core features that are thematically connected. These include a Data & Persistence feature like a local database (Room) or a cloud backend (Firebase), a UI & Navigation feature such as a multi-activity design or custom animations, and an API Integration feature to connect to external services like a location-based or media streaming API.
In addition to these core features, a team can add one or two of the following:
- A simple System Integration feature, such as using a device sensor or the camera.
- A Distribution & Monetization feature like a basic landing page or a simulation of micro-payments.
- An On-device AI/ML feature using Android MLKit libraries to summarize text or draft messages.
1. Data & Persistence
These features focus on how an app handles and stores information, both locally and remotely.
- Storage or Database Connectivity: This involves managing data on the device using a local database like
Room
or a cloud-based database likeFirebase Realtime Database
orFirestore
. - User Login and Profiling: This includes implementing secure user authentication and creating user profiles to personalize the app experience, often with a service like
Firebase Authentication
. - Preferences: Allows users to customize their app experience with a controls screen and persisting their preferences across sessions.
- Analytics: Integrating analytics to track user behavior, feature usage, and crashes, which is crucial for making data-driven product decisions.
2. User Interface & Navigation
This category includes features that define the app's visual design and how users move between different parts of it.
- Multi-Activity Design: Building an app with multiple screens and managing the navigation between them, demonstrating a solid understanding of the Android component lifecycle.
- Custom Animations and Transitions: Going beyond standard transitions to create a visually impressive app with custom animations, such as shared element transitions or object animations.
- Multi-touch and Gesture Recognition: Developing an app that responds to complex user input like pinch-to-zoom or custom gestures.
3. API Integration & Real-Time Data
These features involve connecting the app to external services and hardware to get dynamic content.
- Location-Based Services: Using the device's GPS to create a project that interacts with the user's physical location, often involving the
Google Maps API
. - Media Streaming: Building an app that streams audio or video content from an online source, which requires handling network requests and managing a player state.
- Camera and Image Processing: Creating a project that uses the camera for tasks like real-time filtering, barcode scanning, or object recognition.
- Device Sensors: Utilizing the device's various sensors (accelerometer, gyroscope, light sensor) to create interactive features.
- Open Data: Using open access data sets, such as those from the EU or Tartu's open data portal, to power app concepts with real-time information like public transport positions or wind speed.
4. Monetization & Distribution
This category focuses on the business and practical aspects of releasing a mobile app to a wider audience.
- Releasing to an App Store: The process of preparing the app for publication, including generating a signed APK and writing a compelling app store listing.
- Landing and Marketing Page: Designing and building a simple website to promote the app, branded with a recognizable logo and visual style.
- Micro-payments: Implementing in-app purchases to sell virtual goods or unlock features.
5. System Integration & Connectivity
These features showcase a deeper understanding of how the app interacts with other devices and services.
- Bluetooth Connectivity: Building an app that communicates with another device via Bluetooth.
- Augmented Reality (AR): Using
ARCore
to create an experience that overlays digital information onto the real world using the device's camera.