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
.
You can purchase the source code for the backend server APIs, made with Ruby on Rails, that power api.nativeapptemplate.com
:
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
- Input Validation
- CRUD Operations for Shops (Create/Read/Update/Delete)
- CRUD Operations for Shops’ Nested Resource, Number Tags (ItemTags) (Create/Read/Update/Delete)
- 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!
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 available in:
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
To get started, clone this repository:
git clone https://github.com/nativeapptemplate/NativeAppTemplate-Free-Android.git
To 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\"")
If you have an improvement you'd like to share, create a fork of the repository and send us a pull request.