MotiGraph — Flutter Mobile App Development
MotiGraph
Flutter Mobile

We will not teach you Flutter from scratch — we will teach you how to build real mobile applications with it.

You know Dart. Now build real applications with it.

An intensive three-month practical programme for developers and students who already have programming fundamentals and Dart, and want to move from writing Flutter UI to building real mobile applications with proper architecture, APIs, Firebase and state management — on both Android and iOS.

Duration Three months
Schedule Two days a week
Investment 8,000 EGP
Apply for This Track What you leave with
Flutter
Dart
Firebase
Firestore
REST APIs
Google Maps
GPS
Postman
Git & GitHub
Android + iOS
Why this programme

What the programme is for

The goal is not to memorise widgets — it is to be able to build a real mobile application, from the requirement through to deployment.

You work the way a software company works: requirement, planning, UI, development, API integration, testing, code review, debugging, git, deployment.

How it runs

How the training runs

Not instructor, lecture, homework, exam. Instead: team lead, requirements, planning, task, development, code review, testing, debugging, delivery.

Requirement

تستلم متطلبات زي اللي بتيجي من عميل حقيقي.

Planning

تقسيم المشروع لـFeatures و Tasks وتحديد الأولويات.

UI

تحويل التصميم لشاشات Flutter شغالة وResponsive.

Development

تنفيذ الـFeature بالـArchitecture المتفق عليها.

API Integration

ربط التطبيق بالـBackend و Firebase.

Testing

اختبار الـFeature على أجهزة حقيقية.

Code Review

مراجعة الكود قبل الدمج.

Debugging

تتبع المشكلة لحد سببها الحقيقي.

Deployment

بناء نسخة إصدار وتجهيزها للمتاجر.

What you build

Two real applications

Not examples — two complete applications you build from nothing and keep in your portfolio.

01

Delivery App

A complete delivery application, shaped like the ones people actually use.

Customer App
Splash Screen Onboarding Login Register Forgot Password Home Categories Restaurants / Stores Products Product Details Cart Checkout Address Management Order Placement Order History Order Details Order Tracking Profile Notifications Favorites Search Filters
Delivery Features
Current Location Select Delivery Address Google Maps Location Permissions Distance Calculation Delivery Status Order Status Real-time Updates
Firebase
Firebase Authentication Firestore Firebase Storage Push Notifications User Data Orders Real-time Order Status
API Integration
REST API HTTP Requests JSON API Models Authentication Tokens Error Handling Loading States Empty States
02

Uber App

A larger, harder ride-hailing application — a passenger app and a driver app, joined by live tracking.

Passenger App
Splash Onboarding Login / Register Home Current Location Select Pickup Select Destination Google Maps Ride Request Ride Types Fare Estimation Driver Search Ride Confirmation Driver Information Live Trip Tracking Trip Status Trip History Rating Profile Notifications
Driver Features
Driver Login Driver Profile Online / Offline Status Incoming Ride Requests Accept / Reject Ride Pickup Location Passenger Information Navigation Start Trip End Trip Earnings Trip History
Maps & Location
Google Maps Integration GPS Geolocation Markers Polylines Pickup Location Destination Route Distance Estimated Trip Time
Beyond the code

Beyond Flutter syntax

Git & GitHub

Repository و Branches و Commits و Push / Pull و Pull Requests و Merge و Conflict Resolution — الشغل داخل فريق مش لوحدك.

API Integration

REST API و JSON و Authentication و Bearer Tokens و API Models و Error Handling و Postman و Third-party APIs.

Firebase

Authentication و Firestore و Storage و Cloud Messaging و Real-time Data — العمود الفقري لتطبيقات الموبايل الحديثة.

Google Maps

Maps SDK و Location و GPS و Markers و Routes و Polylines و Distance و Location Permissions.

Clean Code

Reusable Widgets و Separation of Concerns و Project Structure و Naming و Refactoring و Error Handling.

Deployment

Android Build و APK و AAB و App Signing و Release Configuration و iOS Build ومتطلبات المتاجر.

Before you apply

