Documentation
User Guide
Everything you need to know about building Android apps
Quick Navigation
Getting Started
Create a free account at APPYZEEN. No credit card required!
After that, buy credits starting from ₹99. One credit = one build (both APK + AAB included).
Enter your website URL and app details. Our system will generate a professional Android app.
Download your APK for testing and AAB for Google Play Store submission.
Creating Your First App
Basic Information
- App Name: The name displayed under your app icon (max 30 characters)
- Website URL: Your website that will load inside the app (must include https://)
- Package Name: Unique identifier for your app (e.g., com.yourname.appname)
- Version: Start with 1.0.0 for your first build
Use lowercase letters, numbers, and dots. Must start with a letter. Cannot use Java keywords.
Example: com.infozeen.myapp
App Icon
- Upload a 512x512 PNG image
- Use square images with transparent backgrounds
- Keep it simple and recognizable
- Avoid text in icons (unless it's your logo)
Build Type
APK
For direct installation and testing on devices. Easy to share with beta testers.
AAB (Recommended)
Required for Google Play Store. Optimized for each device configuration.
Build Both
Get both APK and AAB in one build. Perfect for testing + publishing.
Understanding Keystores
A keystore is like your app's digital signature. It's required for publishing to Google Play Store.
If you lose your keystore, you cannot update your app on Play Store. You'll have to publish as a completely new app.
Option 1: Auto-Generate (Recommended for Beginners)
- We create a secure keystore for you automatically
- Download it immediately after build completes
- Store it in a safe place (cloud storage, password manager, etc.)
- You'll need the same keystore for every app update
Option 2: Upload Your Own (For Advanced Users)
- If you already have a keystore from previous builds
- Upload the .jks or .keystore file
- Provide the correct alias and passwords
- Store in multiple secure locations (Google Drive, Dropbox, password manager)
- Never share your keystore passwords publicly
- Use strong, unique passwords
- Keep the same keystore for all your app updates
Available Features
Pull to Refresh
Users can swipe down to reload the page. Uses your app's theme color.
Push Notifications
Send notifications via Firebase Cloud Messaging. Requires google-services.json file.
Deep Linking
Open your app from external links. Great for marketing campaigns.
Custom Splash Screen
Splash screen with your app icon. Fully customizable colors.
Offline Mode
Automatic reconnection when internet is restored. Shows friendly offline message.
Secure HTTPS
All websites must use HTTPS for security. Mixed content is blocked.
Publishing to Google Play Store
Before You Publish
- Create a Google Play Developer Account ($25 one-time fee)
- Prepare app screenshots (at least 2 screenshots)
- Write app description (max 4000 characters)
- Create a feature graphic (1024x500 pixels)
- Define privacy policy (required for all apps)
Upload Steps
Login to Google Play Console
Click "Create app" and fill in basic details
Go to "Release" → "Production" → "Create new release"
Upload your AAB file (not APK)
Fill in release notes and submit for review
Google typically reviews apps within 1-3 days. Sometimes faster!
After Publishing
- Monitor reviews and ratings
- Respond to user feedback
- Release updates regularly
- Check Play Console for crash reports
Build with AI (MCP)
Connect Claude, Cursor, Claude Code or any other MCP-capable AI tool to APPYZEEN. The AI writes your Android project and our servers build a signed, Play-Store-ready APK and/or AAB from it.
Cost: 1 credit per successful build. Failed builds are free. Up to 2 AI builds can run at once.
1. Get your API key
Go to Settings → API keys → Create. The key is shown once, so copy it straight away.
2. Connect your AI tool
Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector, with this URL:
https://appyzeen.com/mcp/k/YOUR_KEY
Claude Code:
claude mcp add --transport http appyzeen https://appyzeen.com/mcp --header "Authorization: Bearer YOUR_KEY"
Cursor and other tools: add to the MCP config file:
{
"mcpServers": {
"appyzeen": {
"url": "https://appyzeen.com/mcp",
"headers": { "Authorization": "Bearer YOUR_KEY" }
}
}
}
3. Ask for an app
Write a simple notes app for Android and build it with appyzeen as an AAB.
For your own logo, attach the image in the chat and say "use this as the app icon". The AI sends it as the app icon; use a square PNG, at least 192×192 (512×512 recommended), up to 2 MB.
Big projects
An AI tool has to fit whatever it sends inside its own message, and a real app with dozens of files does not fit. When that happens the build never arrives and the AI may tell you the project is too large.
For anything bigger than a few files the AI takes a different route by itself: it asks us for an upload link, zips your project on your machine, uploads it with a single command, and then starts the build with just a short id. Nothing about your project travels through the chat.
You do not have to set this up. If an AI ever stops and says the project is too big to send, tell it:
Use create_project_upload, upload the zip, then build with the upload_id.
Supported project types
Native Android (Java or Kotlin, C++ through the NDK), Flutter (Dart) and React Native, including Expo apps after expo prebuild. The AI sends the project with its android/ folder. The version number and your icon are set automatically.
Tools the AI can use
Signing
By default a new signing key is generated. Download it from My Apps and keep it safe — you need the same key for every Play Store update. You can also ask the AI to pass your own keystore.
Limits
- Project zip up to 50 MB
- Build time up to 20 minutes (30 for Flutter and React Native)
- Must be an Android Gradle, Flutter or React Native project
Check my site
In step 1 of the builder, next to the website address, there is a Check my site button. It loads your page once from our server using the same user agent an Android app uses, and reports the handful of things that actually break a website-to-app build. It costs no credits and you can run it as often as you like. Use it before you build — almost every “my app is blank” report turns out to be one of these.
- HTTPS. Android blocks plain
http://traffic by default, so a site without a certificate will not load in the app at all. Most hosts give one free. - Redirects. This is the one people lose a build to. If
example.comredirects towww.example.com, the app treats the second address as a different site — so with Open external links in browser switched on it can hand the user straight to Chrome the moment the app starts. The checker tells you the final address and offers to put it in the field for you. Always build the address your site actually settles on. - Mobile layout. Without a
<meta name="viewport">tag Android lays your page out at desktop width and scales it down, so the app opens zoomed out with tiny text. - Insecure files. A script, stylesheet or image loaded over
http://inside anhttps://page is blocked outright by Android. It usually shows up as missing images or unstyled text rather than an error. - Google sign-in. Google refuses its login screen inside an ordinary WebView. If your site has a “Sign in with Google” button, turn on Native Google Login in Extra Features, or that button will fail in the app.
- Login walls and bot protection. If the page answers 401 or 403 to us, it will answer the same to the app, and your users see a blank screen.
It also reads your page title and offers it as the app name, to save you typing it.
One-click autofill
The same click also reads your site’s details and offers to fill the form in for you. Press Use these details and it sets:
- App icon — the largest square PNG your site publishes, taken from your web app manifest or your
apple-touch-icon. Afavicon.icoor an SVG cannot be used as an Android app icon, so if that is all your site has, it says so and you upload a PNG yourself. - App name — your manifest’s short name, or
og:site_name, or the page title, in that order. - Package name — built from your domain, so
example.combecomescom.example.app. Check it before you build: the package name is permanent once the app is on Play, and it cannot be changed afterwards. - Colours — your
theme-coloror manifest theme colour becomes the primary colour, with a darker shade for the splash gradient.
Everything it fills in is a suggestion you can overwrite — nothing is saved until you build. Your website address is deliberately left alone, because that is the one field the redirect warning above handles.
What it does not do: it loads one page, not your whole site, and it cannot see anything that only happens after you sign in. A clean report means nothing obvious is wrong — it is not a promise that every page inside your app will behave.
WhatsApp chat button
In the builder under Extra Features, enter your WhatsApp number and your app gets a floating green chat button in the bottom-right corner. Tapping it opens WhatsApp with a chat to you already started.
- Include the country code, digits only —
917982421977, not+91 79824 21977. Between 8 and 15 digits. - Leave it empty to remove the button. There is no separate on/off switch — the number being there is the switch.
- The button hides itself when the app is offline, and sits above the bottom navigation bar and the ad banner if you use those.
- If the phone has no WhatsApp installed the link opens in the browser, which offers to install it.
You can change or remove the number later from My Apps → Edit. Rebuild and install the new APK/AAB to apply it.
Native JS bridge (window.AppyZeen)
Every app built here injects a window.AppyZeen object into your site, so your own JavaScript can use native Android features. Guard your calls with if (window.AppyZeen) so the same page still works in a desktop browser.
Always available
AppyZeen.toast("Saved")— a native Android toast. Long messages are trimmed.AppyZeen.vibrate(40)— haptic feedback, 1–3000 ms. Needs the Vibration permission, which is ticked by default; without it the call is simply ignored.AppyZeen.deviceInfo()— a JSON string withplatform,sdk,release,manufacturer,model,package,locale,dark,tablet,app_versionandapp_version_code. Parse it withJSON.parse().AppyZeen.setUserId("4812")/AppyZeen.getUserId()— tell the app who is signed in, so a notification can be aimed at that one person. Call it right after your own login, andsetUserId('')on logout. See Sending to one person below.
Turn on in the builder
- Share Sheet →
AppyZeen.share("Look at this", "https://example.com/post")opens the Android share sheet. Either argument may be empty. - Rating Prompt → the Google Play in-app review sheet appears on the 5th launch, at most once every 90 days. Call
AppyZeen.requestReview()yourself to ask at a better moment — after a completed order, say. Google limits how often the sheet really shows, so nothing appearing is normal.
if (window.AppyZeen) {
const device = JSON.parse(AppyZeen.deviceInfo());
if (device.dark) document.body.classList.add('dark');
shareBtn.onclick = () => AppyZeen.share(document.title, location.href);
saveBtn.onclick = () => { AppyZeen.vibrate(30); AppyZeen.toast('Saved'); };
}
Both switches live under Extra Features in the builder and can be changed later from My Apps → Edit. Rebuild and install the new APK/AAB to apply a change.
Sending to one person
Call AppyZeen.setUserId() with whatever id your own site already uses for that account. The app remembers it and sends it up with its push token, so on Notifications you can fill in One person only and reach just them — “your order has shipped” instead of a broadcast. The same person on two phones gets it on both. Push notifications must already be set up (Firebase) for the app.
// right after your own login
if (window.AppyZeen) AppyZeen.setUserId(String(currentUser.id));
// on logout, so the next person does not get their notifications
if (window.AppyZeen) AppyZeen.setUserId('');
Treat the id as an address, not a password. The app reports it without proof, exactly as it reports its push token, so someone determined could claim another id and receive notifications meant for them. That is normal for this kind of targeting — just keep anything private out of the notification text and link to a page the person has to log in to see.
Free first build
Every new account can build its first app without buying credits. Try it on your phone first; buy credits only when you want updates or more apps. Failed builds are never charged.
Update prompts & app analytics
When you build a new version of an app (same package name, higher version code), people still on an older version see a prompt in the app with a link to update on Google Play. Open My Apps and choose Analytics on an app to see how many people open it and which versions they run.
Scheduled push notifications
On Notifications, write your message and pick a date and time instead of sending now. Scheduled messages can be cancelled until they go out. Push needs Firebase (FCM) set up for the app.
Get it on Play toolkit
Everything Google Play asks for, next to each app in My Apps:
- Readiness checklist — what is done and what is still missing before you submit.
- Hosted privacy policy and delete-account page — public links you can paste into Play Console.
- Data safety helper — suggested answers for the Data safety form, based on the features your app uses. Check them before you submit.
- Install page with QR code — share your APK with testers and customers outside Play.
- Tester exchange — new personal Play accounts need 12 testers for 14 days before production. Join the exchange to test other apps and get testers for yours.
Referral credits
Go to Settings → Refer & earn and share your link. When someone signs up with it and makes their first credit purchase, bonus credits are added to your account.
Publish to Play from AI (MCP)
Your AI assistant can also upload a finished AAB to Google Play for you. In Settings → API keys, add a Google Play service account (a JSON key from Google Cloud with access to your Play Console). Then ask the AI to publish; it uses the publish_to_play tool.
The app must already exist in Play Console, and the first upload of a new app still has to be done by hand there.
Frequently Asked Questions
Do credits expire?
No! Your build credits never expire. Use them whenever you need.
Can I update my app later?
Yes! Each update requires one credit. Make sure to use the same keystore for updates.
What's the difference between APK and AAB?
APK is for direct installation. AAB is optimized for Play Store and reduces app size. We recommend building both!
How long does a build take?
Typically 5-7 minutes. You'll see real-time progress on screen.
Can I use custom domains?
Yes! Your app can load any website that supports HTTPS.
What happens if my build fails?
Build failures don't consume credits. You'll see the error message and can retry for free.
Can I get a refund?
Credits are non-refundable for successful builds. Failed builds (due to our system) get free credits or refunds.
Do you support iOS apps?
No — we build Android only (APK and AAB). We would rather not give you a date, because Apple does not allow an iPhone app to be installed the way an APK can: every iOS app has to be signed with an Apple Developer account, and Apple's review turns down apps that only wrap a website.
What does work today, free, with no account and no file to install: open your site in Safari on the iPhone, tap the Share button, then tap Add to Home Screen. Your icon goes on the home screen and the site opens fullscreen, without the browser bars. For most shops that is what an app was wanted for.
Support
Need More Help?
Can't find what you're looking for? We're here to help!