Alpha eSIM store | Flutter
A mobile-first global eSIM marketplace app built in Flutter. Dark/techy/neon "connectivity" aesthetic — gradient accents, glass cards, monospace data — with a light them…
A mobile-first global eSIM marketplace app built in Flutter. Dark/techy/neon "connectivity" aesthetic — gradient accents, glass cards, monospace data — with a light theme, 4 accent gradients, and a density control, all switchable at runtime.
Full documentation: open ../Documentation/index.html in any browser. That manual is the single source of truth for this item — it covers installation, branding, all 26 screens, backend/payment integration and an FAQ. This README is a quick developer-facing summary of the same information.
UI template (front end only). All countries, plans, eSIMs, usage figures and support content are plausible-but-fake demo data. No backend, carrier/eSIM provisioning or real payment processing is included — the code is structured so you can connect your own API.
Third-party costs. Connecting this template to external services — REST or GraphQL APIs, eSIM/carrier provisioning providers, and payment gateways such as Stripe or PayPal — requires your own accounts with those providers. They charge their own separate fees, subscription and transaction costs, billed directly to you and not included in the price of this item. See section 20 of the documentation.
Run it
flutter pub get
flutter run # on a connected device/emulator
# or build artifacts:
flutter build apk --debug # Android
flutter build web # WebToolchain in use: Flutter 3.10.6 / Dart 3.0.6, Android SDK 33, Java 17 (forced for Gradle via the machine-global ~/.gradle/gradle.properties). No third-party plugins — only cupertino_icons, so it builds and runs fully offline.
Screens (26)
Navigation is custom (thin wrappers over Navigator): a pre-auth flow (splash → onboarding → login/register), a 4-item floating bottom tab bar, and a push stack for detail screens. State lives in two ChangeNotifiers exposed through one InheritedWidget (AppScope).
Flow & shell
| Screen | File |
|---|---|
| Splash | screens/onboarding.dart |
| Onboarding (3 slides) | screens/onboarding.dart |
| Login (email/phone, Google, Apple) | screens/onboarding.dart |
| Register | screens/onboarding.dart |
| Tab shell (floating bottom nav) | screens/main_shell.dart |
Tabs (bottom bar)
| Tab | Screen | File |
|---|---|---|
| Home | Marketplace (featured, regions, popular) | screens/shop.dart |
| Explore | Countries (filter + sort) | screens/shop.dart |
| eSIMs | My eSIMs (active / expired) | screens/manage.dart |
| Profile | Account + appearance controls | screens/manage.dart |
Shop / buy flow
| Screen | File |
|---|---|
| Search (live) | screens/shop.dart |
| Plan Details (coverage radar, plans, buy bar) | screens/shop.dart |
| Cart (promo codes) | screens/checkout.dart |
| Checkout (5 payment methods) | screens/checkout.dart |
| Order Success (live QR) | screens/checkout.dart |
Manage
| Screen | File |
|---|---|
| eSIM Install guide (QR + steps) | screens/manage.dart |
| Usage dashboard (data ring + 7-day chart) | screens/manage.dart |
| Data Top-up | screens/manage.dart |
| Notifications | screens/manage.dart |
Settings & Support
| Screen | File |
|---|---|
| Help Center (search, topics, contact) | screens/support.dart |
| Help Article (steps, feedback, related) | screens/support.dart |
| Live Chat (typing, quick replies) | screens/support.dart |
| My Tickets | screens/support.dart |
| Security (Face ID / 2FA / PIN, devices) | screens/settings.dart |
| Language & Currency | screens/settings.dart |
| Data & Alerts (threshold slider) | screens/settings.dart |
| Offline (edge state) | screens/settings.dart |
| Payment Failed (edge state) | screens/settings.dart |
Project structure
lib/
├─ main.dart # runApp(GlobalEsimApp()) + global density zoom
├─ app_scope.dart # InheritedWidget → context.tk / .store / .themeCtl
├─ nav.dart # push / pop / replace / reset (slide + fade)
├─ theme/
│ └─ tokens.dart # Tokens (resolved design tokens) + ThemeController
├─ state/
│ └─ app_state.dart # AppState: cart, eSIMs, favourites, tab
├─ data/
│ └─ data.dart # models + mock content (countries, plans, help…)
├─ widgets/ # ONE widget per file, grouped by category
│ ├─ widgets.dart # barrel — screens import only this
│ ├─ buttons/ gradient_button · ghost_button · pill · icon_bubble · back_button · app_toggle
│ ├─ cards/ glass_card
│ ├─ inputs/ app_text_field · app_search_bar
│ ├─ display/ gradient_text · stat_widget · flag · data_ring · brand_mark · qr_code
│ ├─ layout/ app_background · screen_header · section_title
│ └─ feedback/ empty_state · toggle_row
└─ screens/ # grouped by feature
└─ onboarding · shop · checkout · manage · main_shell · settings · supportImport a single barrel (widgets/widgets.dart) and you get every reusable component.
Layering
theme / state / data have no UI dependencies → widgets build on them → screens compose widgets → main.dart + app_scope.dart wire state and routing.
Architecture notes
- State & theme —
AppState(cart / eSIMs / favourites / tab) andThemeController(dark, accent, density) are bothChangeNotifiers, provided viaAppScope(anInheritedWidget). Read them withcontext.store,context.themeCtland the resolved tokens withcontext.tk. - Theme tokens — every colour, gradient, font and radius comes from
theme/tokens.dart. Change the palette or accents in one place. - Density — a global content-zoom (Compact 0.82 / Medium 0.9 / Comfortable 1.0) applied in
main.dart'sMaterialApp.builder; switch it in Profile → appearance. - Custom painting — the brand mark, data ring, coverage radar and QR code are pure
CustomPainters (no chart/QR packages). - Fonts — uses the platform default +
monospace(nogoogle_fonts), so it builds and runs without network.
Customize in 60 seconds
| Want to… | Edit |
|---|---|
| Re-skin every colour | lib/theme/tokens.dart (kAccents, Tokens getters) |
| Change demo content | lib/data/data.dart |
| Tweak a button / card | the matching file under lib/widgets/<category>/ |
| Add a screen | new file in lib/screens/, push it with context.push(MyScreen()) |
| Rename / rebrand | pubspec.yaml, android/app/build.gradle (applicationId), Info.plist |
UI generated from a Claude Design handoff and implemented in Flutter.
Technical details
| Dart SDK | >=3.2.9 <4.0.0 |
|---|---|
| Download | global-esim.zip · 1 MB |
| Version | v1.0.0 |
What's in the download
| File | What it is |
|---|---|
| index.html | Documentation (open in a browser) |
| README.md | Read-me |
Everything included
A mobile-first global eSIM marketplace app built in Flutter. Dark/techy/neon "connectivity" aesthetic — gradient accents, glass cards, monospace data — with a light them…
Platforms
In the download
Personal
One non-commercial project
- 1 activation seat
- 1 year of updates
- One end product
- Non-commercial use
- Community support
- 14-day refund window
Commercial
Ship paid products
- 5 activation seats
- 1 year of updates
- One paid end product
- Unlimited end users
- Priority support
- Source files
- 14-day refund window
Extended
Resell & white-label
- Unlimited activation seats
- Lifetime updates
- Unlimited end products
- White-label & resell
- 1-hour SLA
- Seat-free team use
- 14-day refund window
One purchase per product, no subscription. Each licence comes with a signed key — 1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended. Paid licences can be refunded within 14 days from your order page.
- v1.0.0LatestOct 29, 2026
- Current release
Be the first to review Alpha eSIM store | Flutter — reviews come from customers who bought it, so every one is a verified purchase.
Frequently asked
How do I get the files after paying?
Straight after checkout you land on your order page with the download button and your licence key. A receipt is emailed to you, and every order stays in My library.
Which licence do I need?
Personal — One non-commercial project. Commercial — Ship paid products. Extended — Resell & white-label. The Licences tab compares them side by side.
On how many devices can I activate it?
1 seat on Personal, 5 seats on Commercial, unlimited seats on Extended.
How long do I get updates?
Personal: 1 year of updates, Commercial: 1 year of updates, Extended: lifetime updates, counted from your purchase.
Can I get a refund?
Yes — paid licences can be refunded within 14 days, straight from your order page.
Is the download safe?
The file was scanned with ClamAV when it was published. Its SHA-256 checksum is listed under Features → In the download, so you can verify the file you receive.
Do I need an account?
No. Checkout only needs your email. Signing in keeps all your purchases, keys and downloads together in My library.
More like this
AlgoBot | Flutter AI Trading App
AlgoBot is a premium, mobile-first Flutter UI template for an AI-powered trading bot and crypto, stock and forex trading assistant app. It …
★★★★★ No reviews yetTTechHarbour$18.00−11% offAlphaVPN | Android WireGuard VPN App
Full Kotlin + Jetpack Compose source of a WireGuard VPN app for Android: one-tap tunnel, live speed, locations, plans, devices. Prebuilt AP…
★★★★★ No reviews yetTTechHarbourAlphaCall | Android Video, Voice & Meetings App
Full Kotlin + Jetpack Compose source of an Android calling app: HD video and voice, encrypted meetings, chats, SIP phone line. Prebuilt APK…
★★★★★ No reviews yetTTechHarbour$17.00FolderPress — Media Library Folders for WordPress
media library, media folders, folders, file manager, media organizer, image optimization, webp, cdn, share links, private files, two factor…
★★★★★ No reviews yetTTechHarbour$29.00