Github Repository Android Application Building with Latest Technology & Advanced Android Topics at AMIT Learing & Orange Degital Center InternShip.
- Kotlin: A modern programming language for Android development.
- Jetpack Compose: Android’s modern toolkit for building native UI.
- MVVM Architecture: Clean architecture pattern to separate business logic from the UI layer.
- Hilt: Dependency injection framework for managing app-level dependencies.
- Retrofit: Type-safe HTTP client for making API requests.
- Room: A persistence library for local data storage.
- DataStore: A simple, modern data storage solution that allows storing key-value pairs or typed objects.
- Coroutines & Flow: For asynchronous programming and handling streams of data.
- Gson: A library for JSON serialization and deserialization.
- Coil: Image loading library for Kotlin that uses Coroutines.
- Lottie: For rendering animations from Adobe After Effects.
- Chucker: HTTP inspector for debugging network requests.
- Mockk: Mocking library for testing Kotlin code.
- Shimmer Effect For Loading State:
-
The app uses a Shimmer Effect to provide a smooth visual loading state while fetching data from the API.
-
When the user navigates to the Repo List Screen, a shimmer animation is displayed, mimicking the layout of the repository items until the data is fully loaded from the API.
- Repo List Screen:
-
Fetches a list of repositories from a REST API (e.g., GitHub API) using Retrofit.
-
Each repository is displayed in a list, showing:
- Repository Name
- Owner's Avatar
- Star Count
- Fork Count
- Description
-
Tapping on a repository navigates the user to the Repo Details Screen.
- Repo Details Screen:
- Displays detailed information about a selected repository, including:
- Repository Image: Shows the owner's avatar or repository image.
- Repository Name: Clearly visible at the top.
- Stars Count: Total number of stars the repository has received.
- Forks Count: Total number of times the repository has been forked.
- Description: Detailed description of the repository.
- Created Date: The date when the repository was created Also provides a button to navigate to the Repo Issues Screen.
- Repo Issues Screen:
- Lists the issues related to the selected repository:
- Issue Title
- Status: Whether the issue is Open or Closed.
- Created Date: When the issue was created.
- Closed Date (if applicable): Displays when the issue was closed if it’s resolved.
- Issues are fetched dynamically via an API request using Retrofit and displayed in a list format.
- The screen also supports the Shimmer Effect for loading states while the issue data is fetched.
- Error Screen - No WiFi/Network Unavailable:
- When there is no internet connection, an error screen is displayed indicating that the network is unavailable.
- The app checks for the network status using ConnectivityManager and shows a user-friendly error message when the device is offline.
- A retry button is available, allowing users to attempt reconnecting when the network is restored.
- In the event of no network, the app falls back to cached data using DataStore for the Repo List:
- The last successfully fetched list of repositories is stored and displayed.
- If cached data exists, the app displays the cached repositories so users can still view them while offline.
- If no cached data is available, a message is shown to inform the user that no data is available offline.
Clone the project
git clone https://github.com/Nour5Eldin/GitHub_Repository_ODC_AMIT.git