{"id":26053349,"url":"https://github.com/ash1605/chatappandroid","last_synced_at":"2026-04-19T14:36:00.276Z","repository":{"id":278237659,"uuid":"934929589","full_name":"AsH1605/ChatAppAndroid","owner":"AsH1605","description":"ChatApp is a modern chat application built for Android, featuring real-time messaging powered by a custom backend using Socket.IO. ","archived":false,"fork":false,"pushed_at":"2025-03-06T17:24:36.000Z","size":211,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T18:25:44.815Z","etag":null,"topics":["android","coroutines","jetpack-compose","retrofit2","socket-io"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AsH1605.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-18T16:22:54.000Z","updated_at":"2025-03-06T17:25:09.000Z","dependencies_parsed_at":"2025-03-06T18:23:04.819Z","dependency_job_id":"c8b48d6d-6426-49e9-9a66-ea45d83e1859","html_url":"https://github.com/AsH1605/ChatAppAndroid","commit_stats":null,"previous_names":["ash1605/chatappandroid"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsH1605%2FChatAppAndroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsH1605%2FChatAppAndroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsH1605%2FChatAppAndroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AsH1605%2FChatAppAndroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AsH1605","download_url":"https://codeload.github.com/AsH1605/ChatAppAndroid/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242515561,"owners_count":20142046,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","coroutines","jetpack-compose","retrofit2","socket-io"],"created_at":"2025-03-08T07:28:06.121Z","updated_at":"2026-04-19T14:36:00.221Z","avatar_url":"https://github.com/AsH1605.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📱 ChatApp\nChatApp is a modern chat application built for Android, featuring real-time messaging powered by a custom backend using Socket.IO. The app leverages Retrofit for traditional HTTP network operations and embraces Dagger Hilt for dependency injection, all while using Jetpack Compose to deliver a modern UI experience. The project follows MVI architecture and adheres to clean architecture principles with a clear separation into data, domain, and presentation layers.\n\n## 🏗️ Architecture Overview\n\n```ruby\n:data  \u003c-  :domain  -\u003e  :presentation\n```\n\n- *Domain Layer*: Contains business logic and use cases, written in pure Kotlin. This layer is independent of any Android platform code.\n- *Data Layer*: Provides implementations of repository interfaces defined in the domain layer. This is the only layer that directly interacts with external systems (network, database, etc.).\n- *Presentation Layer*: Contains UI (built using Jetpack Compose) and user interaction handling. It is only dependent on the domain layer, and retrieves actual implementations from the data layer at runtime via Dagger Hilt.\n\n\n## 🔧 Tech Stack\nTechnology\tPurpose\nKotlin\tPrimary language, ensuring modern, concise code.\nJetpack Compose\tDeclarative UI framework for building the app’s user interface.\nDagger Hilt\tDependency Injection framework for seamless dependency management across layers.\nRetrofit\tHTTP client for network operations such as login, create room, edit room, etc.\nSocket.IO\tReal-time socket-based communication for chat messages, room entry/exit events, and more.\nCoroutines + Flow\tFor async operations and reactive data streams.\n\n\n## ⚙️ Features\n- ✅ User Login and Authentication (via HTTP/Retrofit)\n- ✅ Create Chat Room, Edit Room Details (via HTTP/Retrofit)\n- ✅ Real-time Messaging (via Socket.IO)\n- ✅ Join and Leave Rooms (via Socket.IO)\n- ✅ Clear Separation of Concerns (data, domain, presentation)\n- ✅ Clean and Modern UI with Jetpack Compose\n- ✅ Fully Written in Kotlin\n\n## 📂 Project Structure\n\n```bash\n/data          - Platform-dependent implementations (network, socket, repository impls)\n/domain        - Business logic, Use Cases, Repository Interfaces (pure Kotlin)\n/presentation  - UI, ViewModels, User interactions (Jetpack Compose + MVI)\n```\n\n## 🔗 Network Flow\n\nHTTP (Retrofit)\n- Login\n- Create Room\n- Edit Room Details\n\nRealtime (Socket.IO)\n- Send/Receive Chat Messages\n- Join/Leave Room Events\n\n## 🔌 Dependency Injection\n- Dagger Hilt wires up all dependencies across layers.\n- presentation layer asks for repository interfaces, and Hilt provides the data layer’s implementations.\n- This keeps the presentation layer decoupled and testable.\n\n## 🚀 How It Works\n- User logs in (handled via Retrofit call).\n- User creates or joins a chat room (via Retrofit for room creation/edit and Socket.IO for real-time presence management).\n- User sends and receives messages in real-time (via Socket.IO).\n- Room exit and entry are handled via socket events.\n- UI updates reactively based on flows emitted from the domain layer.\n\n\n\u003cimg src=\"https://github.com/user-attachments/assets/1b8c0c47-84f0-49f0-9c70-07e7dcd58093\" width=\"300px\"/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fash1605%2Fchatappandroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fash1605%2Fchatappandroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fash1605%2Fchatappandroid/lists"}