From e99cee655d413325516bef4da872fd2f1b6f19fd Mon Sep 17 00:00:00 2001 From: Axel Glibert Date: Tue, 12 May 2026 13:19:32 +0200 Subject: [PATCH] feat(content): add new content --- radar/2026-05-12/arkana-android.md | 12 +++++++ radar/2026-05-12/arkana-ios.md | 12 +++++++ radar/2026-05-12/batch-android.md | 12 +++++++ radar/2026-05-12/batch-ios.md | 12 +++++++ radar/2026-05-12/compose-multiplatform.md | 33 +++++++++++++++++++ radar/2026-05-12/filekit.md | 12 +++++++ radar/2026-05-12/google-truth.md | 12 +++++++ .../gradle-android-test-aggregation-plugin.md | 12 +++++++ radar/2026-05-12/gradle-convention-plugins.md | 12 +++++++ radar/2026-05-12/human-readable.md | 12 +++++++ radar/2026-05-12/kizitonwose-calendar.md | 12 +++++++ radar/2026-05-12/libphonenumber.md | 12 +++++++ radar/2026-05-12/mockk.md | 12 +++++++ radar/2026-05-12/modularization-spm.md | 12 +++++++ radar/2026-05-12/room-kmp.md | 12 +++++++ radar/2026-05-12/swift6.md | 12 +++++++ 16 files changed, 213 insertions(+) create mode 100644 radar/2026-05-12/arkana-android.md create mode 100644 radar/2026-05-12/arkana-ios.md create mode 100644 radar/2026-05-12/batch-android.md create mode 100644 radar/2026-05-12/batch-ios.md create mode 100644 radar/2026-05-12/compose-multiplatform.md create mode 100644 radar/2026-05-12/filekit.md create mode 100644 radar/2026-05-12/google-truth.md create mode 100644 radar/2026-05-12/gradle-android-test-aggregation-plugin.md create mode 100644 radar/2026-05-12/gradle-convention-plugins.md create mode 100644 radar/2026-05-12/human-readable.md create mode 100644 radar/2026-05-12/kizitonwose-calendar.md create mode 100644 radar/2026-05-12/libphonenumber.md create mode 100644 radar/2026-05-12/mockk.md create mode 100644 radar/2026-05-12/modularization-spm.md create mode 100644 radar/2026-05-12/room-kmp.md create mode 100644 radar/2026-05-12/swift6.md diff --git a/radar/2026-05-12/arkana-android.md b/radar/2026-05-12/arkana-android.md new file mode 100644 index 0000000..00366dd --- /dev/null +++ b/radar/2026-05-12/arkana-android.md @@ -0,0 +1,12 @@ +--- +title: Arkana +ring: adopt +quadrant: android +tags: [security, secrets-management, kotlin] +--- + +Arkana is a tool for managing secret keys and sensitive configuration values in Android (and iOS) projects. It encrypts secrets at build time and generates typed Kotlin (or Swift) accessors, keeping credentials out of source control and avoiding plain-text exposure in the codebase. + +### Docs + +[Link to the documentation](https://github.com/rogerluan/arkana) diff --git a/radar/2026-05-12/arkana-ios.md b/radar/2026-05-12/arkana-ios.md new file mode 100644 index 0000000..36fe7d6 --- /dev/null +++ b/radar/2026-05-12/arkana-ios.md @@ -0,0 +1,12 @@ +--- +title: Arkana +ring: adopt +quadrant: ios +tags: [security, secrets-management, swift] +--- + +Arkana is a tool for managing secret keys and sensitive configuration values in iOS (and Android) projects. It encrypts secrets at build time and generates typed Swift (or Kotlin) accessors, keeping credentials out of source control and avoiding plain-text exposure in the codebase. + +### Docs + +[Link to the documentation](https://github.com/rogerluan/arkana) diff --git a/radar/2026-05-12/batch-android.md b/radar/2026-05-12/batch-android.md new file mode 100644 index 0000000..cee68b8 --- /dev/null +++ b/radar/2026-05-12/batch-android.md @@ -0,0 +1,12 @@ +--- +title: Batch (Notifications) +ring: adopt +quadrant: android +tags: [push-notifications, engagement, analytics] +--- + +Batch is a mobile engagement platform providing push notification, in-app messaging, and analytics capabilities for Android applications. It simplifies notification scheduling, audience segmentation, and delivery tracking while offering a clean SDK integration for Kotlin/Java projects. + +### Docs + +[Link to the documentation](https://doc.batch.com/android/sdk-integration/prerequisites/) diff --git a/radar/2026-05-12/batch-ios.md b/radar/2026-05-12/batch-ios.md new file mode 100644 index 0000000..0be8e87 --- /dev/null +++ b/radar/2026-05-12/batch-ios.md @@ -0,0 +1,12 @@ +--- +title: Batch (Notifications) +ring: adopt +quadrant: ios +tags: [push-notifications, engagement, analytics] +--- + +Batch is a mobile engagement platform providing push notification, in-app messaging, and analytics capabilities for iOS applications. It simplifies notification scheduling, audience segmentation, and delivery tracking while offering a clean SDK integration for Swift projects. + +### Docs + +[Link to the documentation](https://doc.batch.com/ios/sdk-integration/prerequisites/) diff --git a/radar/2026-05-12/compose-multiplatform.md b/radar/2026-05-12/compose-multiplatform.md new file mode 100644 index 0000000..53dbc5e --- /dev/null +++ b/radar/2026-05-12/compose-multiplatform.md @@ -0,0 +1,33 @@ +--- +title: "Compose Multiplatform" +ring: adopt +quadrant: android +tags: [android, ios, desktop, web, ui-components, cross-platform] +--- + +Compose Multiplatform is JetBrains' declarative UI framework that extends Android's Jetpack Compose to support multiple platforms including iOS, desktop (Windows, macOS, Linux), and web. It enables developers to create native user interfaces using a single codebase while maintaining platform-specific look and feel. + +Built on top of Kotlin Multiplatform, Compose Multiplatform uses a reactive programming model where UI is described as functions of state. The framework provides platform-specific implementations that render native UI components, ensuring optimal performance and adherence to platform design guidelines. + +### Justification for Categorization + +Compose Multiplatform is placed in the TRIAL category because while it shows tremendous promise, it's still evolving rapidly with some platform implementations being more mature than others. The Android implementation is production-ready, desktop support is stable, but iOS and web implementations are still in alpha/experimental stages. The framework represents the future of cross-platform UI development with its modern declarative approach, but teams should carefully evaluate platform-specific requirements and stability needs. Early adopters report positive experiences, but the ecosystem is still developing compared to more established solutions. + +### Key Benefits +- **Declarative UI**: Modern reactive programming model +- **Native Performance**: Platform-specific rendering engines +- **Shared UI Logic**: Consistent behavior across platforms +- **Hot Reload**: Fast development iteration +- **Kotlin Integration**: Seamless integration with Kotlin Multiplatform + +### Platform Maturity +- **Android**: Production ready (Jetpack Compose) +- **Desktop**: Stable and production ready +- **iOS**: Alpha stage, rapid development +- **Web**: Experimental, limited features + +### Docs +- Official Documentation: [https://www.jetbrains.com/lp/compose-multiplatform/](https://www.jetbrains.com/lp/compose-multiplatform/) +- Getting Started: [https://github.com/JetBrains/compose-multiplatform#readme](https://github.com/JetBrains/compose-multiplatform#readme) +- GitHub Repository: [https://github.com/JetBrains/compose-multiplatform](https://github.com/JetBrains/compose-multiplatform) +- Samples: [https://github.com/JetBrains/compose-multiplatform/tree/master/examples](https://github.com/JetBrains/compose-multiplatform/tree/master/examples) \ No newline at end of file diff --git a/radar/2026-05-12/filekit.md b/radar/2026-05-12/filekit.md new file mode 100644 index 0000000..418ba5a --- /dev/null +++ b/radar/2026-05-12/filekit.md @@ -0,0 +1,12 @@ +--- +title: FileKit +ring: trial +quadrant: android +tags: [file, kotlin, multiplatform, kmp] +--- + +FileKit is a Kotlin Multiplatform library by vinceglb that provides a unified API for file picking and saving across Android, iOS, desktop, and web. It abstracts platform-specific file system dialogs and permissions behind a simple, coroutine-friendly interface, making file handling straightforward in shared KMP codebases. + +### Docs + +[Link to the documentation](https://github.com/vinceglb/FileKit) diff --git a/radar/2026-05-12/google-truth.md b/radar/2026-05-12/google-truth.md new file mode 100644 index 0000000..3d9e5ad --- /dev/null +++ b/radar/2026-05-12/google-truth.md @@ -0,0 +1,12 @@ +--- +title: Truth (Google) +ring: adopt +quadrant: android +tags: [testing, assertions, kotlin, java] +--- + +Google Truth is a fluent assertion library for Java and Kotlin that produces highly readable test failure messages. It integrates seamlessly with JUnit and provides rich assertion APIs for collections, optionals, proto messages, and more, making test failures easier to diagnose. + +### Docs + +[Link to the documentation](https://truth.dev/) diff --git a/radar/2026-05-12/gradle-android-test-aggregation-plugin.md b/radar/2026-05-12/gradle-android-test-aggregation-plugin.md new file mode 100644 index 0000000..c7a1af9 --- /dev/null +++ b/radar/2026-05-12/gradle-android-test-aggregation-plugin.md @@ -0,0 +1,12 @@ +--- +title: gradle-android-test-aggregation-plugin +ring: trial +quadrant: android +tags: [testing, gradle, coverage, reporting] +--- + +The `gradle-android-test-aggregation-plugin` by gmazzo aggregates unit and instrumented test results and code coverage reports from all modules in a multi-module Android project into a single unified report. This is especially valuable in modularized builds where running tests across many modules would otherwise produce scattered, hard-to-consolidate outputs. + +### Docs + +[Link to the documentation](https://github.com/gmazzo/gradle-android-test-aggregation-plugin) diff --git a/radar/2026-05-12/gradle-convention-plugins.md b/radar/2026-05-12/gradle-convention-plugins.md new file mode 100644 index 0000000..c1ef449 --- /dev/null +++ b/radar/2026-05-12/gradle-convention-plugins.md @@ -0,0 +1,12 @@ +--- +title: Gradle Convention Plugins +ring: trial +quadrant: android +tags: [gradle, build, kotlin, modularization] +--- + +Gradle Convention Plugins allow teams to extract and share common build logic across modules into reusable plugins. Instead of copy-pasting the same Gradle configuration into every module, a convention plugin centralises rules (Android setup, linting, testing, etc.) in one place, making multi-module builds easier to maintain and consistent. + +### Docs + +[Link to the documentation](https://medium.com/@sridhar-sp/simplify-your-android-builds-a-guide-to-convention-plugins-b9fea8c5e117) diff --git a/radar/2026-05-12/human-readable.md b/radar/2026-05-12/human-readable.md new file mode 100644 index 0000000..c3faba2 --- /dev/null +++ b/radar/2026-05-12/human-readable.md @@ -0,0 +1,12 @@ +--- +title: Human-Readable +ring: trial +quadrant: android +tags: [formatting, kotlin, multiplatform, kmp, utilities] +--- + +Human-Readable by jacobras is a Kotlin Multiplatform library that formats raw data values (file sizes, durations, dates, etc.) into human-friendly strings. It simplifies the common task of displaying machine values in a readable way across Android and iOS without writing custom formatting logic per platform. + +### Docs + +[Link to the documentation](https://github.com/jacobras/Human-Readable) diff --git a/radar/2026-05-12/kizitonwose-calendar.md b/radar/2026-05-12/kizitonwose-calendar.md new file mode 100644 index 0000000..e6c7445 --- /dev/null +++ b/radar/2026-05-12/kizitonwose-calendar.md @@ -0,0 +1,12 @@ +--- +title: Calendar (kizitonwose) +ring: trial +quadrant: android +tags: [calendar, ui, compose] +--- + +kizitonwose/Calendar is a highly customizable calendar library for Android, supporting both View-based and Jetpack Compose implementations. It provides week and month calendar views with full control over day, header, and footer rendering, making it easy to build rich scheduling UIs. + +### Docs + +[Link to the documentation](https://github.com/kizitonwose/Calendar) diff --git a/radar/2026-05-12/libphonenumber.md b/radar/2026-05-12/libphonenumber.md new file mode 100644 index 0000000..a143e81 --- /dev/null +++ b/radar/2026-05-12/libphonenumber.md @@ -0,0 +1,12 @@ +--- +title: libphonenumber (Google) +ring: adopt +quadrant: android +tags: [phone-number, validation, formatting, kotlin, java] +--- + +Google's libphonenumber is the industry-standard library for parsing, formatting, and validating international phone numbers on Android. It supports virtually all country formats and provides utilities for number type detection (mobile, landline, etc.), making it the go-to solution for any phone number input handling. + +### Docs + +[Link to the documentation](https://github.com/google/libphonenumber) diff --git a/radar/2026-05-12/mockk.md b/radar/2026-05-12/mockk.md new file mode 100644 index 0000000..b8687fe --- /dev/null +++ b/radar/2026-05-12/mockk.md @@ -0,0 +1,12 @@ +--- +title: MockK +ring: adopt +quadrant: android +tags: [testing, mocking, kotlin] +--- + +MockK is the idiomatic mocking library for Kotlin. It provides a clean DSL for creating mocks, spies, and stubs, with first-class support for coroutines, suspend functions, extension functions, and companion objects — areas where Java-based mocking libraries fall short in Kotlin projects. + +### Docs + +[Link to the documentation](https://mockk.io/) diff --git a/radar/2026-05-12/modularization-spm.md b/radar/2026-05-12/modularization-spm.md new file mode 100644 index 0000000..5047afa --- /dev/null +++ b/radar/2026-05-12/modularization-spm.md @@ -0,0 +1,12 @@ +--- +title: Modularization (SPM) +ring: trial +quadrant: ios +tags: [architecture, swift-package-manager, modularization] +--- + +Modularizing an iOS application using Swift Package Manager (SPM) means splitting the codebase into discrete, independently compilable packages (feature modules, shared utilities, design system, etc.). This approach improves build times through incremental compilation, enforces clear API boundaries, enables better code ownership, and makes unit testing each module in isolation straightforward. + +### Docs + +[Link to the documentation](https://developer.apple.com/documentation/xcode/organizing-your-code-with-local-packages) diff --git a/radar/2026-05-12/room-kmp.md b/radar/2026-05-12/room-kmp.md new file mode 100644 index 0000000..71d5933 --- /dev/null +++ b/radar/2026-05-12/room-kmp.md @@ -0,0 +1,12 @@ +--- +title: Room (KMP) +ring: adopt +quadrant: android +tags: [database, kotlin, multiplatform, kmp, sqlite] +--- + +Room for Kotlin Multiplatform extends Google's battle-tested Room persistence library to work across Android and iOS targets. It brings the same annotation-based DAO pattern, type-safe queries, and migration support that Android developers know, now usable from shared KMP modules backed by SQLite on both platforms. + +### Docs + +[Link to the documentation](https://developer.android.com/kotlin/multiplatform/room) diff --git a/radar/2026-05-12/swift6.md b/radar/2026-05-12/swift6.md new file mode 100644 index 0000000..9cb83cb --- /dev/null +++ b/radar/2026-05-12/swift6.md @@ -0,0 +1,12 @@ +--- +title: Swift 6 +ring: adopt +quadrant: ios +tags: [swift, concurrency, type-safety] +--- + +Swift 6 introduces strict concurrency checking enforced at compile time, eliminating entire classes of data-race conditions. It builds on the structured concurrency model (async/await, actors) introduced in Swift 5.5 and makes safe concurrent code the default rather than an opt-in. Adopting Swift 6 requires resolving concurrency warnings progressively, but it results in more robust, thread-safe codebases. + +### Docs + +[Link to the documentation](https://www.swift.org/migration/documentation/migrationguide/)