NativeAppTemplate-Free-Android is a modern, comprehensive, and production-ready native Android app with user authentication and background tag reading.
This Android app is a free version of NativeAppTemplate-Android (Solo) and NativeAppTemplate-Android (Team).
The iOS version is available here: NativeAppTemplate-Free-iOS.
NativeAppTemplate-Free-Android is configured to connect to api.nativeapptemplate.com.
The Rails 8.1 API backend that powers api.nativeapptemplate.com is open source (MIT):
NativeAppTemplate-Free-Android uses modern Android development tools and practices, including:
- 100% Kotlin
- 100% Jetpack Compose
- Hilt (Dependency Injection)
- Retrofit2 (Networking)
- Proto DataStore
- Android Modern App Architecture
- Simple MVVM Layered Architecture
- Test
- Inspired by nowinandroid and emitron-Android
- Onboarding
- Sign Up / Sign In / Sign Out
- Email Confirmation
- Forgot Password
- CRUD Operations for Shops (Create/Read/Update/Delete)
- CRUD Operations for Shops' Nested Resource, Number Tags (ItemTags) (Create/Read/Update/Delete)
- Force App Version Update
- Force Privacy Policy Version Update
- Force Terms of Use Version Update
- Generate QR Code Image for Number Tags (ItemTags) with a Centered Number
- NFC features for Number Tags (ItemTags): Write Application Info to a Tag, Read a Tag, Background Tag Reading
- And more!
How NFC tag writing and background reading works
The app replaces traditional paper tags with NFC tags to efficiently manage walk-in customer waitlists. It writes application-specific information onto your NFC cards (referred to as π΄ Server Tag and π΅ Customer Tag).
For Customers:
When a customer scans a π΅ Customer Tag, they can view the π’ Number Tags Webpage (a public webpage) on their mobile browser. This page displays completed Number Tags.
For Staff:
By scanning a π΄ Server Tag paired with the π΅ Customer Tag, staff can complete a Number Tag. Completed Number Tags automatically appear on the π’ Number Tags Webpage for customer reference.
- Write application info to pair Number Tags (Server Tag and Customer Tag) or a Customer QR code:
- Go to: Shops > [Shop] > Shop Settings > Manage Number Tags > [Number Tag].
- Scan a Server Tag in the Scan tab.
- View the updated Number Tags status in the Shop Detail screen or on the Number Tags Webpage (see Background Tag Reading GIF below).
For best performance, use NTAG215 (540 bytes) tags.
Example: 50pcs NFC Cards Ntag215 (Amazon USA).
- Scan a Server Tag.
- View the updated Number Tags status in the Shop Detail screen or on the Number Tags Webpage.
The Number Tags Webpage updates in real-time using Rails Turbo.
This functionality is part of the open-source nativeapptemplateapi backend.
Note:
The GIF above shows MyTurnTag Creator for iOS in action, which may behave slightly differently from NativeAppTemplate-Free-Android.
The full versions (NativeAppTemplate-Android (Solo) and NativeAppTemplate-Android (Team)) include additional advanced features:
- URL Path-Based Multitenancy (prepends
/:account_id/to URLs) - User Invitation to Organizations
- Role-Based Permissions and Access Control
- Organization Switching UI
To get started, clone this repository:
git clone https://github.com/nativeapptemplate/NativeAppTemplate-Free-Android.gitTo run this app successfully, ensure you have:
- An Android device or emulator with API level 26 or higher.
To connect to a local API server, update the following configuration in the build.gradle.kts (Module: app):
buildConfigField("String", "DOMAIN","\"192.168.1.21\"")
buildConfigField("String", "PORT","\"3000\"")
buildConfigField("String", "SCHEME","\"http\"")Contributions are welcome! Please read CONTRIBUTING.md for guidelines on reporting issues, proposing changes, and submitting pull requests.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
If you discover a security vulnerability, please follow the disclosure process in SECURITY.md. Do not open public issues for security concerns.
This project is licensed under the MIT License β see LICENSE for details.





