Skip to content

Frequently asked questions

Does an ApkPy APK contain Python?

No. ApkPy generates Java, XML, resources and a Gradle project. The APK runs as a native Android application without embedding a Python interpreter.

Can I open the result in Android Studio?

Yes. apkpy build creates a normal Android project that can be inspected and compiled in Android Studio.

Which Python libraries can I use?

ApkPy translates the Python you write apps with (the list) and, in place of pip packages, brings its own APIs for HTTP, data, files, background work and the device. Your code becomes Java when you build, so the APK carries no interpreter.

Is the Hot Previewer an Android emulator?

It is a desktop renderer built for the edit loop: layout, navigation, callbacks and storage, with simulations for the notification drawer, NFC tags, contacts, biometrics, sensors, battery, GPS and push. Permissions, services, codecs, FCM and each manufacturer's own behaviour are then checked on an emulator or a phone.

Can I read or write NFC tags?

Since 1.9.0, ApkPy can read tag IDs, NDEF text and URLs and write a single text/URL record to a compatible spare tag. See the complete NFC guide and app.

No runtime NFC permission popup is needed: the compiler declares the normal permission and optional hardware. The person still has to enable NFC. Reading is foreground-only, the desktop panel is a simulator, and writes replace the tag's existing records. This is not card emulation or support for bank cards.

Can I choose or edit a contact?

Since 1.9.0, contacts.pick() selects one phone or email without broad address-book permission. list()/get() ask for read access. create()/edit() open the native editor without WRITE_CONTACTS; their callback reports editor return, not confirmed saving. There is no direct delete API. The Previewer uses fictional data. See the complete guide and People Desk app.

Can ApkPy build a complete social or delivery app?

It can generate much of the native client. Accounts, moderation, payments, recommendations, dispatch and canonical server data remain application infrastructure. See Can ApkPy build this?.

Is local data encrypted?

ApkPy provides encrypted local values and password hashing, but security still depends on correct key handling, server authorization and threat modeling.

Can an AI coding assistant write ApkPy apps?

Yes. Every project made by apkpy start, apkpy init or apkpy examples has an AGENTS.md (and a CLAUDE.md pointing at it) that Codex, Cursor, Copilot, Claude Code and others read first; apkpy agents adds it to an older project. It teaches the assistant the whole ApkPy API, so it writes correct ApkPy from the first screen. An assistant with web access can also read llms.txt, a map of these docs, and llms-full.txt, the docs in one file. See Getting started.

Is the generated project conditional?

Yes. Feature helpers and dependencies are emitted only when the source uses the matching capability.

What happens to work when the app is closed?

Work declared with background_job() is handed to WorkManager, which stores the queue in its own database. It survives backgrounding, process death and a reboot, and runs when the declared constraints allow it. See Background jobs.

Is ApkPy open source?

Yes, since 1.13.0, under the Apache License 2.0. You can read, change and redistribute the whole of it, and an exception in the licence leaves the apps you build free of its conditions. See Licence and project continuity.