Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 3.56 KB

File metadata and controls

82 lines (63 loc) · 3.56 KB

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.