Is this for you?

Who it is for

Flutter students
Junior Flutter developers
Mobile development students
Computer science students
Anyone with Dart basics who has built a simple Flutter app
Freelancers who want real project experience

Who it is not for

This is a practical track, not Flutter from scratch.

Anyone without programming fundamentals
Anyone who has not worked with Dart or OOP
Anyone who has never built a Flutter app

Requirements

Programming Fundamentals Dart Basics OOP Basics Flutter Basics Git Basics You have built a simple Flutter app before

Required Skills

Flutter Dart REST APIs JSON Firebase Firestore Firebase Storage FCM Google Maps GPS State Management Git & GitHub Debugging Testing Deployment

Program Structure

Building a real mobile application from requirement to deployment
Organised architecture: models, services and the repository pattern
Connecting the app to REST APIs and handling JSON
Firebase: authentication, Firestore, storage and notifications
Google Maps, GPS, geolocation and live tracking
State management and handling application data
Git and GitHub, and code review inside a team
Testing, debugging and deploying to the stores
Week by week

The 12-week plan

Three months. Two real applications on Android and iOS. Every topic carries a line saying exactly what you will be able to do.

Month one — Flutter foundations
Week 01
Dart Programming & Flutter Fundamentals

اللغة قبل الأدوات.

هتتقن Dart كلغة فعلاً — مش مجرد Syntax تعدّي عليه — لأن كل حاجة بعد كده هتتبني عليها.

Dart Programming
Variables & Data Types
Storing data and working with the different data types Dart provides.
String & Numbers
Working with text and numbers and the operations you perform on them.
Lists
Holding a collection of values, and searching and changing it.
Maps
Key/value storage, and how API responses are read with it.
Sets
Holding a collection where nothing repeats.
Operators
Arithmetic, comparison and logical operations.
Conditions
Running different code depending on a condition, with if and else.
Loops
Repeating work with for, while and the rest.
Functions & Structure
Functions
Breaking code into functions you can use again.
Parameters
Passing data into a function in an orderly way.
Return Values
Returning a result and using it elsewhere in the app.
Anonymous Functions
Functions without a name, and using them as callbacks.
Null Safety
Protecting the app from values that might be null.
Exception Handling
Handling errors with try, catch and finally.
Async Programming
Async Programming
Work that takes time — API requests, Firebase — and how to wait for it.
Future
Handling an operation whose result arrives later.
Async / Await
Writing asynchronous code that still reads in order.
OOP
Classes & Objects
Creating models and objects to organise the app's data.
Constructors
Creating objects and giving them what they need.
Inheritance
Reusing the properties and behaviour of another class.
Encapsulation
Keeping data organised and protected inside a class.
OOP Concepts
Applying object-oriented principles in Flutter projects.

تبني أول Feature حقيقي داخل Flutter بدل مجرد أمثلة منفصلة.

Week 02
Flutter UI Development

من تصميم على الورق إلى شاشة شغالة.

هتفهم Flutter بيبني الواجهة إزاي، وتحوّل أي تصميم لشاشة حقيقية تشتغل على كل المقاسات.

Flutter Fundamentals
Flutter Architecture
How Flutter works, and how the code becomes a mobile app.
Project Structure
The files and folders of a Flutter project, and what each is for.
Widgets
Widgets as the building blocks of any Flutter application.
StatelessWidget
Widgets whose state never changes while running.
StatefulWidget
Widgets whose data and state can change while in use.
Build Method
How Flutter builds the interface from your code.
Widget Tree
How widgets relate to each other to make a screen.
Material & Cupertino
Material components, and the iOS-style ones where they suit.
Layout
Container
Boxes, and control over size, spacing and background.
Row & Column
Arranging elements across or down the screen.
Stack
Layering elements to build more involved designs.
Expanded & Flexible
Controlling how much room each element takes in a row or column.
SizedBox & Padding
Controlling spacing and dimensions between elements.
Center & Align
Placing an element within the space it has.
UI Components
Text & Image & Icon
Showing text, images and icons, and styling them.
Buttons
Buttons, and the actions they trigger.
Card
Card-shaped UI for products and data.
ListView & GridView
Showing data as scrollable lists or grids.
AppBar
The top bar of the app and what sits in it.
BottomNavigationBar
Moving between the main sections of the app.
Drawer
The side menu of the app.
Dialog & BottomSheet
Dialogs, and actions presented from the bottom of the screen.
Styling & Responsive
Colors & Fonts & Themes
Holding the whole app to one theme.
Custom Widgets
Building components specific to this project.
Responsive UI
Making the interface work across screen sizes.
Adaptive UI
Adapting the interface to the platform or device.

