An Android application built on top of the official GitHub REST API, providing a mobile experience for browsing GitHub activity feeds, managing user authentication, and viewing user profiles.
- GitHub REST API Integration: Connected to GitHub API endpoints for user authentication, activity feeds, and profile data.
- OAuth 2.0 & Token Login: Supports Web OAuth 2.0 flow and token authentication with encrypted local storage (
SecureSharedPreference). - Activity Feed: Paginated feed streaming GitHub user timeline events with specialized UI rendering for
PushEventandDeleteEvent. - Modular App Startup: Modularized, async app initialization chain powered by
androidx.startup. - Custom UI Component Library (
:library): Reusable UI module containingSwipeRefreshRecyclerView, state layouts (EmptyView,LoadingView), custom indicators, and logging framework. - Hybrid Web Container: Integrated
BifrostWebViewfor in-app browsing of GitHub repositories and web links.
- Import Feature (
nav_camera): Implement side-drawer Import module stub inFragmentProvider. - Gallery Feature (
nav_gallery): Implement side-drawer Gallery module stub inFragmentProvider. - Slideshow Feature (
nav_slideshow): Implement side-drawer Slideshow module stub inFragmentProvider. - Tools Feature (
nav_manage): Implement side-drawer Tools/Management module stub inFragmentProvider. - Share Feature (
nav_share): Implement side-drawer Share action stub inFragmentProvider. - Send Feature (
nav_send): Implement side-drawer Send action stub inFragmentProvider. - Web Activity Share Action: Implement web page sharing in
WebActivity(currently shows a"Not implemented yet!"snackbar stub). - User Avatar Media Preview: Complete user avatar preview and full profile media inspection in
ProfileView. - Full Event ViewHolder Support: Extend custom UI cards for
ForkEvent,WatchEvent,IssueCommentEvent,CreateEvent,ReleaseEvent, andPullRequestEvent(currently defaulting to fallback views). - Notification Center: Fully implement
NotificationFragmentto fetch and manage GitHub notifications via API. - Repository & Code Browser: Add repository search, source code file tree navigation, and syntax-highlighted code viewer.
- Issue & Pull Request Management: Enable creating, inspecting, and commenting on Issues and Pull Requests.
- Drawer Navigation Actions: Wire up remaining side-drawer navigation menu items (
nav_camera,nav_gallery, etc.).
- Language & Platform: Java 17, Android SDK 35 (minSdk 21)
- Architecture: MVP (Model-View-Presenter)
- Networking: Retrofit 2 + RxJava 3 + OkHttp 3 (GitHub REST API)
- Dependency Injection: Dagger 2
- UI Components: Material Components, ViewBinding / DataBinding, Glide 4
- JDK: 17
- Android SDK: 35 (compileSdk & targetSdk)
- Android Studio: Ladybug / 2024.2+ recommended
- Build Debug APK:
./gradlew assembleDebug
- Run Unit Tests:
./gradlew test
This project is licensed under the MIT License.