Anticode Open builder

Capacitor iOS Android project from website: what's in the download, file by file

From a published site, Anticode can make a Capacitor project: one zip with an Xcode project, an Android Studio project, icons and splash screens drawn from the site's look, and a small script that adds a share button and booking reminders. The app opens your live site full screen. Anticode never contacts Apple or Google, creates accounts or holds signing keys; that part is yours.

Updated · By the Anticode team

Getting the zip

In the builder's console, open App stores. The section needs a published site, because the app opens its live address. Under Your app in the stores, set two things before downloading:

Name under the icon
Up to 30 characters. It starts as the short name from the site's install manifest.
App ID
A reversed domain you own, such as com.yourbusiness.app, lowercase, with no Java keywords as parts so it's valid as both an iOS bundle ID and an Android package. It defaults to dev.anticode.<site>, and the checklist warns until you change it, because the stores never let you change it later.

Download project saves <site>-app.zip. Making the icons takes real computing time, so downloads are limited to ten per ten minutes per account.

What's inside

The Capacitor project, top level
PathWhat it is
capacitor.config.jsonApp ID, app name, webDir set to www, server.url set to your live site, and server.errorPath pointing at the offline screen
package.jsonCapacitor core, iOS, Android and CLI at version 8.5.3 or later, plus the official Share and Local Notifications plugins
www/index.html, offline.html in your colours, icon.png, and app-features.js
ios/Capacitor's own iOS template (Swift Package Manager), edited the way cap add ios would
android/Capacitor's Gradle template, edited the way cap add android would
store/A 1024×1024 App Store icon, a 512×512 Play icon and a 1024×500 Play feature graphic
README.md, STORE-CHECKLIST.mdHow to open, run, sign and upload; and the store checklist as it was when you downloaded

Files Capacitor generates for itself are left out, as in a fresh Capacitor repository. So the first commands are always npm install and npx cap sync, which links the native projects and copies www/ and the config into them. Run npx cap sync again after changing either.

Icons and splash screens from your site

Everything visual is drawn from the published page: its background, accent colour and initials. On iOS that means a 1024×1024 app icon with no transparency (App Store Connect rejects icons with an alpha channel) and a launch image of the background with the rounded icon. On Android it's launcher icons at five densities, round and adaptive versions with the background set to your accent, and a splash made from the background colour with a centred icon, including the setting Android 12 and later use.

The two native features

Your published site runs no scripts, so nothing on it can call a native plugin. The app adds one script of its own, www/app-features.js, injected into the site's pages by the native code at start-up and limited to your site's origin:

  • Share. A round button in the corner, in your accent colour, opens the system share sheet with the page's title and address. It hides while someone is typing in a field.
  • Booking reminders. After a visitor sends a booking request, and if the slot is more than an hour away, the thank-you page offers "Remind me an hour before". Notification permission is asked for then, in context, not at launch, and the reminder stays on the phone.

Either can be switched off with the constants at the top of app-features.js, followed by npx cap sync.

Live site or bundled site

Because the app loads your live address through server.url, publishing a change in Anticode updates the app without a store release, and forms and pages work as they do on the web. Without a connection, the app shows offline.html with a Try again link. Be aware that Capacitor's configuration reference describes server.url as intended for live-reload servers and says it is not intended for production. Many store apps load a remote address anyway, and the project's README says so plainly; if you'd rather ship the site inside the app, build it into www/ and remove server.url.

Limits

  • No submissions, accounts or signing. Apple's and Google's developer accounts, certificates and keys are yours.
  • No push notifications. They need your own Apple and Firebase credentials.
  • No offline content beyond the offline screen, and no screenshots; take those in a simulator or emulator.
  • Review risk. The checklist flags this every time: Apple often rejects apps that are mainly a website.
  • A Mac for iOS. Xcode runs on macOS; the checklist notes a cloud Mac or a build service also works.

Next steps: opening the iOS project in Xcode, building the Android bundle in Android Studio, and the App Store requirements. If a store app isn't essential, the site already installs as an app from the browser.

Questions people ask

Do I need to know Swift or Kotlin?

Not to build and submit it. You'll use Xcode and Android Studio's menus, not write native code, unless you add features.

Does the app update when I change my site?

Yes, for content: it loads the live site. Changes to the app's name, icon or ID need a new build and store release.

Can I change the app ID later?

Not once it's in a store. Set it to a domain you control before you download.

Sources

  1. Capacitor Docs: Configuration, checked