تحوّل تصميم كامل لشاشات Flutter شغالة على أكتر من مقاس.

Week 03
Navigation, Forms & State Management

التطبيق لما يبقى أكتر من شاشة.

هتربط الشاشات ببعض، وتتعامل مع مدخلات المستخدم بأمان، وتفهم إدارة الحالة — وهي أكتر نقطة بتفرق بين مطور مبتدئ ومحترف.

Navigation
Navigator
Moving between screens inside the app.
Routes
Organising how the app moves between pages.
Named Routes
Naming pages so navigation stays manageable.
Route Arguments
Passing data from one screen to another.
Navigation Stack
The order of screens, and how going back works.
Bottom Navigation
Building an app with several main sections.
Deep Linking
Opening a specific screen straight from a link or notification.
Forms
TextField
Creating input fields.
TextEditingController
Reading and changing what the user types.
Form Widget
Grouping input fields into a single form.
Form Validation
Checking the data is right before it is sent.
Email & Password Validation
Checking an email is well formed, and holding passwords to sensible rules.
Error Messages
Telling the user plainly what is wrong.
Keyboard Handling
Managing the keyboard while the user types.
State Management
State Concept
What state means, and why an app has to manage it.
setState
Refreshing the interface when the data changes.
Provider
Managing data shared across the app.
ChangeNotifier
Classes responsible for changing and watching state.
Consumer
Refreshing only the parts of the screen that changed.
State Separation
Keeping data logic out of the interface.

تطبيق متعدد الشاشات بـForms موثّقة وState متدارة صح.

Week 04
REST APIs, JSON & Firebase

التطبيق لما يبقى فيه بيانات حقيقية.

هنا التطبيق بيتحول من UI لـApplication فعلاً — بيانات جاية من سيرفر، ومستخدمين، وإشعارات.

REST API
What is an API?
How a Flutter app talks to a backend server.
HTTP
The protocol behind sending and receiving data.
GET Request
Fetching data from the server.
POST Request
Sending new data to the server.
PUT & PATCH
Replacing existing data, or changing part of it.
DELETE Request
Deleting data from the server.
Headers
Sending extra information alongside the request.
Authorization
Protecting the API with authentication tokens.
Status Codes
Reading response codes: 200, 400, 401, 404, 500.
Data Handling
JSON
Reading and converting what the API returns.
JSON Serialization
Turning JSON into Dart objects and back.
API Models
Models that represent the backend's data cleanly.
API Service
A single layer responsible for talking to the API.
Error Handling
Handling network and server failures properly.
Loading State
Showing a loading state while data is on its way.
Empty State
Handling the case where there is nothing to show.
Firebase
Firebase Setup
Connecting the Flutter project to Firebase.
Firebase Authentication
Login and registration through Firebase.
Email Authentication
Signing users up with an email and a password.
Firestore
Storing the app's data in a cloud database.
Firebase Storage
Uploading and keeping images and files.
Real-Time Data
Data updating live, without reloading the screen.
Firebase Messaging
Sending push notifications to users.
User Management
Managing user accounts and their data.

تطبيق بيقرأ ويكتب بيانات حقيقية من API و Firebase ومعاه Notifications.

Month two — Project 01: Delivery App
Week 05
Project Planning & Architecture

قبل أول سطر كود.

المشروع بيبدأ من المتطلبات مش من الـWidgets — هنحلل ونخطط ونبني هيكل المشروع قبل ما نكتب حاجة.

