SuriDevs Logo

Latest Tutorials

Hands-on Android and Flutter tutorials from building real production apps. Covering Kotlin, Jetpack Compose, MVVM, Room, Coroutines, Riverpod, and more — with code you can actually use.

Jetpack Compose Dark Mode: Three-Way Theme Switching Guide
Android JetpackCompose Kotlin DarkMode MaterialTheme

Jetpack Compose Dark Mode: Three-Way Theme Switching Guide

The real-world Jetpack Compose dark mode implementation: three-way user override, ViewModel persistence across restarts, AppCompatDelegate sync for XML views, and a custom brand color system beyond M3's 30 roles.

CameraX Feature Groups: HDR + 60 FPS Compatibility
Android CameraX CameraAPI

CameraX Feature Groups: HDR + 60 FPS Compatibility

CameraX 1.6's Feature Group API lets you check if camera feature combinations work before enabling them. No more crashing when you try to combine HDR with 60 FPS on unsupported devices.

Flutter Riverpod: Loading, Error & Success States Guide
Flutter Riverpod State Management Dart AsyncValue

Flutter Riverpod: Loading, Error & Success States Guide

Every Flutter screen has three states: loading, error, success. Most apps get this wrong. Here's the production pattern I use with Riverpod — including the mistakes I shipped and what I do differently now.

Change App Language in Android (Jetpack Compose) — Runtime Locale Switch
Android Jetpack Compose Kotlin Localization

Change App Language in Android (Jetpack Compose) — Runtime Locale Switch

Skip the Activity recreate hack. Use Android 13's per-app language API with an AppCompat backport — switch languages at runtime in Compose without losing state.

Jetpack Compose Layouts: When to Use Row, Column, Box & ConstraintLayout
Android Jetpack Compose UI Design Kotlin

Jetpack Compose Layouts: When to Use Row, Column, Box & ConstraintLayout

I've built production screens with all four layout types. Row, Column, and Box handle 90% of cases — but knowing when to reach for ConstraintLayout saves you from nested layout nightmares.

Jetpack Navigation 3 Migration: Type-Safe Routes & Nav2
Android Jetpack Compose Navigation Kotlin Architecture

Jetpack Navigation 3 Migration: Type-Safe Routes & Nav2

A practical guide to Jetpack Navigation 3 covering type-safe routes, bottom navigation with multiple back stacks, deep link handling, shared ViewModels, and step-by-step migration from Navigation 2.