Skip to content

TheHasnatBD/browserApp

Repository files navigation

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.

🚀 Features

  • 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.

Screenshots

Android

Android Home Dark Android Tabs Android Menu Settings Page

Desktop (JVM)

Desktop Home

Desktop Settings

🛠️ Built With

Getting Started

Prerequisites

  • Android Studio Ladybug or later.
  • Xcode (for iOS development).
  • JDK 17 or higher.

Running the App

Android

  1. Open the project in Android Studio.
  2. Select the composeApp run configuration.
  3. Choose an emulator or physical device and click Run.

Desktop

Run the following Gradle task:

./gradlew :composeApp:run

iOS

  1. Open the iosApp/iosApp.xcworkspace in Xcode.
  2. Select your target device/simulator and click Run. (Or use the Android Studio KMP plugin run configuration)

📂 Project Structure

  • 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.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

A cross-platform web browser built with Kotlin Multiplatform (KMP), enabling shared code across Android, iOS and Desktop platforms. The project demonstrates how to implement a simple browser experience using a unified codebase with modern UI and multiplatform architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors