Live online course · Mobile App Development
Flutter Mobile App Development
Build, test and ship production Android and iOS apps from one Dart codebase
A fourteen-week live course in Flutter and Dart: widgets and layout, go_router, Riverpod, REST APIs, authentication, offline-first storage, native integrations, push notifications, testing, CI/CD and store releases.
- Intermediate
- Live online
- 84 live hours
What you will be able to do
- Write idiomatic, null-safe Dart using async/await, streams, classes and mixins
- Build responsive, accessible Flutter interfaces from widgets, layouts and themes
- Structure an app feature-first with go_router navigation, Riverpod state and repositories
- Integrate REST APIs with dio and json_serializable, including authentication and token refresh
- Keep the app usable offline with local storage, a Drift database and background sync
- Add native features through platform channels and plugins, push notifications with FCM and a test-mode payment flow
- Cover the app with unit, widget and integration tests and fix performance problems with DevTools
- Automate builds with CI/CD and prepare signed releases for the Play Store and App Store
About this course
This is the Flutter track of ZORK Academy’s cross-platform mobile offering. React Native is taught as a separate track with its own course, so you can choose the toolkit that suits you; this course teaches Flutter and Dart only.
Flutter lets one team build Android and iOS apps from a single Dart codebase with a consistent, fast user interface. The course goes beyond demo apps to the work a real product needs: a maintainable architecture, predictable state, reliable networking, data that survives going offline, native features such as notifications and payments, automated tests, and a repeatable release pipeline that ends in the Play Store and App Store.
Classes are live and hands-on. Across the fourteen weeks you build one realistic app step by step — a study-planner app with accounts, synced tasks, reminders and a premium upgrade — and then a capstone app of your own. Every week has explicit doubt-clearing time, and each module ends with an assignment or quiz so you always know where you stand.
Why Riverpod? It is compile-safe, testable and widely used in production Flutter apps. Bloc is covered side by side so you can read and work on codebases that use it.
Syllabus
Every session is a live class. Module hours add up to the course total.
This syllabus is a draft awaiting instructor review. Topics, order and schedule may change before the first batch is announced.
01Dart for Flutter developers5 live sessions · 10 hours · The Dart language features Flutter code relies on, from null safety to streams.
Learning objectives
- Use Dart’s type system and sound null safety confidently
- Model data with classes, constructors, mixins and extensions
- Write asynchronous code with futures, async/await and streams
Live sessions
- 01Dart essentials and tooling2 hInstalling Flutter and Dart, flutter doctor, DartPad; variables, final and const, core types, collections, functions and named parameters.
- 02Null safety in practice2 hNullable and non-nullable types, ?, !, ?? and late; flow analysis; handling missing data from APIs without crashes.
- 03Classes, mixins and extensions2 hConstructors, factory and named constructors, immutability, inheritance versus composition, mixins, extension methods, enums and records.
- 04Futures, async/await and streams2 hFutures and error handling, async/await, Stream and StreamController, listening and transforming streams, when to use each.
- 05Week 2 Dart practice and doubt-clearing2 hGuided Dart exercises on null safety and async code; common mistakes; open questions.
- Practice
- Fifteen Dart exercises, including parsing a JSON response into null-safe classes and processing a stream of events.
- Assessment
- Quiz on null safety, classes, mixins and asynchronous Dart.
- You will be able to
- You can read and write the Dart that everyday Flutter code depends on.
02Widgets, layout and theming5 live sessions · 10 hours · Build Flutter interfaces from widgets and make them responsive and accessible.
Learning objectives
- Explain the widget, element and render trees and when widgets rebuild
- Compose layouts with rows, columns, stacks, lists and slivers
- Apply Material 3 theming, responsive breakpoints and accessibility basics
- Build validated forms
Live sessions
- 06How Flutter renders: widgets and the tree2 hStateless and stateful widgets, build methods, BuildContext, keys, hot reload versus hot restart, and the project structure of a new app.
- 07Layout fundamentals2 hConstraints go down, sizes go up; Row, Column, Expanded, Flexible, Stack, Padding and SizedBox; fixing overflow errors.
- 08Lists, grids and slivers2 hListView.builder, GridView, CustomScrollView and slivers, pull-to-refresh, and loading, empty and error states for lists.
- 09Theming, responsiveness and accessibility2 hMaterial 3 ThemeData and colour schemes, dark mode, MediaQuery and LayoutBuilder breakpoints, text scaling, Semantics and touch-target sizes.
- 10Forms, input and week 4 review2 hForm, TextFormField and validation, focus and keyboard handling; review of layout problems submitted by learners and doubt-clearing.
- Practice
- Build the study-planner’s home, task list and add-task screens from a design, working at phone and tablet sizes.
- Assessment
- Assignment: submit the screens with a short note on how they behave at large text sizes and in dark mode.
- You will be able to
- You can turn a design into responsive, accessible Flutter screens.
03Navigation with go_router3 live sessions · 6 hours · Declarative routing, nested navigation and deep links for a multi-screen app.
Learning objectives
- Define routes, parameters and redirects with go_router
- Build tabbed navigation that preserves state with shell routes
- Handle deep links and guarded routes
Live sessions
- 11Declarative routing with go_router2 hNavigator basics, why declarative routing, GoRoute, path and query parameters, passing data between screens, and error pages.
- 12Nested navigation, guards and deep links2 hShellRoute and StatefulShellRoute for bottom tabs, redirect-based sign-in guards, Android App Links and iOS Universal Links concepts.
- 13Navigation lab and doubt-clearing2 hWire the study-planner’s screens into tabs and detail routes; debugging navigation issues together.
- Practice
- Add tabbed navigation, a task-detail route with parameters and a guarded settings area to the study-planner.
- Assessment
- Quiz on routing, redirects and deep links.
- You will be able to
- You can design navigation for a real multi-screen app, including deep links.
04State management and architecture5 live sessions · 10 hours · Manage state predictably with Riverpod and organise code feature-first.
Learning objectives
- Choose between local widget state and shared app state
- Model synchronous and asynchronous state with Riverpod providers and notifiers
- Compare Riverpod with Bloc and read code written in either
- Structure an app feature-first with a repository layer
Live sessions
- 14From setState to Riverpod2 hLimits of setState and InheritedWidget, Riverpod’s ProviderScope, Provider, ref.watch versus ref.read, and provider lifecycles.
- 15Async state with Notifier and AsyncNotifier2 hNotifier and AsyncNotifier, AsyncValue for loading, data and error, family and autoDispose, and code generation with riverpod_generator.
- 16Bloc compared with Riverpod2 hCubit and Bloc, events and states, BlocBuilder and BlocListener; the same feature built both ways and the trade-offs between them.
- 17Feature-first architecture and repositories2 hPresentation, application, domain and data layers; the repository pattern; dependency injection with providers; keeping widgets thin.
- 18Architecture review and doubt-clearing2 hRefactor a learner’s study-planner into the feature-first structure live; open questions on state.
- Practice
- Refactor the study-planner to Riverpod with a task repository backed by in-memory data, organised by feature.
- Assessment
- Assignment: architecture refactor with a short write-up explaining where each kind of state lives.
- You will be able to
- You can keep a growing Flutter codebase organised and its state predictable.
05REST APIs and authentication5 live sessions · 10 hours · Connect the app to a real backend and sign users in securely.
Learning objectives
- Call REST APIs with dio and the http package and handle failures gracefully
- Generate type-safe models with json_serializable
- Implement sign-up, sign-in, token storage, refresh and sign-out
Live sessions
- 19HTTP with dio and http2 hRequests, responses and status codes; http versus dio; base options, timeouts, interceptors for headers and logging; cancelling requests.
- 20JSON models with json_serializable2 hManual parsing versus code generation, json_serializable and build_runner, nested and nullable fields, an overview of freezed for immutable models.
- 21Error handling and resilient networking2 hMapping network, server and validation errors to user-safe messages, retries with backoff, pagination and pull-to-refresh against a live API.
- 22Authentication flows2 hEmail and password sign-in, access and refresh tokens, storing tokens with flutter_secure_storage, refresh in a dio interceptor, sign-out and session expiry, an overview of OAuth and social sign-in.
- 23Mid-course assessment and doubt-clearing2 hTimed practical assessment covering Dart, widgets, navigation, state and networking, followed by a walkthrough of solutions.
- Practice
- Connect the study-planner to the provided course API with authenticated, paginated task endpoints.
- Assessment
- Mid-course practical assessment (auto-marked tasks plus instructor review).
- You will be able to
- You can build an authenticated app that works reliably against a real REST API.
06Local storage and offline-first apps4 live sessions · 8 hours · Store data on the device and keep the app useful without a connection.
Learning objectives
- Choose between key-value storage, secure storage and a local database
- Model and query local data with Drift
- Design an offline-first sync strategy with conflict handling
Live sessions
- 24Key-value and secure storage2 hshared_preferences for settings, flutter_secure_storage for secrets, what never to store on a device, and an overview of sqflite and Isar as alternatives.
- 25Local databases with Drift2 hTables, queries and reactive streams in Drift, migrations between schema versions, and exposing the database through a repository.
- 26Offline-first sync2 hLocal database as the source of truth, an outbox of pending changes, connectivity detection, background sync and simple conflict resolution.
- 27Offline lab and doubt-clearing2 hTest the study-planner in airplane mode and fix the gaps together; open questions.
- Practice
- Make the study-planner offline-first: cached tasks, offline edits queued and synced when the connection returns.
- Assessment
- Assignment: a recorded demo of offline edits syncing, with the sync design explained.
- You will be able to
- You can build apps that stay usable on unreliable mobile networks.
07Native features, notifications and payments5 live sessions · 10 hours · Reach platform capabilities, send push notifications and integrate payments safely.
Learning objectives
- Call native Android and iOS code with platform channels
- Use device plugins and runtime permissions responsibly
- Deliver push notifications with Firebase Cloud Messaging
- Integrate a payment SDK in test mode with server-side verification
Live sessions
- 28Platform channels and native code2 hMethodChannel and EventChannel, calling Kotlin and Swift code, type-safe channels with Pigeon, and when to write a plugin.
- 29Device plugins and permissions2 hCamera and image picker, location, sharing and URL launching; runtime permission flows on Android and iOS and explaining why access is needed.
- 30Push notifications with Firebase Cloud Messaging2 hFirebase project setup, FCM tokens, foreground and background messages, local notifications, notification taps that deep-link into the app, and APNs requirements on iOS.
- 31In-app payments with Razorpay (test mode)2 hPayment flow concepts, creating orders on the server, the Razorpay Flutter SDK in test mode, verifying the payment signature server-side, and store rules on digital goods versus physical services.
- 32Integrations review and capstone kick-off2 hDoubt-clearing on native integrations; capstone briefs released and project scopes agreed.
- Practice
- Add a reminder notification, a profile photo from the camera and a test-mode premium upgrade to the study-planner.
- Assessment
- Quiz on platform channels, permissions, FCM and payment verification, plus an approved capstone scope.
- You will be able to
- You can integrate native features, notifications and payments the way production apps do.
08Testing and performance4 live sessions · 8 hours · Prove the app works with automated tests and keep it fast.
Learning objectives
- Write unit tests for business logic and widget tests for UI
- Automate user journeys with integration tests
- Find and fix jank, excess rebuilds and memory problems with DevTools
Live sessions
- 33Unit and widget tests2 hflutter_test, testing notifiers and repositories with mocktail, provider overrides, widget tests with finders and pumping, and golden tests.
- 34Integration tests2 hThe integration_test package, running journeys on emulators and devices, test data and fake backends, and an overview of Patrol for native dialogs.
- 35Performance profiling with DevTools2 hProfile mode, the performance and CPU views, rebuild tracking, const widgets, image caching and memory leaks, and app size analysis.
- 36Testing clinic and doubt-clearing2 hWrite missing tests for learners’ capstone code together; open questions on testing and performance.
- Practice
- Bring the study-planner to meaningful test coverage and fix two performance problems found with DevTools.
- Assessment
- Assignment: test suite plus a short before-and-after performance note.
- You will be able to
- You can ship changes with confidence that the app still works and stays smooth.
09Release engineering and capstone6 live sessions · 12 hours · Automate builds, publish to the stores and complete the capstone project.
Learning objectives
- Set up CI/CD that tests and builds the app on every change
- Configure flavours, signing and production builds for Android and iOS
- Prepare store listings and follow Play Store and App Store review requirements
- Deliver and present a complete capstone app
Live sessions
- 37CI/CD with GitHub Actions and Codemagic2 hRunning analysis and tests on every push, building artefacts in CI, managing secrets, and an overview of Codemagic for iOS builds without a local Mac.
- 38Flavours, signing and production builds2 hDevelopment and production flavours, environment configuration, Android keystores and App Bundles, iOS certificates and provisioning profiles, obfuscation and versioning.
- 39Play Store and App Store deployment2 hPlay Console internal testing tracks, TestFlight, store listings, data safety and privacy labels, review guidelines and staged rollouts.
- 40Capstone build lab and doubt-clearing2 hFocused working session on capstone blockers with instructor support.
- 41Capstone review2 hLive code and architecture reviews of capstone projects with actionable feedback before final submission.
- 42Capstone presentations and final assessment2 hLearners demo their apps; final assessment covering the whole course.
- Practice
- Set up the capstone’s CI workflow, produce a signed release build and draft its store listing.
- Assessment
- Capstone submission and a final assessment (pass mark 60%).
- You will be able to
- You can take a Flutter app from code to a signed, store-ready release.
Teaching formats and fees
Every format teaches the full syllabus live, with the same projects, assessments and certificate rules. The fee is per student for the whole course.
| Detail | Group | Duo | One-to-One |
|---|---|---|---|
| Who is in class | Small group | 2 students | 1 student |
| Course fee | ₹13,999 | ₹22,999 | ₹41,999 |
| Per live hour | ₹167 | ₹274 | ₹500 |
| Best for | Learn live with a small group of students. Lowest fee per student. | Two students share every live class with the instructor. | Every live class is just you and the instructor. |
| Status | Launch fee | Launch fee | Launch fee |
Launch fee — GST treatment to be confirmed.
Fees are set in Indian rupees. Amounts in other currencies are estimates; the amount and currency you would pay are shown before payment once online enrolment opens.
Schedules and batches
Choose the schedule that fits your week. Both teach the same syllabus and the same 84 live hours; only the number of weeks differs.
| Schedule | Days | Live hours a week | Classes | Length before holidays |
|---|---|---|---|---|
| Weekday Intensive | Mon–Fri, 1 h each | 5 | 84 | about 17 weeks |
| Weekend Evening | Sat & Sun evenings, 2 h each | 4 | 42 | about 21 weeks |
- Weekday Intensive classes are one hour, so each 2 h syllabus session is taught across consecutive weekday classes.
- Weekend Evening classes run on Saturday and Sunday evenings; the exact time and time zone are set before a batch is confirmed.
- Public holidays are not class days unless the instructor confirms a class. Holidays, instructor leave and cancelled classes move the end date later so no live hours are lost.
- Plan about 6 hours a week of exercises, assignments and project work outside class.
- Group, Duo and One-to-One courses all follow one of these two schedules.
Final project
Build and release-prepare a production-style Flutter app. Choose one brief — a clinic appointment booker, a society maintenance tracker or a small-shop order app — or propose your own of similar scope for approval. Your app must:
- use a feature-first structure with go_router, Riverpod and repositories in front of a provided REST API (or a backend you build);
- support sign-up, sign-in, sign-out and token refresh, with tokens kept in secure storage;
- cache data in Drift so the main screens work offline and pending changes sync when the connection returns;
- receive a push notification through Firebase Cloud Messaging that deep-links to the right screen;
- include one native integration (a platform channel or a device plugin such as camera or location) and, where it fits the brief, a Razorpay checkout in test mode verified by the server;
- have unit, widget and at least one integration test, running in a CI workflow on every push.
Deliverables: the Git repository with a README covering setup and architecture, a signed Android release build (App Bundle), the CI workflow file, a short DevTools performance note showing one problem you found and fixed, a store-listing draft (description, screenshots and privacy details) and a five-minute recorded or live demo. Projects are reviewed live in the final week; iOS builds are optional for learners without a Mac or cloud build access.
Certificate
ZORK Academy course completion certificate
Issued once your instructor confirms you have met every requirement:
- Attend at least 80% of live classes
- Submit every required assignment
- Submit and pass the required projects, including the final project
- Score at least 60% in the final assessment
Each certificate has a unique ID that employers can verify online. Paying for the course does not by itself earn a certificate. It is not a university degree or a government-recognised qualification.
Tools and skills
Tools and technologies
- Flutter SDK and Dart
- Android Studio or VS Code with the Flutter extension
- Android Emulator and Xcode Simulator
- Flutter DevTools
- go_router
- Riverpod
- dio
- json_serializable and build_runner
- shared_preferences and flutter_secure_storage
- Drift
- Firebase Cloud Messaging
- Razorpay Flutter SDK (test mode)
- mocktail
- GitHub Actions
- Codemagic
- Google Play Console and App Store Connect
- Git and GitHub
Skills you practise
- Dart and null safety
- Flutter widgets and layout
- Navigation with go_router
- State management with Riverpod
- Feature-first architecture
- REST API integration
- Authentication flows
- Offline-first local storage
- Platform channels
- Push notifications
- Automated testing
- Performance profiling
- CI/CD and store releases
Where these skills apply
- Cross-platform mobile app development
- Flutter feature work on existing product teams
- Building app front ends for startups and internal business tools
- Mobile release engineering and app maintenance
- Freelance and agency mobile projects
We help you prepare for work; we do not guarantee jobs, placements or salaries. Career resources
Questions about Flutter Mobile App Development
How long is Flutter Mobile App Development?
84 hours of live online teaching: about 17 weeks on the Weekday Intensive schedule (Mon–Fri, 1 h a class), or about 21 weeks on the Weekend Evening schedule (Sat & Sun evenings, 2 h a class), before holidays. Plan about 6 hours a week of exercises and project work as well.
When are the classes?
No batch dates have been announced yet. The proposed pattern is Mon, Wed and Fri, 7:30–9:30 pm IST; it is confirmed when a batch is scheduled. Book a free consultation to hear about the next batch.
What do I need before I start?
- Working knowledge of at least one programming language (variables, functions, loops, classes)
- Basic understanding of how apps talk to servers over HTTP and what JSON looks like
- Comfortable with Git basics (clone, commit, push)
- A laptop with 16 GB RAM recommended (8 GB minimum) and around 30 GB free disk space for the Flutter SDK, Android Studio and an emulator
- An Android phone is helpful for device testing but not required
- Building and running on iOS needs a Mac with Xcode, or a cloud build service such as Codemagic; Windows and Linux users can complete the course on Android and learn the iOS release steps
- Publishing to the stores needs your own Google Play developer account and Apple Developer Program membership; both are optional, and store steps are demonstrated live
Will I get a certificate?
Yes — a ZORK Academy course completion certificate when you meet this course’s requirements, listed under Certificate. Paying for the course does not by itself earn the certificate, and it is not a university or government-recognised qualification.
Are classes recorded?
Where the academy has permission to record a class, the recording may be shared with your batch for revision. Recordings do not replace live classes, and attendance counts towards the certificate.
How do I pay?
The fee is a one-time payment in Indian rupees through Razorpay once online enrolment opens; ZORK Academy never sees your card or UPI details. The fee shown is proposed and may change before enrolment opens. Refunds follow the refund and cancellation policy in force when you pay.
Send an enquiry
Tell us which format and schedule interest you. An enquiry is not an enrolment: it reserves no place and commits you to nothing. The team replies with the confirmed batches and approved fees once they are available.
