BrowserApp - Kotlin Multiplatform Browser
A modern, cross-platform web browser built using Kotlin Multiplatform (KMP) and Jetpack Compose Multiplatform. It supports Android, iOS, and Desktop (JVM) using a shared UI and logic codebase.
- Multi-platform Support: Runs on Android, iOS, and Desktop (Windows/macOS/Linux).
- Multi-localization & RTL Support: Support for multiple languages (English, Bengali, Hindi, Arabic, French) with automatic Right-to-Left (RTL) layout adjustment.
- Tab Management: Efficiently handle multiple browsing tabs with persistent state powered by Room DB.
- Bookmarks & History: Persistent storage for your favorite sites and browsing history using Room DB.
- Persistent Storage: Uses androidx.datastore for cross-platform settings and theme preferences.
- Dependency Injection: Powered by Koin for clean and scalable architecture.
- Material 3 UI: Modern and responsive design using Compose Multiplatform.
- Web Engine: Powered by Compose WebView Multiplatform for high-performance web rendering across all platforms.
- Theme Support: Light, Dark, and System theme synchronization.
- Android Studio Ladybug or later.
- Xcode (for iOS development).
- JDK 17 or higher.
- Open the project in Android Studio.
- Select the composeApp run configuration.
- Choose an emulator or physical device and click Run.
Run the following Gradle task:
./gradlew :composeApp:run
- Open the iosApp/iosApp.xcworkspace in Xcode.
- Select your target device/simulator and click Run.
(Or use the Android Studio KMP plugin run configuration)
- composeApp/src/commonMain: Shared UI and business logic.
- composeApp/src/androidMain: Android-specific implementations.
- composeApp/src/iosMain: iOS-specific implementations.
- composeApp/src/jvmMain: Desktop-specific implementations (utilizing KCEF).
- iosApp: Native iOS project wrapper.
Note: This is a learning project. You can find the older version of this project at TheHasnatBD/browserApp. The legacy Android-only project has been moved to the legacy-android branch.
This project is licensed under the MIT License - see the LICENSE file for details.