Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/felipekoga/deeplink-launcher
Launch deeplinks easily - built with Compose Multiplatform
https://github.com/felipekoga/deeplink-launcher
android compose-multiplatform datastore desktop ios jetpack-compose kmp koin kotlin kotlin-multiplatform-mobile kotlin-multiplatform-sample material3 modularization sqldelight voyager
Last synced: 17 days ago
JSON representation
Launch deeplinks easily - built with Compose Multiplatform
- Host: GitHub
- URL: https://github.com/felipekoga/deeplink-launcher
- Owner: FelipeKoga
- License: gpl-3.0
- Created: 2024-01-09T23:32:29.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-20T00:00:13.000Z (19 days ago)
- Last Synced: 2025-01-20T00:50:31.817Z (19 days ago)
- Topics: android, compose-multiplatform, datastore, desktop, ios, jetpack-compose, kmp, koin, kotlin, kotlin-multiplatform-mobile, kotlin-multiplatform-sample, material3, modularization, sqldelight, voyager
- Language: Kotlin
- Homepage: https://play.google.com/store/apps/details?id=dev.koga.deeplinklauncher.android
- Size: 16.9 MB
- Stars: 23
- Watchers: 1
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
DeepLink Launcher
DeepLink Launcher is a multiplatform app designed for executing and managing deeplinks. This tool offers developers and QA teams an intuitive interface for testing, organizing, tracking, and sharing deeplinks.## 🚀 Demo
[![demo](https://github.com/user-attachments/assets/174c5fdd-8e15-4ae2-aa9c-94fc72e2c13c)](https://www.youtube.com/watch?v=umB3ZlYJMGA)## 🌐 Supported Platforms
| Platform | Status | Download |
|-----------|---------|--------------------------------------------------------------|
| **Android** | ✅ Available | [Download on Google Play](https://play.google.com/store/apps/details?id=dev.koga.deeplinklauncher.android) |
| **iOS** | ✅ Available | Not yet released. |
| **Desktop** | ✅ Available | [Download for Desktop](https://github.com/FelipeKoga/deeplink-launcher/releases) |## 🔑 Key Features
- **Execute Deeplinks**: Instantly execute deeplinks on Android, iOS, and Desktop platforms.
- **Device Bridge**: The Desktop app integrates with **ADB** (Android) and **Xcrun** (iOS) to run deeplinks directly on devices in real-time.
- **Auto-suggestions**: Get suggestions for deeplinks based on previously executed links.
- **Deeplink History**: Easily track and revisit all previously executed deeplinks.
- **Favorites**: Mark your most used deeplinks as favorites for quick access.
- **Folders**: Organize your deeplinks into folders for better management.
- **Export/Import**: Export and share your deeplinks in **JSON** or **TXT** formats. Import deeplinks as needed.
- **Duplicate Deeplinks**: Quickly duplicate existing deeplinks to save time on similar or recurring tasks.
- **Theme Support**: Choose between Light and Dark themes to match your preferences.
- **Search**: Find any deeplink fast with the built-in search functionality.
- **In-App Purchase**: Support the project by buying a coffee (Android only).## ⚙️ Built With
| Technology | Description |
|------------|-------------|
| [**Compose Multiplatform**](https://github.com/JetBrains/compose-jb) | A modern UI toolkit for building native UIs across all platforms. |
| [**Voyager**](https://github.com/adrielcafe/voyager) | A multiplatform navigation library. |
| [**Koin**](https://insert-koin.io/) | A powerful dependency injection framework for Kotlin. |
| [**SQLDelight**](https://cashapp.github.io/sqldelight/) | A multiplatform database library that generates type-safe Kotlin APIs. |
| [**DataStore**](https://developer.android.com/jetpack/androidx/releases/datastore) | A modern data storage solution for key-value pairs or protocol buffers with Kotlin coroutines. |
| [**Material3**](https://m3.material.io/) | Google's design system for a consistent user experience across platforms. |
| [**Kotlinx Immutable**](https://github.com/Kotlin/kotlinx.collections.immutable) | Immutable collections for Kotlin. |
| [**Kotlinx DateTime**](https://github.com/Kotlin/kotlinx-datetime) | Library for working with date and time in Kotlin. |
| [**AboutLibraries**](https://github.com/mikepenz/AboutLibraries) | Displays open-source libraries used in Android apps. |
| [**Detekt**](https://github.com/detekt/detekt) | A static code analysis tool for Kotlin. |
| [**Ktlint**](https://github.com/pinterest/ktlint) | A Kotlin linter for enforcing code style guidelines. |
| [**MPFilePicker**](https://github.com/Wavesonics/compose-multiplatform-file-picker) | A multiplatform file picker for Compose. |
| [**Material 3 Window Size Class**](https://github.com/chrisbanes/material3-windowsizeclass-multiplatform) | A library to detect window size across different platforms. |
| [**RevenueCat**](https://www.revenuecat.com/) | In-app purchase library for managing subscriptions and one-time purchases. |## 🏗️ Architecture Overview
The architecture used is designed to enforce modularization and encapsulation, promoting clean and maintainable code. Here's how it is structured:
### Modules
Each feature in the app is divided into three submodules:1. **:ui**
- Contains the user interface components (e.g., screens, widgets, and Compose code).
- Depends on the **API Module** for any shared interfaces or contracts.2. **:ui**
- Implements the business logic and core functionality of the feature.
- Depends on the **API Module** for interface definitions.
- Completely hidden from other feature modules to prevent tight coupling.3. **:api**
- Defines public contracts, such as interfaces and shared data models.
- Serves as the communication layer between **UI** and **Impl**, and is the only module exposed to other feature modules.### Rules
- **Feature Isolation**: Other feature modules can only access the **API** or **UI Module** of another feature, ensuring clear boundaries and reducing dependencies.
- **Encapsulation**: The **Impl Module** is internal to the feature, encapsulating its implementation details.
- **Reusability**: Common components can be placed in the **API Module** for easy reuse across the app.This approach ensures:
- **Scalability**: Features can be developed, tested, and maintained independently.
- **Clear Dependency Management**: Modules explicitly declare their dependencies, making it easy to track changes.
- **Improved Code Quality**: Separation of concerns makes the codebase easier to navigate and less prone to bugs.### References
- [Android Modularization](https://www.reddit.com/r/RedditEng/comments/vwrrrf/android_modularization/)
- [Android at Scale @ Square](https://www.droidcon.com/2019/11/15/android-at-scale-square/)---
Feel free to reach out with any questions or suggestions! 😄