Project Planning
Requirements Gathering
Listing every feature the delivery app has to have.
User Roles
Deciding the kinds of user and what each may do.
User Flow
Mapping the journey from login to a completed order.
Feature Planning
Breaking the project into features small enough to build.
Database Understanding
Working out the shape of the data the app needs.
API Planning
Deciding which endpoints the app will call.
Flutter Architecture
Folder Structure
Splitting the project into screens, models, services and widgets.
Reusable Widgets
Building components you can use in more than one place.
Models
Classes representing users, products and orders.
Services
Keeping API and Firebase calls out of the interface.
State Management
Managing the state of the cart, the user and the orders.
Repository Pattern
Separating where the data comes from from the rest of the app.
UI/UX
User Flow
Drawing the user journey before building any screen.
Wireframes
Sketching the screens before the final design.
Screen Structure
Deciding what each screen contains and where.

مشروع مخطّط ومقسّم Tasks وهيكله جاهز للتنفيذ.

Week 06
Delivery App — UI & Authentication

من فتح التطبيق لحد السلة.

هنبني الجزء اللي العميل بيتعامل معاه: الدخول، والصفحة الرئيسية، والمنتجات، والسلة.

Authentication
Splash Screen
The first screen shown when the app opens.
Onboarding
Introducing the app before the user signs in.
Login Screen
The sign-in screen.
Register Screen
Creating a new account.
Forgot Password
Letting a user recover a forgotten password.
Logout
Letting a user sign out.
Authentication State
Knowing whether someone is signed in.
Home & Products
Home Screen
The home screen and what it shows.
Categories
Showing product or restaurant categories.
Featured Products
Showing featured items.
Search
Searching products and restaurants.
Filters
Filtering results by different criteria.
Product List
Listing products as a list or a grid.
Product Details
The full details of a product.
Favorites
Saving the items a user likes.
Cart
Add to Cart
Adding items to the basket.
Remove from Cart
Removing items from the basket.
Update Quantity
Changing the quantity of an item.
Cart Total
Working out the total.
Delivery Fee
Adding the delivery charge.
Order Summary
Summarising the order before it is confirmed.

تطبيق فيه تسجيل دخول وتصفح منتجات وسلة شغالة.

Week 07
Checkout, Orders & Location

الطلب لما يخرج من السلة للشارع.

هنكمّل رحلة الطلب: العنوان والموقع والخريطة، وإنشاء الطلب ومتابعته لحد ما يوصل.

Checkout
Address Management
Adding, editing and removing delivery addresses.
Current Location
Getting the user's current location.
Location Permission
Handling location permissions.
Delivery Address
Choosing where the order is delivered.
Checkout Screen
A review screen before the order is placed.
Order Confirmation
Confirming the order was created.
Orders
Create Order
Sending the order to the backend.
Order ID
Working with the order's reference number.
Order History
Showing every past order.
Order Details
The details of a single order.
Order Status
Following the state of an order.
Order Tracking
Following an order while it is being delivered.
Cancel Order
Cancelling an order, within the project's rules.
Google Maps
Google Maps Integration
Putting a map inside the Flutter app.
Markers
Marking places on the map.
Current Position
Showing where the user is now.
Select Location
Picking a location from the map.
Distance Calculation
Working out the distance between two points.
Map UI
Styling the map to suit the app.

طلب كامل من السلة للتأكيد، بعنوان محدد على الخريطة وحالة قابلة للمتابعة.

Week 08
Delivery App — Advanced & Testing

الفرق بين Demo وتطبيق حقيقي.

الحالات اللي بتفرق: تحميل، فاضي، خطأ، إشعارات — وبعدين اختبار على أجهزة حقيقية.

