Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jarvislin/HackerNews-KMP
This is a Hacker News reader app implemented using Kotlin Multiplatform Compose for Android and iOS.
https://github.com/jarvislin/HackerNews-KMP
android app compose hacker-news ios kmp kotlin kotlin-multiplatform kotlin-multiplatform-sample multiplatform
Last synced: 3 months ago
JSON representation
This is a Hacker News reader app implemented using Kotlin Multiplatform Compose for Android and iOS.
- Host: GitHub
- URL: https://github.com/jarvislin/HackerNews-KMP
- Owner: jarvislin
- License: mpl-2.0
- Created: 2024-06-20T06:33:45.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-08-02T02:49:03.000Z (6 months ago)
- Last Synced: 2024-08-02T19:54:29.021Z (6 months ago)
- Topics: android, app, compose, hacker-news, ios, kmp, kotlin, kotlin-multiplatform, kotlin-multiplatform-sample, multiplatform
- Language: Kotlin
- Homepage:
- Size: 836 KB
- Stars: 31
- Watchers: 2
- Forks: 7
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - jarvislin/HackerNews-KMP - This is a Hacker News reader app implemented using Kotlin Multiplatform Compose for Android and iOS. (Kotlin)
README
![Static Badge](https://img.shields.io/badge/Platform-iOS-blue?style=flat)
![Static Badge](https://img.shields.io/badge/Platform-Android-green?style=flat)
![GitHub License](https://img.shields.io/github/license/jarvislin/HackerNews-KMP?style=flat)# Hacker News KMP
![hn_16_9](https://github.com/jarvislin/HackerNews-KMP/assets/3839951/bc29705a-6e69-474c-8453-91485d99b458)This project is designed to showcase the capabilities of **Kotlin Multiplatform Compose** by implementing both Android and iOS apps. The aim is to demonstrate how effectively this framework can create cross-platform applications and learn new concepts I hadn't encountered before.
## Download
## Article
[How to Develop and Publish an App on Two Platforms Within a Week?](https://medium.com/p/918cea37dda2)
## Tech Stack
1. Entire project written in [Kotlin](https://kotlinlang.org/)
2. UI developed with [Compose Multiplatform](https://www.jetbrains.com/lp/compose-multiplatform/), following [Material 3](https://m3.material.io/) guidelines
3. Asynchronous tasks handled with [Coroutines](https://github.com/Kotlin/kotlinx.coroutines)
4. Dependency injection managed with [Koin](https://github.com/InsertKoinIO/koin)
5. API interactions handled by [Ktor Client](https://github.com/ktorio/ktor)
6. Time conversions using [kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime)
7. Serialization managed by [kotlinx-serialization](https://github.com/Kotlin/kotlinx.serialization)For the full list of dependencies used in the project, please check [this file](https://github.com/jarvislin/HackerNews-KMP/blob/main/gradle/libs.versions.toml).
## Architecture
Architecture follows MVVM and Clean Architecture.
![clean_architecture_mvvm](https://github.com/jarvislin/HackerNews-KMP/assets/3839951/a3823b81-1e99-4457-bf7c-fcbe5051ed34)
## Contribution
You're welcome to submit PRs to this repo! I'm using Git Flow, so please create a feature branch for your work. When you're ready to submit a PR, set the base branch to develop. I'll review it as soon as I can.
## License
[Mozilla Public License Version 2.0](https://github.com/jarvislin/HackerNews-KMP/blob/main/LICENSE)