Threadly Features
Threadly is packed with modern social media features built natively for Android. Explore everything this platform has to offer.Core Features
Authentication
Secure login and signup with email/mobile OTP verification
Social Feed
Dynamic home feed with images, videos, and stories
Reels
TikTok-style scrollable video feed with smooth ExoPlayer playback
Messaging
Real-time 1-on-1 chat powered by Socket.IO with FCM fallback
Stories
24-hour ephemeral content that disappears automatically
Media Creation
Custom camera implementation using CameraX for photos and videos
Authentication & Security
The authentication system provides multiple login methods with secure OTP verification:- Email & Mobile Login - Sign in using email address or mobile number
- OTP Verification - Two-factor authentication for enhanced security
- Password Management - Secure password creation and reset functionality
- Session Management - Persistent login with token-based authentication
- JWT Authentication - Secure API communication with bearer tokens
LoginActivity.java:75-80
All authentication flows include proper error handling and user feedback via toast messages and loading indicators.
Social Features
Dynamic Feed
The home feed displays a mix of content types:- Image Posts - Single or multiple images per post
- Video Posts - Short-form videos with ExoPlayer
- Stories Section - Horizontal scrollable stories at the top
- Suggested Users - Discover new people to follow
- Pull to Refresh - Update feed with latest content
- Infinite Scroll - Paginated loading for smooth performance
ImagePostsFeedViewModel, VideoPostsFeedViewModel, StoriesViewModel
User Profiles
Comprehensive profile system:- Profile pictures and cover images
- Bio and username display
- Post grid with image/video thumbnails
- Follower and following counts
- Follow/unfollow functionality
- Private account support
ProfileManager, ProfileEditorManager, FollowManager
Search & Discovery
Find users and content:- User Search - Search by name or username
- Suggested Users - Algorithm-based recommendations
- Explore Page - Discover trending content
SearchViewModel, SuggestUsersViewModel
Content Creation & Sharing
Posts
Create and share multimedia content:- Image Posts - Upload single or multiple images
- Video Posts - Share video content
- Captions - Add text descriptions
- Privacy Settings - Public or private posts
AddPostActivity, PostActivityWorkers:
UploadMediaWorker for background upload
Stories
24-hour ephemeral content:- Image Stories - Quick photo shares
- Video Stories - Short video clips
- Auto-delete - Content expires after 24 hours
- Story Viewer - ViewPager-based story viewing
- View Count - See who viewed your story
AddStoryActivityWorkers:
UploadStoriesWorker
Reels
TikTok-style short videos:- Vertical Scrolling - Swipe up for next video
- Auto-play - Videos start automatically
- Preloading - Next videos cache for smooth experience
- Interactions - Like, comment, share, follow
- Mute Toggle - Audio on/off control
ReelsAdapterUtils:
ExoplayerUtil, ExoPlayerCache
Custom Camera
Built with CameraX:- Photo Capture - High-quality image capture
- Video Recording - Record video clips
- Camera Flip - Switch front/back camera
- Flash Control - Toggle flash on/off
- Gallery Access - Select existing media
Real-time Messaging
Socket.IO-powered instant messaging:- 1-on-1 Chat - Direct messaging between users
- Message History - Persistent chat history in Room Database
- Offline Support - Send messages offline, sync when online
- Media Messages - Send images and videos in chat
- Read Receipts - See when messages are read
- Typing Indicators - Real-time typing status
- Message Deletion - Delete for me or unsend for everyone
- FCM Fallback - Push notifications when Socket.IO is disconnected
SocketManager.java- Socket.IO connection managementMessageManager.java- Message operationsMessageAdapter- Chat UI renderingMessagesViewModel- Message state management
SocketEmitterEvents.java:45
Media & Playback
ExoPlayer Integration
Smooth video playback:- Video Caching - Cache videos for offline viewing
- Preloading - Load next videos in advance
- Memory Management - Efficient resource usage
- Playback Controls - Play, pause, seek, volume
ExoplayerUtil, ExoPlayerCache, CacheDataSourceUtil
Image Loading
Fast image rendering:- Glide - Primary image loader with caching
- Coil - Modern image loading with Kotlin coroutines
- Shimmer Effects - Loading placeholders
- Progressive Loading - Low to high quality
Interactions
Likes
- Like/unlike posts
- Like count display
- Real-time like updates
LikeManager
Comments
- Comment on posts
- Reply to comments
- Comment count display
- Comment moderation
CommentsManagerViewModels:
CommentsViewModelUtils:
PostCommentsViewerUtil
Shares
- Share posts to other platforms
- Internal post sharing (coming soon)
PostShareHelperUtil
Notifications
- Interaction Notifications - Likes, comments, new followers
- Message Notifications - New message alerts
- FCM Integration - Push notifications when app is closed
- Notification Badges - Unread count indicators
FcmServiceViewModels:
InteractionNotificationViewModel
Data & Offline Support
Room Database
Local data persistence:- Message Schema - Chat history storage
- History Schema - Conversation list
- Notification Schema - Notification history
- DAO Operations - CRUD operations with SQL
- LiveData Integration - Reactive UI updates
DataBase.java (singleton)Entities:
MessageSchema, HistorySchema, NotificationSchemaDAO:
operator.java
RoomDb/DataBase.java:18-29
Background Sync
- WorkManager - Reliable background task execution
- Upload Workers - Media upload in background
- Message Sync - Pending message delivery
- Retry Logic - Automatic retry on failure
UploadMediaWorker, UploadStoriesWorker, MessageMediaHandlerWorker
Push Notifications
Firebase Cloud Messaging integration:- FCM Token Management - Device token registration
- Message Notifications - New message push
- Interaction Alerts - Likes, comments, follows
- Background Delivery - Notifications when app is closed
- Custom Actions - Open specific screens from notifications
FcmServiceManager:
FcmManager
Privacy & Settings
User control and privacy:- Privacy Settings - Public/private account toggle
- Password Change - Update password securely
- Account Management - Edit profile information
- Notification Settings - Configure notification preferences
- Logout - Secure session termination
SettingsActivity, PasswordChangeActivityManager:
PrivacyManager
Technical Features
MVVM Architecture
Clean architecture with proper separation:- ViewModels - Business logic and state management
- LiveData - Reactive data observation
- Repository Pattern - Data abstraction layer
- Dependency Injection - Manual DI via Core singleton
ProfileViewModel, MessagesViewModel, ImagePostsFeedViewModel, and more
ViewBinding
Type-safe view access:Lifecycle-Aware Components
Proper lifecycle management:- Fragment lifecycle handling
- Activity result contracts
- Permission requests via ActivityCompat
- Proper resource cleanup (ExoPlayer, Socket.IO)
Development Tools
- Shimmer Effects - Loading placeholders with Facebook Shimmer
- SwipeRefreshLayout - Pull-to-refresh functionality
- Fast Android Networking - HTTP client (v1.0.4)
- Socket.IO Client - Real-time communication (v2.0.0)
- Logging - Custom LoggerUtil for debugging
Get Started
Ready to explore these features in action?Installation Guide
Set up Threadly on your local machine
Architecture Overview
Understand how Threadly is built