Firebase
Firestore Orders
Storing and following order data.
Real-Time Order Status
Updating order status live.
Firebase Storage
Uploading product and user images.
Push Notifications
Notifying the user when the order status changes.
Application Features
Notifications Screen
A screen listing notifications.
Profile Screen
Creating and managing the user's details.
Edit Profile
Editing account details.
Favorites
Managing saved favourites.
Search & Filters
Improving search and filtering.
Loading Screens
Making the wait for data feel considered.
Error Screens
Showing errors in a way a person understands.
Empty Screens
Handling screens with nothing to show.
Testing & Quality
Debugging
Finding and fixing faults inside the app.
API Testing
Testing the connection to the backend.
UI Testing
Checking the screens behave correctly.
Real Device Testing
Running the app on real devices.
Refactoring
Reorganising code without changing what it does.
Performance
Improving the app's speed and responsiveness.

Delivery App متكامل ومختبَر على أجهزة حقيقية، مش مجرد UI Demo.

Month three — Project 02: Uber App
Week 09
Uber App — Architecture

أصعب مشروع في التدريب.

تطبيق Ride-Hailing فيه طرفين بيتحركوا في نفس الوقت — ده بيخلي التخطيط والـModels أهم بكتير من الكود نفسه.

Project Analysis
Ride-Hailing System
How ride-hailing applications actually work.
Passenger Flow
The passenger's journey from requesting a ride to ending it.
Driver Flow
The driver's journey from receiving a request to finishing the trip.
Trip Lifecycle
The stages of a trip, from requested to completed.
User Roles
Separating what a passenger may do from what a driver may do.
Business Logic
Turning the app's rules into logic in the code.
Data Models
User Model
Representing a user inside the app.
Driver Model
Representing a driver.
Vehicle Model
Storing vehicle details.
Trip Model
Storing trip details.
Location Model
Representing a geographic location.
Rating Model
Storing ratings from passengers and drivers.
Application Architecture
Services & API Layer
Keeping backend calls apart from the rest of the app.
State Management
Managing trip and location state moment to moment.
Repository Pattern
Separating the data source from the interface and the logic.
Reusable Components
Components shared between the passenger and driver apps.

هيكل مشروع Uber جاهز بـModels وServices واضحة قبل تنفيذ أي شاشة.

Week 10
Google Maps & Ride Request

الخريطة هي قلب التطبيق.

هتشتغل على الخرائط بجدية: موقع، ومسار، ومسافة، ووقت متوقع — وطلب رحلة كامل لحد ما سائق يقبلها.

Maps
Google Maps SDK
Adding Google Maps to the app.
GPS Location
Getting the device's location.
Pickup Location
Setting where the passenger is picked up.
Destination
Setting where the trip is going.
Markers
Showing the driver, the pickup and the destination on the map.
Polylines
Drawing the route between two points.
Route Display
Showing the suggested route.
Distance
Working out the distance from pickup to destination.
ETA
Showing the expected arrival time.
Ride Request
Ride Type
Choosing the type of car or ride.
Fare Estimation
Estimating what the trip will cost.
Request Ride
Sending the ride request.
Search for Driver
Looking for an available driver.
Driver Matching
Matching the passenger with a suitable driver.
Ride Confirmation
Confirming the trip once a driver accepts.

طلب رحلة كامل على خريطة حقيقية بمسار وسعر متوقع وسائق مطابَق.

Week 11
Driver App & Real-Time Trip

تطبيقين في مشروع واحد.

هتبني تطبيق السائق كمان، وتربط الطرفين ببعض بشكل لحظي — ده الجزء اللي بيخلي المشروع ده مميز في الـPortfolio.

Passenger App
Driver Information
Showing the driver's details to the passenger.
Driver Location
Showing where the driver is on the map.
Driver Arrival
Following the driver's approach to the passenger.
Trip Started
Updating the trip state when it begins.
Live Trip Tracking
Following the trip live.
Trip Completed
Ending the trip and recording it.
Rating System
Letting the passenger rate the driver.
Trip History
Showing past trips.
Driver App
Driver Login
The driver signing in.
Driver Profile
Managing the driver's details.
Online / Offline
Marking whether the driver is available for trips.
Ride Requests
Receiving new ride requests.
Accept / Reject Ride
Accepting or declining a ride request.
Pickup Navigation
Navigating to the passenger.
Start & End Trip
Starting and ending a trip, and updating its state.
Earnings
Showing the driver's earnings.
Driver Trip History
Showing the driver's past trips.
Real-Time Features
Real-Time Location
Updating driver and passenger locations live.
Real-Time Trip Status
Keeping the trip state in step for everyone.
Push Notifications
Notifying both the passenger and the driver.
Trip Events
Handling the events that occur during a trip.

