Android Keystore Check: SHA1/SHA256 with keytool
How to inspect .jks and .keystore files with the keytool command. A reference for all the commands you need during Android releases — from getting SHA1/SHA256 to verifying APK signatures.
Knowledge library
Explore articles on app development, release workflows, and developer insights.
Recent posts
How to inspect .jks and .keystore files with the keytool command. A reference for all the commands you need during Android releases — from getting SHA1/SHA256 to verifying APK signatures.
The design principles behind a multi-stage pipeline for "semantic compression" of logcat and UI tree data before passing it to AI. Covers noise removal, deduplication, and TOON encoding for Android developers.
The differences between npm-based and uvx-based MCP servers when setting up Claude Code/Desktop, with the correct way to configure the filesystem server. Includes Windows-specific caveats.
Google's 2023 policy change made closed testing with 20 users mandatory. Here's how I found testers through Discord and Reddit, plus practical tips.
A solo Android developer's firsthand experience with shady business propositions and community bans. Sharing what to watch out for so you don't get crushed by fraud.
The story behind DevsPayForward — an app for developers that helps clear Google's 20-person closed testing requirement without the hassle.
Practical tips and tricks for more efficient Android development — from setting up your environment to recommended libraries.
A comparison of 5 methods for finding 20 testers for Google's closed testing requirement, covering the pros and cons of personal networks, social media, meetups, paid services, and dedicated apps.
A clear guide to displaying OSS license information in Android apps — often overlooked during development — with implementation code included.
A detailed guide to implementing Android in-app purchases (consumable and subscription), from Play Store setup to code — based on real experience.
How to choose tools for AI-assisted UI flow design, and how to describe Jetpack Compose app UI flows using Mermaid. Covers the correct way to represent tabs and BottomNav.
By designing Semantics in Jetpack Compose, AI agents and automation tools can structurally understand the meaning, state, and actions of UI elements — not just their appearance. Explains the benefits with implementation examples.
A practical guide to designing Semantics in Jetpack Compose so AI agents and UI testing tools can accurately understand your screens.
A clear introduction to using LottieAnimation to easily add lightweight animations to Android apps, with practical implementation examples.
How to avoid Google Play rejections, based on real experience — from setting up a privacy policy to OSS information. Essential reading for new developers.
A breakdown of designing and implementing a pipeline that turns AI consultation logs pasted into Obsidian into blog posts automatically drafted in WordPress.
A beginner-friendly guide to creating Play Store images using only Keynote and Preview on Mac — no paid tools needed.
A survey about Google's 20-person, 14-day closed testing requirement — covering challenges for indie developers, opinions on the policy change, and whether testers actually found bugs.
An analysis of Google Play's 20-person rule change — examining why it happened, its impact on indie developers, and what Google's real motivation might be.
Fast codebase search for Claude Code using Semble MCP. Learn how it cuts tokens by 98% compared to grep and how to use it in practice.
A new tool that automatically generates multilingual tester recruitment messages for Google's 20-person closed testing requirement. Supports customization and one-click copy.
The official zmsoft website is now live. We'll be sharing app development know-how and the latest updates here.
Implementation patterns for automated screen traversal and screenshot capture of Sandbox/Debug screens using Android MCP (uiautomator2). Covers the DeepLink approach and why a Screen Registry is essential.