Cross-platform IP address lookup app built with Kotlin Multiplatform (KMP) & Compose Multiplatform (CMP)
Android & iOS | Shared UI | Shared Logic | Clean Architecture
| Android | iOS |
|---|---|
![]() |
![]() |
dor is a Kotlin Multiplatform (KMP) application that queries IP address information (country, city, ISP, etc.) from a public API and displays the results using Compose Multiplatform UI — one codebase, two native platforms (Android & iOS).
| Feature | Description |
|---|---|
| 🧩 Toolchain | Kotlin Multiplatform - KMP (Android + iOS) - Cross-platform language feature & compiler toolchain |
| 🎨 UI Framework | Compose Multiplatform - CMP - Cross-platform UI framework |
| 🧱 Architecture | MVVM (Model–View–ViewModel) |
| ⚙️ Build System | Gradle (KMP setup) |
| Category | Library | Artifact ID | Description |
|---|---|---|---|
| 🧠 Language | Kotlin | org.jetbrains.kotlin:kotlin-test |
Core language & testing utilities |
| 🎨 UI | Compose Multiplatform | org.jetbrains.compose |
Declarative UI shared across Android/iOS |
| 📱 AndroidX | Activity Compose | androidx.activity:activity-compose |
Integrates Compose with Android lifecycle |
| 💉 Dependency Injection | Koin | io.insert-koin:koin-core / io.insert-koin:koin-compose-viewmodel |
Lightweight DI for shared & UI layers |
| 🌐 Networking | Ktor | io.ktor:ktor-client-core / ktor-client-okhttp / ktor-client-darwin |
HTTP client for Android & iOS |
| 🔄 Serialization | Kotlinx Serialization | io.ktor:ktor-serialization-kotlinx-json |
JSON parsing for API responses |
This application utilizes the IP-API → service to fetch detailed information about IP addresses, including location, ISP, and region data.
Compose Multiplatform is an optional layer for Kotlin Multiplatform applications that allows you to build declarative user interfaces once and use them for multiple target platforms. Learn more on JetBrains Blog →
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.



