Mobile App Development

Week#1: Introduction to Mobile App Development:

Overview of native vs. cross-platform development [open]

Introduction to Flutter framework and its benefits [Open]

Setting up development environment (Flutter SDK, IDE) [open]

Flutter in VS Code

Flutter in Android Studio

Installation and using Android Emulator

Week#2: Dart Programming Fundamentals:

Introduction to Dart Programming Language [open]

dartpad.dev

Variables, data types, operators [open]

Lists and Maps

Control flow (if-else, switch, loops)

Functions [open]

Classes, object-oriented programming concepts [open]

Exception handling [open]

Asynchronous programming [open]

Introduction to Dart packages and pubspec.yaml

Week#3: Understanding Widgets:

Stateless vs. Stateful widgets

Code explanation of First Flutter App [open]

State-Management?

Building UIs with core widgets (Text, Image, Button, etc.) [#1: Text, Button] [#2: TextField] [#3: Add Two numbers example]

Layout widgets (Row, Column, Stack, ListView, GridView.)

Styling widgets (Text styles, colors, padding, margins)

Week#4: Navigation & Routing:

Organize directories and files in Flutter project [open]

Implementing navigation between screens (Push, Pop, Navigator)

Using tabs and bottom navigation bars

Weeks #5: Data Persistence:

SharedPreferences for simple data storage [open]

Working with local databases (SQLite)

Week#6: Flutter and Firebase

Introduction to cloud databases (Firebase)

Week#7: Interactive UIs

Building interactive UIs with gestures and sensors

Week#8: Working with assets

Images, fonts, and icons

Week#9: Notifications

AlertDialogs, SimpleDialogs, BottomSheet, SnackBars, Toasts

Week#10: Integrating device functionalities

Camera, GPS, and sensors.

Building location-based apps and capturing user input from devices.

Week#11: Network & APIs:

Fetching data from web APIs

Parsing JSON data and displaying it in the UI

Week#12: Authentication and authorization with APIs

Authentication with social media accounts

Phone authentication

Week 13: Deployment on Google Play Store

Packaging apps for release and deploying on the Google Play Store

Google Play Console setup.

Week#14: Deployment on Apple App Store

Packaging apps for release and deploying on the Apple App Store.

App Store Connect

Week#15: Course Review

Course review, project presentations, and Q&A.



Recommended Books

  • “Beginning Flutter: A Hands-on Guide to App Development”, by Marco L. Napoli.
  • “Flutter for Pros” by Burak Cansever and Josh Thomas (Focuses on building complex apps)
  • “Flutter: The Complete Reference” by Wei Meng (Comprehensive reference guide with explanations)
  • “Code Complete: A Practical Handbook of Software Construction”, by Steve McConnell

Assessments

Mid Term Exam

Additional Resources

Flutter YouTube Channel: https://www.youtube.com/@flutterdev

Flutter Documentation: https://docs.flutter.dev/ (Official documentation with tutorials and guides)

Dart Programming: http://dart.org

DartPad: http://dartpad.dev

Flutter Sample Code: https://github.com/topics/flutter-showcase (Collection of sample apps from the Flutter team)