Commit Graph

64 Commits

Author SHA1 Message Date
Igor Escodro
22b9664e44 ✨ Refactor KMP extension function for clarity
Renamed the `setFrameworkBaseName` extension function to
`configureTargets` to more accurately reflect its purpose of configuring
Kotlin Multiplatform targets. All Gradle build scripts across the
modules have been updated to use the new function name.
2025-12-31 16:20:49 -05:00
Igor Escodro
97acc41c6a ✨ Refactor KMP framework configuration and add bundle ID
Refactored the iOS framework configuration from `shared/build.gradle
.kts` into a reusable `setFrameworkBaseName` extension function. This
change simplifies the build script by replacing boilerplate code with a
single function call.

Additionally, the `bundleId` is now set for the generated iOS framework.
2025-12-31 16:19:03 -05:00
Igor Escodro
164ff93c12 Merge pull request #1127 from igorescodro/update/pages
🚀 Fix release scripts
2025-12-30 20:11:08 -05:00
Igor Escodro
6af7c8b40e 🛳️ Add support for iosArm64 target
Introduces the `iosArm64` target to the Kotlin Multiplatform
configuration, enabling the project to build for physical iOS devices.

The `jvm("desktop")` target declaration was also moved out of the iOS
configuration loop for correctness.
2025-12-30 20:07:44 -05:00
Igor Escodro
670e397baa 📽️ Set iOS framework to be static
Configured the generated iOS framework to be static to align with the
project's build requirements. This ensures the framework is linked at
compile time.
2025-12-30 18:40:47 -05:00
Igor Escodro
126c837165 📝 Docs: Add and update READMEs for all modules
Added and updated `README.md` files for every module to provide a clear
and detailed description of their responsibilities. This includes
documenting the purpose of the `data`, `domain`, `features`,
`libraries`, and platform-specific layers, improving overall project
clarity and maintainability.
2025-12-30 18:21:24 -05:00
Igor Escodro
57e9674c92 🗑️ Remove Ktlint compose rules and refactor Gradle scripts
Removed the dependency on `io.nlopez.compose.rules:ktlint` from the
build configuration and version catalog.

This change also includes:
- Deleting the now-unused `VersionCatalogBundles.kt` file.
- Cleaning up obsolete dependency accessors in
`VersionCatalogLibraries.kt`.
- Adding suppressions for unused entries in `libs.versions.toml`.
2025-12-30 13:25:15 -05:00
Igor Escodro
1d6c2b8cd0 🦃 Refactor Gradle plugins to use version catalog aliases
Migrated the application of custom Gradle convention plugins from
hardcoded string IDs to type-safe accessors from the version catalog
(`libs.versions.toml`). This change improves maintainability and
consistency across all modules.
2025-12-30 13:25:15 -05:00
Igor Escodro
625c01dfb2 🖥️️ Improve iOS build performance
Disabled the compiler index store during the Xcode build to improve
performance.
2025-12-30 12:18:58 -05:00
Igor Escodro
7b7663ba54 🚵‍♀️ Run all tests in the same task
Now the Instrumented Tests and Unit Tests will run together, for each
environment.
2025-12-29 15:18:51 -05:00
Igor Escodro
f24f0b114c 🧵 Fix detekt again
Fixing the Detekt setup again to ensure it's working properly.
2025-12-29 12:01:08 -05:00
Igor Escodro
90194e8f16 🗑️ Clean up unused Gradle dependencies
Removed several obsolete dependencies from the version catalog (`libs
.versions.toml`) to simplify the build configuration. This includes the
Compose BOM, its corresponding bundle, `play-delivery`, `androidx
.annotation`, and `koin-android`.

Additionally, unused extension properties were removed from `VersionCatalogLibraries.kt` to align with the dependency cleanup.
2025-12-27 11:47:49 -05:00
Igor Escodro
7d21dff7e3 🗑️ Remove Gradle plugin for dynamic features
Deletes the `com.escodro.android-dynamic.gradle.kts` convention plugin,
which was responsible for configuring Android dynamic feature modules.
2025-12-27 11:47:49 -05:00
Igor Escodro
6599b5f37d 🛠️ Improve Detekt task ordering for Compose resources
Updated the Detekt configuration to ensure it runs after resource
accessorgeneration tasks. This prevents potential issues during static
analysis by establishing an explicit ordering with Compose-related
resource generation.
2025-12-26 21:11:25 -05:00
Igor Escodro
af5c592af8 🫆 Fix Detekt setup
After upgrading to Detekt 2.0, the task was not working properly. The
results were always successful regardless of the changes in the code.
This was happening because additional configuration was needed for KMP
projects.
2025-12-26 21:11:25 -05:00
Igor Escodro
2162821e6d 🗑️ Remove legacy Gradle convention plugins
Removes the `android-library` and `android-compose` convention plugins.
The associated `CommonExtension.kt` file, containing shared
configuration logic, has also been deleted as it is no longer required.
2025-12-26 17:48:49 -05:00
Igor Escodro
5aa336c720 🔌 Refactor Gradle scripts to use the Android KMP library plugin
Migrated the build configuration from `com.android.library` to the newer
`com.android.kotlin.multiplatform.library` plugin. This change
centralizes the Android configuration within the `kotlin` block.

