You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Learn Android & Flutter concepts through bite-sized, production-style labs.
Hands-on Android and Flutter labs for students who learn by building. Every repository in this organization is a self-contained mini project, complete with source, assets, and lab notes, so you can explore a specific topic without wading through unrelated boilerplate.
🔍 Why these labs exist
Reinforce lectures with working code that you can run, break, and fix.
Compare Java, Kotlin, and Flutter approaches to the same mobile concepts.
Share reproducible snippets with classmates or contributors via GitHub Discussions and Issues.
✨ Spotlight Projects
🛍️ Flutter-CellphoneZ
Flutter 3 commerce demo featuring Provider state, Supabase auth/storage, DI helpers, Material 3 theming, and a multi-step checkout that calls VNPAY Edge Functions—perfect for comparing native vs. cross-platform approaches.
🐎 Umamuse_Rep11
Horse-racing mini game with SeekBar-driven animations, preference-backed profiles, betting flow, and repository abstractions—use it to explore custom game loops and event-driven UI updates.
📚 Project Capsules
✅ Android-Task-List-App
RecyclerView CRUD practice with a SQLite-style helper, custom adapter (`CongViecAdapter`), and lifecycle-aware UI refresh logic—great for honing persistence + UI glue without extra libraries.
🌐 Android-Database
Retrofit login lab with request/response DTOs, mocked endpoints, and Kotlin-DSL Gradle configuration. Learn how to post JSON bodies, parse responses, and handle async callbacks cleanly.
🔐 Android-Firebase-Auth
Email/password flows with FirebaseAuth: signup/signin/signout, verification emails, success animations, and thoughtful error messaging—all inside a polished animated UI.
🧭 Android-Fragment_Bottom_Navigation
Jetpack Navigation + ViewBinding sample that wires toolbar actions, shared `ViewModel`s, and BottomNavigationView for predictable back-stack handling.
🗺️ Android-Google-Map
Hybrid mapping with osmdroid + Google Play Services. Practice runtime permissions, tile switching, marker management, and location controls tied to UI buttons.
📸 Android-Permission-Dialog
Camera permission UX sandbox: check grant state, show rationale, request via `ActivityCompat`, and deep-link users into Settings when they permanently deny access.
☰ Android-Option-Menu
Mini-collection of menu exercises (options, context, action mode). Practice inflating XML menus, reacting to selections, and styling items with icons and tints.
💳 Android-ZaloPay-Payment-Gateway
Merchant-style payment flow using ZaloPay SDK, HMAC helpers, and callback handling so you can simulate secure checkout with sandbox credentials.
🔔 Android-Notification
API 33-ready notification lab: create channels, request `POST_NOTIFICATIONS`, send rich notifications with large icons, inline actions, and pending intents to reopen the app.
🚀 Getting started
Clone the umbrella repo: git clone https://github.com/FirstAndroidJourney/FirstAndroidJourney.git
Open any lab folder in Android Studio or VS Code (Flutter) and let Gradle/Flutter download dependencies.
Check each lab’s README.md or guide files for credentials, API keys, or emulator requirements.
🤝 Contribute
Keep pull requests scoped to one lab, and document emulator/device details in the description.
Attach screenshots or screen recordings when the change is UI-heavy.
Missing a topic? Open an Issue or Discussion with your idea—we’re always looking for the next lab to build together.
AndroidLab15 | Detailed guide for implementing ZaloPay with a Sandbox environment on Android, from project creation and ZaloPay Sandbox experience to SDK integration and program execution
Responsive Flutter client for the CellphoneZ marketplace, enabling shoppers to browse consumer tech products, manage carts, and pay with COD or VNPay while admins curate the catalog, brands, and or…
Responsive Flutter client for the CellphoneZ marketplace, enabling shoppers to browse consumer tech products, manage carts, and pay with COD or VNPay while admins curate the catalog, brands, and orders. The app targets both Android and iOS and is backed by Supabase services plus build_runner tooling.