Overview
Threadly is built using modern Android development technologies and follows industry best practices. The application leverages a robust set of libraries for networking, media handling, real-time communication, and local data persistence.Language & Build System
| Component | Version | Purpose |
|---|---|---|
| Java | 11 | Primary development language |
| Kotlin | 1.9.22 | Supporting language for modern Android features |
| Gradle | 8.13.2 | Build system and dependency management |
| Android SDK | Min: 29, Target: 36 | Platform compatibility |
Core Dependencies
Networking
| Library | Version | Purpose |
|---|---|---|
| Fast Android Networking | 1.0.4 | HTTP client for REST API calls |
| OkHttp | - | Underlying HTTP engine |
Real-Time Communication
| Library | Version | Purpose |
|---|---|---|
| Socket.IO Client | 2.0.0 | WebSocket communication |
| Firebase Cloud Messaging | 25.0.0 | Push notifications fallback |
Media Handling
| Library | Version | Purpose |
|---|---|---|
| Glide | 4.16.0 | Image loading and caching |
| Coil | 3.3.0 | Modern image loading (Kotlin) |
| ExoPlayer (Media3) | 1.3.1 | Video playback |
| CameraX | 1.4.0 | Camera integration |
Local Data Storage
| Library | Version | Purpose |
|---|---|---|
| Room Database | 2.6.1 | SQLite abstraction layer |
| SharedPreferences | - | Key-value storage |
UI Components
| Library | Version | Purpose |
|---|---|---|
| Material Design | 1.12.0 | UI components |
| Navigation Component | 2.9.0 | Fragment navigation |
| ConstraintLayout | 2.2.1 | Flexible layouts |
| SwipeRefreshLayout | 1.1.0 | Pull-to-refresh |
| Shimmer | 0.5.0 | Loading animations |
Background Processing
| Library | Version | Purpose |
|---|---|---|
| WorkManager | 2.10.2 | Background task scheduling |
Architecture Pattern
Threadly follows a component-based architecture with clear separation of concerns:Layer Responsibilities
| Layer | Responsibility | Example |
|---|---|---|
| Network Managers | Handle HTTP requests and responses | PostsManager, MessageManager |
| SocketIo | Manage WebSocket connections | SocketManager |
| RoomDb | Local data persistence and caching | DataBase, MessageSchema |
| Activities/Fragments | UI presentation and user interaction | Views and controllers |
| Utils | Shared utilities and helpers | PreferenceUtil, ReUsableFunctions |
Backend Technology
Threadly’s backend services are built with:| Technology | Purpose |
|---|---|
| Node.js | Server runtime |
| Express.js | Web framework |
| MySQL | Primary database |
| Socket.IO | Real-time bidirectional communication |
API Endpoints
Base URL:https://threadlyserver.onrender.com/api
Build Configuration
Gradle Setup
Version Catalog
Threadly uses Gradle Version Catalogs for dependency management:Development Tools
| Tool | Purpose |
|---|---|
| Android Studio | Primary IDE |
| ViewBinding | Type-safe view access |
| BuildConfig | Environment-specific configuration |
| ProGuard | Code obfuscation (release builds) |
Next Steps
- Learn about Networking Implementation
- Explore Real-Time Communication
- Understand Offline Support