تطبيق راكب وتطبيق سائق مربوطين ببعض بتتبع لحظي وإشعارات.

Week 12
Testing, Git & Deployment

من الكود إلى متجر التطبيقات.

آخر أسبوع بيحاكي التسليم الحقيقي: مراجعة، وتحسين أداء، واختبار على أجهزة، وبناء نسخة إصدار.

Git & GitHub
Git Basics
The fundamentals of version control.
Repository
Creating and managing the project's repository.
Commits
Recording the project's progress as you go.
Branches
Working on separate features without disturbing the main code.
Push / Pull
Pushing and pulling changes with GitHub.
Pull Requests
Reviewing and merging code properly.
Merge Conflicts
Resolving what goes wrong when branches meet.
Code Review
Checking the quality of code before it merges.
Debugging & Performance
Runtime Errors
Finding and fixing runtime errors.
UI Bugs
Fixing interface and layout problems.
API & Firebase Errors
Handling API and Firebase problems.
Location Errors
Handling GPS and permission problems.
Crash Analysis
Understanding why an app crashed.
Widget Optimization
Stopping widgets rebuilding when nothing changed.
Image & API Optimization
Loading images well and cutting unnecessary requests.
Memory Management
Reducing memory use and improving performance.
Testing
Functional Testing
Confirming every feature does what was asked.
UI Testing
Testing the app's screens and components.
API Testing
Testing every request and response.
Authentication Testing
Testing sign-in, registration and sign-out.
Real Device Testing
Running the app on Android and iOS devices.
Deployment
App Configuration
Preparing the app's settings for release.
Android Build
Building the Android version.
APK
Producing an APK for installing and testing.
AAB
Producing an Android App Bundle for Google Play.
App Signing
Signing the app for an official release.
Release Configuration
Configuring the app to run in production.
iOS Build
Preparing the iOS build and the steps to publish it.
App Store / Play Store
What the stores require before an app goes live.

مشروعان مختبَران ونسخة إصدار جاهزة وPortfolio تقدر تعرضه في أي Interview.

A certificate of experience, not of attendance

At the end you receive a certificate from MotiGraph Software Solutions stating how long you trained, the level you reached and the technologies you actually worked with — based on work you delivered, not on turning up.

Training period stated Technologies worked with Projects delivered Signed by the CEO
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Example of the certificate issued to trainees
Outcomes

What you leave with

Not just an attendance certificate.

Applications
A complete Delivery App
An Uber App with passenger and driver
Real REST APIs
Technical experience
Flutter & Dart
REST API & JSON
Firebase & Firestore
Firebase Storage & FCM
Google Maps & GPS
State Management
Real-time Features
Professional experience
Requirement Analysis
Task Breakdown
Git & GitHub
Pull Requests
Code Review
Debugging
Testing
Deployment
Portfolio
GitHub Repository
Two apps to show
Documentation & README
Project Presentation

Not a Flutter course — three months of real mobile development experience.

You leave with two substantial portfolio applications — a Delivery App and an Uber App — built with Flutter, Dart, REST APIs, Firebase, Google Maps, git, testing and deployment.

8,000 EGP

Three months · Two days a week

Full-Time

كثافة أعلى في ساعات اليوم التدريبي.

Part-Time

توزيع مناسب للطلاب والموظفين، مع نفس أهداف ومخرجات التدريب.

Apply for This Track
More Tracks

Other Internship Tracks

Full-Stack Laravel Practical Training

We will not teach you to code from scratch — we will teach you how to build with it on a real project.

View Track

MERN Stack Practical Training

We will not teach you JavaScript from scratch — we will teach you to build with it as a full-stack developer.

View Track