Skip to content

Fall 2025 | Mobile Application Development | CUI Sahiwal

Jamil226/FA25-Flutter

Repository files navigation

Mobile Application Development using Flutter

Flutter Dart Google Firebase MySQL SQFLite REST API JSON GraphQL Android Studio VS Code Postman Git GitHub GitLab Bitbucket Slack Trello Figma


Welcome to the Flutter Bootcamp - FA25! This repository is designed to help you master Flutter from the ground up. Whether you’re a beginner or an experienced developer looking to deepen your Flutter knowledge, this Bootcamp will guide you through building high-performance, scalable mobile applications.

Bootcamp Overview

This Bootcamp covers Flutter’s essential and advanced concepts, UI/UX best practices, state management techniques, backend integration, and performance optimization. By the end of this course, you’ll be equipped with the skills to develop professional Flutter applications for Android and iOS.


Curriculum Design and Educational Framework

  • Bloom’s Taxonomy Framework (Higher Order)
  • Progressive Curriculum Development (John Dewey)
  • Outcome-Based Education (OBE)

Teaching Methodology

  • Project-based Learning (PBL)
  • Experiential Learning (Kolb Cycle)
  • Demonstration Method
  • Blended Learning
  • Technology-based Learning (eLearning)

Course Structure & Topics

All course-related files are organized in a shared Google Drive folder.

πŸ“‚ Course Folder: Access Here

πŸ“‚ Dart Programming Fundamentals: Access Here


Lab 0 – Prerequisites

  • Setting up Flutter and Dart SDK
  • Installing Android Studio
  • Installing essential Android Studio SDK components
  • Setting up an Emulator (Virtual Device)
  • Enabling Developer Options for real device testing
  • Verifying the setup using the flutter doctor command
  • Understanding Flutter Architecture
  • Exploring Widgets and the Widget Tree
  • Git and GitHub basic understanding

Lab 1 – Flutter Basic Layouts

  • Introduction to Scaffold widget
  • Using SafeArea
  • Exploring Container widget (height, width, margin, padding, color)
  • Implementing Row widget for horizontal layout
  • Implementing Column widget for verticle layout
  • Implementing ListView widget for responsive layout
  • Implementing GridView widget for responsive layout
  • Adding spacing with SizedBox
  • Basic Material Dashboard Design

Lab 2 – Working with Text, Icons, Images, & AppBar

  • Adding and styling Text widgets
  • Using Icons in Flutter
  • Using AssetImage in Flutter
  • Implementing AppBar
  • Understanding and modifying pubspec.yaml
  • Adding custom fonts in a Flutter app
  • Center Widgets in Flutter
  • Card Widget in Flutter
  • Adding Fonts in Flutter

Lab 3 – Input & Interaction Widgets

  • Using TextField for user input
  • Applying InputDecoration (hints, labels, borders, icons)
  • Exploring different types of Buttons (ElevatedButton, TextButton, OutlinedButton)
  • Handling basic user interactions with onPressed callbacks

Lab 4 – Events, Images & Dice Game

  • Handling button events with onPressed
  • Adding and displaying images in a Flutter app (dice faces: 1.png – 6.png)
  • Using Expanded and Row for layout
  • Implementing random number generation with dart:math
  • Creating a very basic Dice Game with two dice that change on button press

Lab 5 – Navigation Between Screens

  • Introduction to Navigator.push() and Navigator.pop()
  • Building multiple screens in a Flutter app
  • Passing data between screens
  • Example project: Simple Multi-Screen App (e.g., Home β†’ Details β†’ Back)
  • Passing Data Between Screens

Lab 6 – Launching Built-in Apps using Plugins

  • Introduction to Flutter plugins for device functionalities
  • Using url_launcher to open apps directly from Flutter
  • Open Dialer – Launch phone dialer with a number
  • Open Map – Show a location in Google Maps
  • Send Message – Open SMS app with pre-filled text
  • Send Email – Open email app with subject & body
  • Web View App – Display websites inside the app
  • Open Google – Launch Google in browser
  • Open Camera – Capture photo using device camera
  • Image Picker – Pick image from gallery or camera

Lab 7 – Stateless vs Stateful Widgets & Splash Screen

  • Understanding Stateless Widgets

    • Widgets that do not change during runtime
    • Example project: Static Profile Card (Name, Image, Description)
  • Understanding Stateful Widgets

    • Widgets that can change dynamically with setState()
    • Example project: Counter App (Increment/Decrement buttons)
  • Splash Screen

    • Displaying a logo and progress indicator
    • Auto navigation after a delay
    • Example project: App Splash β†’ Home Screen

Other Use Cases

  • Toggle Switch App – Turn dark/light mode on and off
  • Like Button App – Tap a heart icon to toggle between liked/unliked
  • TextField Input Demo – Enter name and display it on screen

Lab 8 – Alert Dialogs, Toasts, Pop-ups, App Icon and App Name Change

  • Introduction to Alert Dialogs, Toasts, Pop-ups, and App Customization in Flutter

Alert Dialogs

  • Creating a Basic Alert Dialog with title, message, and actions
  • Designing a Custom Alert Dialog using widgets
  • Implementing a Bottom Alert Dialog for modern UI effects

Toasts

  • Using the fluttertoast package to display basic toast messages
  • Implementing Motion Toasts for animated notifications

Pop-ups and Bottom Sheets

  • Displaying information using Bottom Sheets
  • Implementing Modal and Persistent bottom sheets for user interaction

Internet Connectivity Check

  • Checking internet status programmatically
  • Showing an alert or bottom dialog when there’s no internet connection

App Icon and App Name Customization

  • Changing the App Icon using the flutter_launcher_icons package and using manual method
  • Updating the App Name in:
    • AndroidManifest.xml (for Android)
    • Info.plist (for iOS)

Lab 10 – Local Databases

  • Introduction to SharedPreferences
  • Maintaining App Sessions with SharedPreferences
  • Introduction to SQFLite

Expense Tracker App

  • Creating an Expense Tracker App with expnese title, amount, and date
  • CRUD Operations
  • Fully Explained Code with Comments

Sticky Notes App

  • Creating a Sticky Note App with note title, note details, and note date
  • CRUD Operations
  • Editable Appbar and Random Colors for notes.

Sticky Notes App Demo

Sticky Notes App Demo


Contributions & Community

Contributions to this repository are highly encouraged!

  • Submit issues & suggestions
  • Fork & improve the course content
  • Add new features & code samples
  • Join discussions & help fellow learners

Join the Flutter Bootcamp Now!

Stay tuned for regular updates, new projects, and learning challenges. Follow the repository and start your Flutter journey today!

πŸ“§ For any queries, feel free to contact us at jamil138.amin@gmail.com.


Bootcamp Credits