Key changes include:
- Replaced `androidTarget` with the `androidLibrary` DSL.
- Moved `compileSdk`, `minSdk`, and resource settings into the `kotlin
.androidLibrary` block.
- Added explicit configuration for host and device tests.
- Updated the parcelize plugin application to use the `kotlin("plugin
.parcelize")` syntax.
2025-12-26 17:46:27 -05:00
Igor Escodro
92cfb38dfb 🔧 Rename libs in precompiled Gradle scripts
Previously, the scripts using the Version Catalog extension were working
properly, but the IDE showed an error because the `libs` property
technically is not accessible from them. The issue was the name
shadowing, so renaming it fixes the IDE error. In addition, these
variables were updated to be private.
2025-12-12 11:05:21 -05:00
Igor Escodro
d034480508 🆙 Update Detekt to 2.0.0-alpha
Library updated to the latest alpha to work properly with the latest
changes in Compose rules. The ruleset was also updated to reflect this
changes.
2025-12-12 11:05:19 -05:00
Igor Escodro
6df2d805a4 ✨ Upgrade Kotlin API version to 2.2
Updated the Kotlin API version from 2.0 to 2.2 in the multiplatform
Gradle configuration.
2025-10-22 08:41:20 -04:00
Igor Escodro
d752596ea5 🛠️ Add workaround for Gradle 9 validation in unit test tasks
Ensured Android unit test lint tasks depend on Compose resource accessor
generation to resolve implicit dependency issues. This adjustment
enhances task reliability and complies with Gradle 9 validation rules.
2025-08-22 18:36:56 -04:00
Igor Escodro
602b67eab3 ✨ Refactor Gradle configuration and update dependencies
Reorganized Gradle scripts to improve readability and maintainability,
ensuring compliance with the latest Kotlin DSL. Added configuration
caching to the `gradle.properties`, removed obsolete modules, and
adjusted dependencies order for consistency.
2025-08-22 17:52:48 -04:00
Igor Escodro
338e637cb5 🌺 Spring cleaning
Several code improvements, lint suggestion, unused code removal and more
2025-03-29 12:43:15 -04:00
Igor Escodro
05004d9181 🚧 WIP 2025-03-28 14:40:23 -04:00
pigeon
f77e8504ea chore: fix lint 2025-01-16 00:35:18 +09:00
Igor Escodro
58b7013a8c 📽️ Update Kotlin DSL with new extensions
The extensions from KmpExtensions were replaced by the new additions in
the latest KMP plugin.
2024-05-25 19:29:41 -04:00
Igor Escodro
4e5edd2e08 📐 Migrate Compose Rules to the new project
Ever since Twitter killed the Android Team, the ComposeRules project was
deprecated and amazing devs fro the community forked and support it.
This changes moves to the project and fixes the new lint rules
2024-05-20 18:53:25 -04:00
Igor Escodro
d183bcc9ce ⚠️ Fix build warnings
Fixing some warnings for Detekt and Kotlin DSL.
2024-05-20 18:22:09 -04:00
Igor Escodro
09bdafe7bf 🧹 Clean up unused libraries and dependencies
Removing code is a great feeling!
2024-05-20 18:22:09 -04:00
Igor Escodro
671c634ee5 🎶 Create Parcelable plugin
Once the usage of CommonParcelable is repetitive, a new Gradle Plugin
was created to make it simpler.
2024-05-20 15:03:46 -04:00
Igor Escodro
fdc5b63b79 🔧 Fix the AndroidX Annotation warning
Warning removed from the `:splitInstall` module by explicitly adding the
dependency.
2024-05-19 20:03:14 -04:00
Igor Escodro
2a56098688 2️⃣ Update Alkaa to use K2
Alkaa updated to use the second version of the Kotlin Compiler. Compose
was also updated to use the one from the Kotlin repository.
2024-05-19 20:03:14 -04:00
Igor Escodro
1622eb7a5e 💂 Fix ProGuard issues
In the latest release (3.0.5), ProGuard was crashing the app during
startup. After some investigation, I decided to simply not obfuscate the
failing modules since only keeping the offending classes is causing
duplication issues.

