An android app to showcase some photos/videos on a digital signage
Budget: $250 – $750 USD
Native Device App Development
Objective:
To develop a native mobile app for Android (using Kotlin) that ensures smooth playback of multimedia content (photos, videos, and potentially web pages) based on subscription data. The app must offer seamless transitions between content, efficient local storage management, and periodic background synchronization with the server.
App Features:
1. Login Screen (Refer to Attached Design):
Users will input a verification code to log in.
On login, the app sends a request to the Login API Endpoint and receives an authentication token.
2. Fetch and Manage Subscriptions:
After successful login, the app will:
Fetch the list of subscriptions from the Stream API Endpoint.
Download all associated files (photos, videos, etc.) to the device's local storage.
Save metadata for each subscription (e.g., duration, file type, order).
3. Content Display and Playback:
Display the content (photos, videos) in a predefined order based on the subscription data.
Ensure smooth transitions between content:
No delays or blank screens when switching content.
Play videos seamlessly for their specified duration and automatically move to the next content.
4. Periodic Background Updates:
Every 5 minutes, the app will:
Fetch the latest subscription data from the Stream API Endpoint.
Download any newly added files to the local storage.
Remove files associated with subscriptions that have been removed.
Update the playback queue without interrupting the current playback.
5. Local Storage Management:
Efficiently manage device storage by:
Saving downloaded files locally for offline playback.
Removing unused files when subscriptions are updated.
Handling storage errors gracefully (e.g., low disk space).
6. Future-Proof Design:
While the initial implementation supports photos and videos, the app should be built with scalability in mind to support additional content types (e.g., web pages) in the future.
Technical Requirements:
Backend Integration:
Login API Endpoint: Authenticate the user and retrieve a token.
Stream API Endpoint: Retrieve a list of active subscriptions, including:
File URLs (photo/video/webpage).
Display duration.
Order in the playback queue.
Device Storage:
Use local storage to save multimedia files.
Manage storage to remove outdated files automatically.
Multimedia Playback:
Support for photo and video playback with seamless transitions.
Handle video looping and resizing to fit various screen sizes.
Background Synchronization:
Perform periodic API calls in the background (every 5 minutes).
Download and update content without disrupting current playback.
Offline Mode:
Ensure content playback continues uninterrupted if the device is offline.
Deliverables:
Fully functional native Android app developed in Kotlin.
Clean, maintainable code with proper documentation.
Support for multimedia playback (photos/videos) with smooth transitions.
Local storage integration for offline content access.
Background synchronization for periodic updates.
Scalable architecture for future content types (e.g., web pages).
Expectations from the Developer:
Experience in Kotlin and native Android development.
Strong understanding of multimedia playback and local storage management.
Ability to integrate APIs and handle background tasks efficiently.
Commitment to ensuring smooth and seamless user experiences.
Objective:
To develop a native mobile app for Android (using Kotlin) that ensures smooth playback of multimedia content (photos, videos, and potentially web pages) based on subscription data. The app must offer seamless transitions between content, efficient local storage management, and periodic background synchronization with the server.
App Features:
1. Login Screen (Refer to Attached Design):
Users will input a verification code to log in.
On login, the app sends a request to the Login API Endpoint and receives an authentication token.
2. Fetch and Manage Subscriptions:
After successful login, the app will:
Fetch the list of subscriptions from the Stream API Endpoint.
Download all associated files (photos, videos, etc.) to the device's local storage.
Save metadata for each subscription (e.g., duration, file type, order).
3. Content Display and Playback:
Display the content (photos, videos) in a predefined order based on the subscription data.
Ensure smooth transitions between content:
No delays or blank screens when switching content.
Play videos seamlessly for their specified duration and automatically move to the next content.
4. Periodic Background Updates:
Every 5 minutes, the app will:
Fetch the latest subscription data from the Stream API Endpoint.
Download any newly added files to the local storage.
Remove files associated with subscriptions that have been removed.
Update the playback queue without interrupting the current playback.
5. Local Storage Management:
Efficiently manage device storage by:
Saving downloaded files locally for offline playback.
Removing unused files when subscriptions are updated.
Handling storage errors gracefully (e.g., low disk space).
6. Future-Proof Design:
While the initial implementation supports photos and videos, the app should be built with scalability in mind to support additional content types (e.g., web pages) in the future.
Technical Requirements:
Backend Integration:
Login API Endpoint: Authenticate the user and retrieve a token.
Stream API Endpoint: Retrieve a list of active subscriptions, including:
File URLs (photo/video/webpage).
Display duration.
Order in the playback queue.
Device Storage:
Use local storage to save multimedia files.
Manage storage to remove outdated files automatically.
Multimedia Playback:
Support for photo and video playback with seamless transitions.
Handle video looping and resizing to fit various screen sizes.
Background Synchronization:
Perform periodic API calls in the background (every 5 minutes).
Download and update content without disrupting current playback.
Offline Mode:
Ensure content playback continues uninterrupted if the device is offline.
Deliverables:
Fully functional native Android app developed in Kotlin.
Clean, maintainable code with proper documentation.
Support for multimedia playback (photos/videos) with smooth transitions.
Local storage integration for offline content access.
Background synchronization for periodic updates.
Scalable architecture for future content types (e.g., web pages).
Expectations from the Developer:
Experience in Kotlin and native Android development.
Strong understanding of multimedia playback and local storage management.
Ability to integrate APIs and handle background tasks efficiently.
Commitment to ensuring smooth and seamless user experiences.