Repository navigation
Android
Abdulla Muradov edited this page May 16, 2025
·
4 revisions
This page documents the Android client for Peer Network, built in Kotlin with a modern modular architecture.
- Built using Jetpack Compose (no XML)
- Clean modular structure with
data,domain,remote, anduilayers - Uses Kotlin Coroutines and
Flowfor reactive state management - Connects to the backend GraphQL API (Apollo)
- Handles authentication, posting, wallet, profile β with more features in development
| Layer | Tech / Tool |
|---|---|
| Language | Kotlin |
| UI Framework | Jetpack Compose |
| State Management | Kotlin Flow + ViewModel |
| Networking | Apollo GraphQL |
| Token Storage | SharedPreferences |
| Build System | Gradle (modular setup) |
| Architecture | Clean Architecture (Modular) |
- User authentication (register, login, logout)
- Profile editing (username, bio, image)
- Content feed: create, read, comment on posts
- Follow/block users
- Wallet screen with balance and activity
- β Real-time messaging (chat system not integrated)
- β Push notifications
- β Token transfer from wallet
- β Referral logic on registration
- All operations use GraphQL via Apollo client
- Token (
JWT) is stored securely inSharedPreferences -
referralUuidis passed when available during registration - GraphQL schema code is generated automatically for type safety
- Manual testing is currently used for most flows
- CI test integration with backend is planned
- Some modules are structured for future unit testing (domain and data layers)
peer_android_frontend/
βββ app/ # Main application module (entry point)
βββ blog/ # Feature module: blog
β βββ data/ # Repositories, data sources
β βββ domain/ # Use cases, domain models
β βββ remote/ # Remote API handling (Apollo)
β βββ ui/ # UI layer (Composables, ViewModels)
βββ core/ # Shared code across all modules
β βββ common/ # Common utilities, base classes
β βββ remote/ # Shared network code
β βββ ui/ # Shared UI components, themes, styles
βββ media/ # Media handling (images/videos)
β βββ core/
β βββ ui/
βββ persistence/ # Local storage & persistence logic
β βββ data/
β βββ domain/
β βββ local/ # SharedPreferences, etc.
βββ social/ # Friends, chat, follow system
β βββ data/
β βββ domain/
β βββ remote/
β βββ ui/
βββ user/ # Auth, profile, user info
β βββ data/
β βββ domain/
β βββ remote/
β βββ ui/
βββ wallet/ # Token display & wallet interaction
β βββ data/
β βββ domain/
β βββ remote/
β βββ ui/
- π» Clients
- π iOS
- π WebApp
- π Home
- π¬ GraphQL Schema Overview
- π Home
- π§ Backend
- π¬ GraphQL Schema Overview
- π Blockchain
- π¦ Backend 1.9.0
- π¦ Backend 1.8.0
- π¦ Backend 1.7.0
- π¦ Backend 1.6.0
- π¦ Backend 1.5.0
- π¦ Backend 1.4.0
- π¦ Backend 1.3.0
- π¦ Backend 1.2.0
- π¦ Backend 1.1.0
- π iOS 1.2.0
- π iOS 1.1.0