Additional compiler rules were added to stop warning about StringFactory
https://issuetracker.google.com/issues/250197571

Lastly, the compiler was upgraded from 1.8 to 11 because the compiler
args needs this version.
2024-05-04 16:02:39 -04:00
Igor Escodro
56aa1093ed ⬆️ Upgrade AGP to 8.3.2
Update teh AGP to the latest version and update the `CommonExtension`
extension function adding the new wildcard for the new param in
AGP 8.3.x.
2024-04-17 22:36:19 -04:00
Igor Escodro
2fdbb9fa88 ✅ Fix the unit tests
A lot of oopsies fixed.
2023-11-02 14:21:49 -04:00
Igor Escodro
b5614460d7 ✨ Adapt Tracker to by dynamic on Android and static on iOS
Using some platform-specific dependencies and abstracting the core logic
of the Tracker feature, the following behavior was implemented:

- On Android, the feature still a Dynamic Feature that can be downloaded
by the users
- On iOS, the feature is static and will always be available for the
users
2023-10-12 09:07:09 -04:00
Igor Escodro
ae6223060c 🔧 Fix check reports issues
A silly mistake while migrating to Gradle 8 and `buildDir` was
deprecated. Turns out that `layout.buildDirectory` is not a simple
String replacement with the new path.

https://docs.gradle.org/current/userguide/upgrading_version_8.html#project_builddir
2023-09-05 16:38:30 -04:00
Igor Escodro
2e250a5cbb ♻️ Create plugin template for KMP modules
Creating plugins to make the setup easier and reduce boilerplate.
Additional changes need to comply with the build checks.
2023-08-24 09:24:00 -04:00
Igor Escodro
edf622aa0e 🔀 Merge remote-tracking branch 'origin/main' into alkaa-multiplatform
# Conflicts:
#	gradle/libs.versions.toml
#	plugins/src/main/java/AlkaaVersions.kt
2023-08-23 13:59:09 -04:00
Igor Escodro
8c0c175cad 🔖 Release Alkaa 2.3.0
New version released
2023-08-23 13:14:53 -04:00
renovate[bot]
3d4c4c1818 Update kotlin monorepo to v1.9.0 2023-08-23 10:58:33 -04:00
Igor Escodro
6da4cf0bb6 ⬆️ Update libraries to support Compose 1.5.0
- Accompanist updated
- Accompanist animation removed since the library is now inside Compose
1.5.0
2023-08-23 09:04:53 -04:00
Igor Escodro
73631086b8 ♻️ Centralize all versions in the Version Catalog file
Previously, some versions were inside the Version Catalog TOML and
others were in the AlkaaVersions file. Since the versioning and
compiling will be even more important now that we will compile with KMP,
all the versions are centralized in a single place.

Also, the VersionCatalogExtensions was broken in several classes to make
it easier to understand. They are: Bundles, Libraries and Versions.
2023-08-15 21:10:55 -04:00
Igor Escodro
5704ea6499 👽️ Update CommonExtension to reflect new API change
A new `*` param was added to match the changes in AGP 8.1.
2023-08-02 13:16:52 -04:00
Igor Escodro
e5741ebce3 🚨 Fix build warnings (#530)
Fix the `packagingOptions` and `textFieldColors` deprecations
2023-08-01 15:54:48 -04:00
Igor Escodro
d816993fcc 🔖 Release Alkaa 2.2.7
New version released
2023-07-13 11:49:24 -04:00
Igor Escodro
b338eec669 ➕ Add Compose BOM dependency (#478)
The Compose Bill Of Materials dependency was added to make it easier to
update and match different Compose versions. Kotlin and KSP were also
updated to match latest Compose.
2023-04-28 20:54:41 -04:00
Igor Escodro
2f12d88bf5 🔧 Fix Java version on Precompiled Script
Ops. The version inside com.escodro.android-library.gradle.kts was
hardcoded to Java 11. This was breaking the communication between the
repository and data source layers. Everything is fixed now.
2023-04-26 09:46:56 -04:00
Igor Escodro
93d671089b ⬆️ Update Java version to 17
Java updated from 11 to 17 to better match Gradle 8.0 requirements
2023-04-25 09:49:43 -04:00
Igor Escodro
f611aa10c1 🔖 Release Alkaa 2.2.6 (#449)
New version released
2023-03-31 15:11:03 -04:00