Android Tutorial #19: Play Store Publishing — Signing, Screenshots, ASO

You built the app. You tested it. CI/CD is set up. Now it is time to put it in front of real users. Publishing to the Play Store involves more than clicking “Upload.” You need to sign the app correctly, write a compelling store listing, take good screenshots, and understand how ASO (App Store Optimization) works. In this tutorial, you will learn the complete publishing process — from creating a developer account to staged rollouts. ...

July 9, 2026 · 8 min

Android Tutorial #18: CI/CD for Android — GitHub Actions + Fastlane

You push code. Tests run automatically. The App Bundle (AAB) is built and signed. It gets uploaded to the Play Store internal track. You never touch the build machine. This is CI/CD — Continuous Integration and Continuous Deployment. It saves hours of manual work and catches bugs before they reach users. In this tutorial, you will set up a complete CI/CD pipeline for your Android app using GitHub Actions and Fastlane. ...

July 9, 2026 · 8 min

Android Tutorial #17: Firebase — Auth, Crashlytics, Analytics, Remote Config

Firebase gives your Android app superpowers. User authentication in minutes. Crash reports that show exactly what happened. Analytics that track user behavior. Feature flags that let you change app behavior without an update. In this tutorial, you will integrate the most important Firebase services into your Android app — Authentication, Crashlytics, Analytics, Remote Config, Cloud Messaging, and App Check. Prerequisites: You should have a working Android app with Hilt. See Android Tutorial #2: Hilt if needed. ...

July 9, 2026 · 10 min

Android Tutorial #16: App Security — R8, ProGuard, Encrypted Storage, Biometrics

You built the app. It works. But before you ship it, you need to think about security. Can someone decompile your APK and read your code? Is the user’s data safe? Can a man-in-the-middle attack steal API tokens? In this tutorial, you will learn how to protect your Android app — from code shrinking with R8 to biometric authentication and encrypted storage. Prerequisites: You should have a working Android app. If you have been following this series, you already have everything you need. ...

July 8, 2026 · 9 min

Android Tutorial #15: Widgets with Glance — Compose for Home Screen

Widgets live on the home screen. They show information at a glance — weather, tasks, calendar events, music controls. Users love them because they don’t have to open the app. Building widgets used to mean writing XML RemoteViews. It was painful. Jetpack Glance changed this. Glance lets you build widgets with a Compose-like API. In this tutorial, you will learn how to build widgets with Glance — from a simple text widget to a task list widget that loads data from Room. ...

July 8, 2026 · 9 min

Android Tutorial #14: Deep Links and App Links

A user clicks a link on Twitter. Instead of opening a web page, your app opens directly to the product detail screen. Another user scans a QR code and lands on the signup page inside your app. This is what deep links do. They let URLs open specific screens in your app. In this tutorial, you will learn the difference between deep links and App Links, how to set up both, and how to integrate them with Compose Navigation. ...

July 8, 2026 · 8 min

Android Tutorial #13: Content Providers and File System Access

Your app needs to pick a photo from the gallery. Or save a file that other apps can open. Or read contacts. All of these go through Android’s storage and content provider system. The way Android handles file access has changed significantly. Scoped storage, the photo picker, and MediaStore have replaced the old “read everything on the device” approach. In this tutorial, you will learn how to work with files, media, and content providers the modern way. ...

July 7, 2026 · 9 min

Android Tutorial #12: Foreground Services — Music Player, Location Tracking

Your music app needs to keep playing when the user switches to another app. Your fitness app needs to track location while the phone is in the user’s pocket. A download manager needs to stay alive until the file is complete. These are foreground services. They run long-running operations that the user is aware of, shown with a persistent notification. In this tutorial, you will learn how to build foreground services — service types, lifecycle, communication with the UI, and practical examples for music playback and location tracking. ...

July 7, 2026 · 10 min

Android Tutorial #11: Notifications — Channels, Styles, and Actions

Notifications are how your app communicates with users when they are not looking at the screen. A chat message arrives. A download completes. A delivery is on the way. In this tutorial, you will learn how to build notifications from basic to advanced — channels, styles, actions, permission handling, and the new Progress-centric notifications in Android 16. Prerequisites: You should know Kotlin basics and Compose fundamentals. If not, start with the Kotlin tutorial series and the Jetpack Compose tutorial series. ...

July 7, 2026 · 10 min

Android Tutorial #10: Paging 3 — Infinite Scroll with Compose

Your app has a list of 10,000 items. Loading them all at once is a bad idea. The API call takes forever. The device runs out of memory. The UI freezes while Room queries thousands of rows. You need pagination — load 20 items at a time, and load more when the user scrolls near the bottom. You could build this manually. Track the current page. Handle loading and error states. Cache pages. Manage memory. Or you could use Paging 3, which does all of this for you. ...

July 6, 2026 · 10 min