Skip to content
tezvyn:

All bites

The whole library, newest first. Filter by what you are here for, or pick a topic if you already know.

8667 bites

Page 409

ConstraintLayout in Compose
Android & Kotlin2 min read

ConstraintLayout in Compose

ConstraintLayout in Compose lets you position elements relative to each other and to guidelines using constraints, the same model as the View system's ConstraintLayout. It solves layouts that would otherwise need deeply nested Row and Column combinations.

Android & Kotlin2 min read

VectorDrawable: Scalable Graphics for Android

A VectorDrawable is like an SVG for your app, defining images with math, not pixels. Use it for icons that need to look sharp on any screen without bloating your APK. The footgun: complex vectors can be slower to render than a comparable bitmap.

ViewBinding: Say Goodbye to findViewById
Android & Kotlin2 min read

ViewBinding: Say Goodbye to findViewById

ViewBinding generates a type-safe class from your XML layout, giving you direct, non-null access to views with IDs. It's a compile-time safe replacement for findViewById used in Activities and Fragments. If a view is missing, you forgot to give it an ID.

Play Asset Delivery: Beyond the APK Size Limit
Android & Kotlin2 min read

Play Asset Delivery: Beyond the APK Size Limit

Think of Play Asset Delivery as Google Play managing a CDN for your game's large assets, letting you bypass the initial download size limit. It delivers textures and levels at install, right after, or on-demand. The footgun is assuming delivery succeeds.

Google Play's Target API Level Requirement
Android & Kotlin2 min read

Google Play's Target API Level Requirement

Think of targetSdkVersion as a contract with Android. You promise your app handles all new security and privacy features up to that OS version. Google Play enforces this, blocking updates that target old APIs to protect users.

In-app Updates: Update Your App Without Leaving It
Android & Kotlin2 min read

In-app Updates: Update Your App Without Leaving It

In-app updates prompt users to update without leaving your app. Use the 'Flexible' flow for routine updates and the 'Immediate' flow for critical fixes. The footgun is overusing the disruptive 'Immediate' flow for non-critical changes.

Play Core Library: Your App's Runtime API to the Play Store
Android & Kotlin2 min read

Play Core Library: Your App's Runtime API to the Play Store

The Play Core Library is your app's direct line to the Google Play Store at runtime. Use it to request features like in-app updates, on-demand modules, or user reviews without leaving the app.

Android & Kotlin2 min read

Staged Rollouts: Limit Your Update's Blast Radius

Staged rollouts are a safety net, letting you release an update to a small percentage of users first. This lets you find crashes or major bugs before they affect everyone. The footgun: halting a rollout only stops new users from getting the update, it doesn't.

Google Play Dynamic Delivery: Ship Features On-Demand
Android & Kotlin2 min read

Google Play Dynamic Delivery: Ship Features On-Demand

Shrink your app's initial install size by delivering features on-demand. Instead of one giant APK, Dynamic Delivery sends a small base app, then downloads larger features like AR modes or special tools only when the user needs them.

App Signing by Google Play: Trust Google with Your Keys
Android & Kotlin2 min read

App Signing by Google Play: Trust Google with Your Keys

App Signing by Google Play separates your app's identity from the key you use for uploads. Google manages the final, user-facing signing key, which is mandatory for new apps. The footgun is thinking your upload key is the final key; losing it is recoverable.

Android & Kotlin2 min read

Google Play Content Ratings

Google Play's content rating is a mandatory maturity label for your app, like a movie rating. It's assigned by the IARC based on a questionnaire you fill out, and helps filter your app in certain regions.

Android & Kotlin1 min read

Android App Bundles: Ship Less Code to Users

Instead of one giant APK, an Android App Bundle (AAB) lets Google Play build a smaller, custom APK for each user's device. This standard publishing format reduces app size and speeds up installs by delivering only the necessary components.

Perfetto: See Your Whole System on One Timeline
Android & Kotlin2 min read

Perfetto: See Your Whole System on One Timeline

Perfetto is a flight recorder for your system, capturing kernel and app events on a single timeline. Use it to diagnose complex issues like jank by correlating app behavior with system activity.

Android Baseline Profiles: Pre-compiling for Speed
Android & Kotlin2 min read

Android Baseline Profiles: Pre-compiling for Speed

A Baseline Profile is a cheat sheet for the Android runtime, telling it which code to pre-compile for faster performance. This speeds up app startup and reduces UI jank in critical flows.

Android & Kotlin2 min read

Android Biometric Authentication: The BiometricPrompt API

Android's BiometricPrompt is a unified API for fingerprint, face, or iris scans, replacing older, fragmented methods. Use it to authorize payments or unlock features. The footgun: never assume a specific biometric type is available; always have a fallback.

Android & Kotlin1 min read

EncryptedSharedPreferences: Secure Key-Value Storage on Android

EncryptedSharedPreferences is a drop-in replacement for SharedPreferences that automatically encrypts keys and values, protecting sensitive data at rest. Use it to store small, sensitive data like API tokens. The main footgun is mismanaging the master key.

Android Keystore System
Android & Kotlin2 min read

Android Keystore System

The Android Keystore System stores cryptographic keys in hardware backed secure storage instead of app memory or disk. Apps can use the keys to sign or encrypt data, but the raw key material never leaves the secure environment, even on a rooted device.

Android App Startup: From Cold to Hot
Android & Kotlin2 min read

Android App Startup: From Cold to Hot

App startup has three types: cold, warm, and hot. Optimization focuses on the cold start—when the app launches from scratch. This is critical for user retention, as slow launches are a common reason for uninstalls. The footgun: don't just test warm starts.

Memory Leaks: The Silent App Killer
Android & Kotlin2 min read

Memory Leaks: The Silent App Killer

A memory leak is when your app holds onto objects it no longer needs, preventing memory reclamation. This often happens with static references to UI elements or background tasks. The footgun: your app won't crash immediately, but will slow down and die later.

Android & Kotlin2 min read

StrictMode: Your Main Thread's Watchdog

StrictMode is a developer tool that acts like a strict supervisor for your app's main thread, catching slow operations like disk or network access. It helps you find performance issues before they cause "Application Not Responding" errors.