{"id":13605595,"url":"https://github.com/FelipeKoga/deeplink-launcher","last_synced_at":"2025-04-12T05:33:51.682Z","repository":{"id":220071252,"uuid":"741211763","full_name":"FelipeKoga/deeplink-launcher","owner":"FelipeKoga","description":"Launch deeplinks easily - built with Compose Multiplatform","archived":false,"fork":false,"pushed_at":"2024-10-23T17:46:58.000Z","size":17521,"stargazers_count":22,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T01:55:40.333Z","etag":null,"topics":["android","compose-multiplatform","datastore","desktop","ios","jetpack-compose","kmp","koin","kotlin","kotlin-multiplatform-mobile","kotlin-multiplatform-sample","material3","modularization","sqldelight","voyager"],"latest_commit_sha":null,"homepage":"https://play.google.com/store/apps/details?id=dev.koga.deeplinklauncher.android","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FelipeKoga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-09T23:32:29.000Z","updated_at":"2024-10-16T23:22:14.000Z","dependencies_parsed_at":"2024-05-17T04:26:45.093Z","dependency_job_id":"f85aa79a-7255-4994-8020-1f4492dbbaef","html_url":"https://github.com/FelipeKoga/deeplink-launcher","commit_stats":null,"previous_names":["felipekoga/deeplink-launcher"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeKoga%2Fdeeplink-launcher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeKoga%2Fdeeplink-launcher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeKoga%2Fdeeplink-launcher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FelipeKoga%2Fdeeplink-launcher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FelipeKoga","download_url":"https://codeload.github.com/FelipeKoga/deeplink-launcher/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223497948,"owners_count":17155223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","compose-multiplatform","datastore","desktop","ios","jetpack-compose","kmp","koin","kotlin","kotlin-multiplatform-mobile","kotlin-multiplatform-sample","material3","modularization","sqldelight","voyager"],"created_at":"2024-08-01T19:01:00.556Z","updated_at":"2025-04-12T05:33:51.665Z","avatar_url":"https://github.com/FelipeKoga.png","language":"Kotlin","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"androidApp/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp\" alt=\"DeepLink Launcher Logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eDeepLink Launcher\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  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.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/FelipeKoga/deeplink-launcher/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/FelipeKoga/deeplink-launcher\" alt=\"Stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/FelipeKoga/deeplink-launcher/actions/workflows/release.yml\"\u003e\n    \u003cimg src=\"https://github.com/FelipeKoga/deeplink-launcher/actions/workflows/release.yml/badge.svg\" alt=\"Release\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Demo\n[![demo](https://github.com/user-attachments/assets/174c5fdd-8e15-4ae2-aa9c-94fc72e2c13c)](https://www.youtube.com/watch?v=umB3ZlYJMGA)\n\n## Supported Platforms\n\n| Platform  | Status  | Download                                                      |\n|-----------|---------|--------------------------------------------------------------|\n| **Android**  | ✅ Available | [Download on Google Play](https://play.google.com/store/apps/details?id=dev.koga.deeplinklauncher.android) |\n| **iOS**      | ✅ Available | Not yet released.                                             |\n| **Desktop**  | ✅ Available | [Download for Desktop](https://github.com/FelipeKoga/deeplink-launcher/releases) |\n\n## Features\n\n- **Execute Deeplinks**: Instantly execute deeplinks on Android, iOS, and Desktop platforms.\n- **Device Bridge**: The Desktop app integrates with **ADB** (Android) and **Xcrun** (iOS) to run deeplinks directly on devices in real-time.\n- **Auto-suggestions**: Get suggestions for deeplinks based on previously executed links.\n- **Deeplink History**: Easily track and revisit all previously executed deeplinks.\n- **Favorites**: Mark your most used deeplinks as favorites for quick access.\n- **Folders**: Organize your deeplinks into folders for better management.\n- **Export/Import**: Export and share your deeplinks in **JSON** or **TXT** formats. Import deeplinks as needed.\n- **Duplicate Deeplinks**: Quickly duplicate existing deeplinks to save time on similar or recurring tasks.\n- **Theme Support**: Choose between Light and Dark themes to match your preferences.\n- **Search**: Find any deeplink fast with the built-in search functionality.\n- **In-App Purchase**: Support the project by buying a coffee (Android only).\n\n## Built With\n\n| Technology | Description |\n|------------|-------------|\n| [**Compose Multiplatform**](https://github.com/JetBrains/compose-jb) | A modern UI toolkit for building native UIs across all platforms. |\n| [**Voyager**](https://github.com/adrielcafe/voyager) | A multiplatform navigation library. |\n| [**Koin**](https://insert-koin.io/) | A powerful dependency injection framework for Kotlin. |\n| [**SQLDelight**](https://cashapp.github.io/sqldelight/) | A multiplatform database library that generates type-safe Kotlin APIs. |\n| [**DataStore**](https://developer.android.com/jetpack/androidx/releases/datastore) | A modern data storage solution for key-value pairs or protocol buffers with Kotlin coroutines. |\n| [**Material3**](https://m3.material.io/) | Google's design system for a consistent user experience across platforms. |\n| [**Kotlinx Immutable**](https://github.com/Kotlin/kotlinx.collections.immutable) | Immutable collections for Kotlin. |\n| [**Kotlinx DateTime**](https://github.com/Kotlin/kotlinx-datetime) | Library for working with date and time in Kotlin. |\n| [**AboutLibraries**](https://github.com/mikepenz/AboutLibraries) | Displays open-source libraries used in Android apps. |\n| [**Detekt**](https://github.com/detekt/detekt) | A static code analysis tool for Kotlin. |\n| [**Ktlint**](https://github.com/pinterest/ktlint) | A Kotlin linter for enforcing code style guidelines. |\n| [**MPFilePicker**](https://github.com/Wavesonics/compose-multiplatform-file-picker) | A multiplatform file picker for Compose. |\n| [**Material 3 Window Size Class**](https://github.com/chrisbanes/material3-windowsizeclass-multiplatform) | A library to detect window size across different platforms. |\n| [**RevenueCat**](https://www.revenuecat.com/) | In-app purchase library for managing subscriptions and one-time purchases. |\n\n## Architecture Overview\n\nThe architecture used is designed to enforce modularization and encapsulation, promoting clean and maintainable code. Here's how it is structured:\n\n### Modules\nEach feature in the app is divided into three submodules:\n\n1. **:ui**\n   - Contains the user interface components (e.g., screens, widgets, and Compose code).\n   - Depends on the **API Module** for any shared interfaces or contracts.\n\n2. **:ui**\n   - Implements the business logic and core functionality of the feature.\n   - Depends on the **API Module** for interface definitions.\n   - Completely hidden from other feature modules to prevent tight coupling.\n\n3. **:api**\n   - Defines public contracts, such as interfaces and shared data models.\n   - Serves as the communication layer between **UI** and **Impl**, and is the only module exposed to other feature modules.\n\n### Rules\n- **Feature Isolation**: Other feature modules can only access the **API** or **UI Module** of another feature, ensuring clear boundaries and reducing dependencies.\n- **Encapsulation**: The **Impl Module** is internal to the feature, encapsulating its implementation details.\n- **Reusability**: Common components can be placed in the **API Module** for easy reuse across the app.\n\nThis approach ensures:\n- **Scalability**: Features can be developed, tested, and maintained independently.\n- **Clear Dependency Management**: Modules explicitly declare their dependencies, making it easy to track changes.\n- **Improved Code Quality**: Separation of concerns makes the codebase easier to navigate and less prone to bugs.\n\n### References\n- [Android Modularization](https://www.reddit.com/r/RedditEng/comments/vwrrrf/android_modularization/)\n- [Android at Scale @ Square](https://www.droidcon.com/2019/11/15/android-at-scale-square/)\n\n\n---\n\nFeel free to reach out with any questions or suggestions! 😄\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFelipeKoga%2Fdeeplink-launcher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFelipeKoga%2Fdeeplink-launcher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFelipeKoga%2Fdeeplink-launcher/lists"}