Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/farbod-s/snapp-news
The app contains a screen that displays a list of news related to the keyword `Tehran`.
https://github.com/farbod-s/snapp-news
android android-application animation architecture-components clean-architecture clean-code hilt hilt-android interview jetpack-compose kotlin kotlin-android kotlin-coroutines kotlin-flow mockito mvvm navigation room-database testing
Last synced: about 7 hours ago
JSON representation
The app contains a screen that displays a list of news related to the keyword `Tehran`.
- Host: GitHub
- URL: https://github.com/farbod-s/snapp-news
- Owner: farbod-s
- Created: 2025-01-01T18:39:46.000Z (14 days ago)
- Default Branch: master
- Last Pushed: 2025-01-01T18:49:16.000Z (14 days ago)
- Last Synced: 2025-01-01T19:36:16.419Z (13 days ago)
- Topics: android, android-application, animation, architecture-components, clean-architecture, clean-code, hilt, hilt-android, interview, jetpack-compose, kotlin, kotlin-android, kotlin-coroutines, kotlin-flow, mockito, mvvm, navigation, room-database, testing
- Language: Kotlin
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Snapp News
News List | News Detail
:---:|:---:
![](screenshots/news_list.png) | ![](screenshots/news_detail.png)## Requirements:
- The app contains a screen that displays a list of news related to the keyword `Tehran`.
- When a user clicks on a news item, they should be taken to a details page. You can choose what information to show on this page; it doesn't need to include everything.
- For fetching the news, use API from either [Pavuk](https://pavuk.ai/) or [NewsApi](https://newsapi.org/).
- The UI must be built using **Jetpack Compose**, but you can design it as you like.
- The app must follow an **Offline First** approach, meaning it should save the latest fetched news for offline viewing. News should only be fetched when there is **internet access**, and the stored information is **older than 5 minutes**.## Evaluation Criteria:
- Clean and readable code
- Good use of design patterns
- Application architecture
- User interface and experience
- Proper use of Git and incremental development## Bonus Points:
- [x] Writing automated tests
- [x] Multi-Module structure
- [x] Using animations and transitions (like shared elements) in the UI
- [x] During app usage, get new data from remote service every 2 minutes and take a difference on the current news list then send a notification to a user that X number of new news added.## Project Submission:
1. Create a private GitLab repository.
2. Add the GitLab user `@interview-android-snappbox` with **Reporter access** to your project.
3. Submit the **APK** and the **GitLab project link**.