📱 Mobile Programming — Flutter & Dart
💻 Academic repository for the Mobile Programming course
This repository contains exercises, class activities, and the final project developed during the Mobile Programming discipline. All projects were built using Flutter and Dart, with focus on practical application of mobile development concepts.
🚀 Course Overview
The Mobile Programming course provided a comprehensive introduction to mobile application development using Flutter. Key learning objectives included:
- Understanding mobile app history and operating systems.
- Setting up the development environment for Flutter.
- Creating interactive user interfaces with StatelessWidget and StatefulWidget.
- Implementing state management using setState and Provider.
- Using layout widgets: Row, Column, Container, Expanded, ListView, GridView, Drawer.
- Handling user input through TextField and FormField, including validation.
- Navigating between screens and passing data efficiently.
- Consuming APIs with HTTP GET/POST requests.
- Persisting data locally using SQLite (sqflite).
- Prototyping app designs using Figma.
- Version control and project management with GitHub.
🗓️ Topics and Activities Covered
- Course introduction and environment setup — Flutter configuration, first project creation.
- Widgets and UI basics — Buttons, text, colors,
child and children.
- App structure — AppBar, titles, interactive buttons triggering console messages.
- Layouts — Row, Column, Container, Expanded, Image, Icon.
- StatelessWidget applications — Apps without dynamic state and simple UI updates.
- Lists and grids — ListView, GridView, creating interactive menus.
- Navigation and detailed screens — Multi-page apps with intuitive back navigation.
- StatefulWidget and setState — Dynamic state changes, cascading data updates.
- FormField and validation — Login forms and input validation.
- Provider implementation — State management across multiple widgets.
- HTTP requests — GET and POST requests for API consumption.
- Prototyping and final project — Designing 12 screens in Figma, implementing login system, data persistence, navigation, and reusable components.
- Project presentation and evaluation — Finalization, testing, and deployment of the project.
⚙️ Tools and Technologies Used
- Flutter — Mobile app framework.
- Dart — Programming language for Flutter apps.
- Sqflite — SQLite plugin for local data persistence.
- Path — Path support for SQLite.
- Figma — Prototyping and design tool.
- GitHub — Version control and project management.
🧩 Skills Developed
- Building dynamic and interactive mobile UIs.
- Implementing proper state management.
- Validating user input and handling forms.
- Consuming APIs and managing data locally.
- Designing prototypes and translating them into functional apps.
- Organizing and managing projects with GitHub.
📂 Repository Content
This repository includes:
- Class exercises from lessons 1 to 20.
- Practical examples of widgets, navigation, state management, forms, and API consumption.
- Final project integrating all course concepts into a complete mobile application.