CS208
Mobile Development with Flutter

Faculty
Hossein Yousefi
Co-founder and CTO at Identi
Course length
Duration
Total hours
Credits
Language
Course type
Fee for single course
Fee for degree students
Skills you’ll learn
Overview
Flutter is a free and open-source framework developed by Google. Using Flutter you can build native cross-platform applications for iOS, Android, web, and mac. Windows support is also currently in alpha. Flutter is engineered for high-velocity development excellent for teams of any size especially solo developers trying to build their MVP quickly. With Flutter you have complete control over each and every pixel of the screen, giving you the freedom to express yourself and turn your ideas into reality.
Learning highlights
- By the end of this course you will:
- Learn about Dart
- Know how to layout widgets in Flutter
- Learn about asynchronous programming
- Learn about Domain-Driven Design and different state management architectures
- Know how to make complex UI and Animations work smoothly
- Learn about networking and other concepts to build a production-ready application
Course outline
15 classes
What is Flutter?
- Introduction to Dart
- Anatomy of a Flutter app
- Setup and installation
- What are widgets?
- Material Design Widgets
- Cupertino Widgets
- Containers, Scaffolds, etc.
- Assets
Layouting
- Constraints
- Column and Row widgets
- Stack widget
- Expanded and flexible layouts
- How flutter actually layout?
- AspectRatio, Spacer, Padding, and other lay out widgets
Dart
- Dart Classes
- Mixins
- Functions and Lambdas
- Maps
- OOP
Asynchronous Programming
- Futures
- Streams
- async / await
- rxdart package
State Management
- Stateless and Stateful widgets
- Inherited widgets
- Different methods and libraries for state management
- BLoC package
- Hydrated BLoC
- Flutter hooks
Domain-Driven Design / Testing
- DDD concept
- Dependency injection
- Injectable package
- Freeze package
- Testing and TDD
- BLoC Test
Navigation
- Routes
- AutoRoute package
- Navigator
Networking
- HTTP package
- JSON and serialization
Persisting Data
- Hive package
- SQLite, Moor package
- SharedPreferences
Firebase
- Firebase Auth
- Cloud Firestore
- Integrating with Flutter
- What are Cloud Functions?
Animation
- Implicit Animations
- Hero Animations
- Staggered Animations
- Explicit Animations
Advanced UI
- Paths
- ClipPath
- CustomPainter
- Gestures and GestureDetectors
- Slivers
Projects 1
- Helping each student with their project
Projects 2
- Helping each student with their project
Presentation Day
- Presentation Day
Prerequisites
Basic programming knowledge. Try taking at least an online course about programming beforehand.
Hossein started programming from an early age. He continued focusing on Computer Science field throughout his studies. As a developer, he has worked as an iOS Developer and a freelancer. He enjoys working with different teams on exciting ideas.
As a student, he earned a bronze medal in Iran National Olympiad in Informatics and a bronze medal in the SWERC ICPC competition. He is currently studying Masters of Computer Science in Harbour.Space University.
See full profileApply for this course
Mobile Development with Flutter
by Hossein Yousefi
Total hours
45 Hours
Dates
Mar 15 - Apr 02, 2021
Fee for single course
€1500
Fee for degree students
€750
How to secure your spot
Complete the form below to kickstart your application
Schedule your Harbour.Space interview
If successful, get ready to join us on campus
FAQ
Will I receive a certificate after completion?
Yes. Upon completion of the course, you will receive a certificate signed by the director of the program your course belonged to.
Do I need a visa?
This depends on your case. Please check with the Spanish or Thai consulate in your country of residence about visa requirements. We will do our part to provide you with the necessary documents, such as the Certificate of Enrollment.
Can I get a discount?
Yes. The easiest way to enroll in a course at a discounted price is to register for multiple courses. Registering for multiple courses will reduce the cost per individual course. Please ask the Admissions Office for more information about the other kinds of discounts we offer and what you can do to receive one.