A first-hand account of migrating a 170+ screen Android app from Navigation 2 to Navigation 3 in early 2026. The author details the two-week solo migration effort, key motivations (adaptive layouts, MVI alignment, Google's large-screen push), and unexpected challenges including the lack of incremental migration support, missing Bottom Sheet support in Nav3, deeplink restructuring, and a post-release serialization crash requiring a hotfix. The post also reflects on how Claude Code's later Nav3 migration support would have halved the effort, and closes with practical advice on when not to migrate and lessons learned around serialization, Bottom Sheet stack management, and stabilization time.
Nguồn: https://proandroiddev.com/migrating-app-to-navigation-3-pain-overtimes-and-hotfixes-88321b59314b. 8sync News chỉ tóm tắt và dẫn link; bản quyền nội dung thuộc tác giả và nguồn gốc.
Bản tin jetc.dev số 319 cập nhật các phiên bản mới nhất của Jetpack Compose gồm bản vá 1.11.3, beta 1.12 đầu tiên và Compose Multiplatform 1.12.0-alpha02. Nội dung nổi bật bao gồm hỗ trợ iOS cho Jetpack Ink, các BOM mới, lifecycle/viewmodel-compose 2.11.0 mở rộng đa nền tảng, thư viện locationbutton Compose mới, cùng nhiều chủ đề như scoping ViewModel, Coil 3 cho tải ảnh đa nền tảng, kiểm thử screenshot theo locale, và các thư viện mã nguồn mở mới.
Những tiến bộ mới trong Jetpack Compose và Compose Multiplatform từ phiên bản 1.12 beta sẽ giúp bạn tối ưu hóa ứng dụng Android/iOS/native với các tính năng mới như ink iOS, viewmodel scoping và Coil 3, từ đó nâng cao hiệu suất và tính đa nền tảng cho dự án.
JetBrains is sunsetting Kotlin Notebook, its interactive coding plugin launched in 2023, citing low adoption and AI-driven workflow changes. The plugin will be unbundled from IntelliJ IDEA 2026.2 and open-sourced under Apache 2.0, but no compatible version will be published for 2026.3 onward. This follows Microsoft's February deprecation of Polyglot Notebooks for C# and .NET. The real underlying reason, the piece argues, is that notebook culture is deeply Python-native — rooted in data science workflows — and neither Kotlin nor C# developer communities adopted it the way Python developers use Jupyter. Meanwhile, Jupyter itself is thriving: GitHub Octoverse data shows a 75% year-over-year growth in repositories containing Jupyter Notebooks, and usage nearly doubled in AI-tagged repos. Google Colab, built Python-first from the start, has leaned into AI features rather than retreating. JetBrains, for its part, is pivoting toward AI-native tooling, having open-sourced its Mellum2 coding model the same month it killed Kotlin Notebook.
Mobile observability goes far beyond crash reporting. A mature architecture connects five signal classes — crashes, structured logs, distributed traces, API failure telemetry, and business events — using shared correlation identifiers (session ID, flow ID, trace context headers) across mobile clients and backend services. The post covers a four-layer model (instrumentation, correlation, backend propagation, analysis), a Kotlin OkHttp interceptor example for attaching request context, common misconceptions (crash-free rate ≠ healthy app, backend traces don't explain client-side failures), key architectural trade-offs (privacy vs. detail, fidelity vs. cost, real-time vs. battery), and a practical checklist. A real-world case study illustrates how joining mobile API failure events, backend payment traces, and product analytics revealed a post-payment polling bug invisible to any single dashboard.
Reactive Data Layer Architecture (RDLA) is a mobile-optimized pattern for Android that addresses shortcomings of MVP and Clean Architecture in reactive, offline-first apps. It enforces a strict split between public API contracts and private implementation modules, uses Kotlin Flow cold streams so the UI subscribes to data rather than polling, and treats the local Room database as the single source of truth. The article walks through a heart rate tracking example covering the API module, repository coordinator, Room data source, ViewModel with StateFlow/SharedFlow, asynchronous mutation queues merged on-the-fly, WorkManager-backed background sync, conflict resolution with rollbacks, and a TestExtensions pattern for Robolectric-based unit tests without SQLite mocking.

A walkthrough on building an icon picker component in Jetpack Compose that leverages the Material Icons Extended library. Instead of bundling custom icons, the approach uses Kotlin reflection to dynamically load icons from the Material Icons set by their string identifiers stored in strings.xml. Key implementation details include: adding the material-icons-extended dependency, using reflection to create ImageVectors from string names, storing icon IDs in a string-array resource, and building a composable with a search bar, real-time filtering, and a grid display. The sorting logic prioritizes icons whose names most closely match the search query.
EelApi is a new IntelliJ Platform API that lets plugin authors write code that works uniformly across local machines, WSL distributions, and Dev Containers. Instead of hardcoding assumptions about paths, processes, environment variables, and networking, plugins obtain an EelApi instance from a Project or Path and use it for filesystem access, process execution, TCP tunneling, and OS detection in the target environment. The post explains the motivation (WSL and containers break local-centric IDE assumptions), covers the EelDescriptor/EelMachine distinction, provides Kotlin code examples for common scenarios (deploying a CLI tool, running processes, passing environment-aware paths, port forwarding), and clarifies how EelApi differs from the remote development Split mode. The API is currently marked experimental but is already powering WSL and native Dev Container support in IntelliJ IDEA 2026.1.
A developer rebuilt a 3D chess game using React Native as the UI shell while keeping all game logic in Kotlin Multiplatform compiled to JavaScript via Kotlin/JS. The architecture separates concerns strictly: chess rules, FEN handling, UCI integration, scene math, camera, and raycasting all live in a single Kotlin module compiled once to JS and shared across iOS, Android, web, and desktop. Two renderers are used — React Native Filament for mobile and Three.js for web/desktop — both consuming the same Kotlin Board3DScene model. Stockfish is the deliberate native exception, running as a TurboModule on Android for compute-intensive chess search. The key insight is that Kotlin's type safety guarantees (null safety, exhaustive when expressions, sealed types) survive into the emitted JS, making it preferable to TypeScript for correctness-critical game logic.
Amper 0.11.0 has been rebranded as the Kotlin Toolchain and graduated to Alpha status. The release introduces a unified kotlin CLI command for project creation, building, running, testing, and publishing. Key new features include JVM library publishing to Maven repositories and Maven Central (with automatic PGP signing, sources/javadoc JARs, and POM metadata), global CLI installation via SDKMAN!, C interop support via .def files, improved terminal UI with native progress indicators, and module-wide dependency resolution in the IDE. Plugin development gains new APIs including custom checks, custom commands, and a generated section for registering generated files. Several default dependency versions were also updated including Kotlin 2.3.21, Spring Boot 4.0.6, and Ktor 3.4.3. Existing Amper users must replace wrapper scripts and switch to the new IntelliJ IDEA plugin.