Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions radar/2026-05-12/arkana-android.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/arkana-ios.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/batch-android.md
Original file line number Diff line number Diff line change
@@ -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/)
12 changes: 12 additions & 0 deletions radar/2026-05-12/batch-ios.md
Original file line number Diff line number Diff line change
@@ -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/)
33 changes: 33 additions & 0 deletions radar/2026-05-12/compose-multiplatform.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/filekit.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/google-truth.md
Original file line number Diff line number Diff line change
@@ -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/)
12 changes: 12 additions & 0 deletions radar/2026-05-12/gradle-android-test-aggregation-plugin.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/gradle-convention-plugins.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/human-readable.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/kizitonwose-calendar.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/libphonenumber.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/mockk.md
Original file line number Diff line number Diff line change
@@ -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/)
12 changes: 12 additions & 0 deletions radar/2026-05-12/modularization-spm.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/room-kmp.md
Original file line number Diff line number Diff line change
@@ -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)
12 changes: 12 additions & 0 deletions radar/2026-05-12/swift6.md
Original file line number Diff line number Diff line change
@@ -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/)