The Surf Flutter development course training project
Course description »
This is a training project for the Surf practical Flutter development course. It is built using clean architecture approach with the help of MVVM pattern in reactive state management style. The app utilizes CRUD as well as Rest API operations.
Places is for the sight-seeing. You can browse a list of local places to visit, read descriptions and see the photos. You can search for places of interest in the nearby location. Find restaurants, museums, monuments and other. There is a search history on the search screen. Filtering by category and distance is also available. You are able to add your own places of interest with description, coordinates and photos either taken from the camera or album. By selecting the place of choise on the map you can see the card of it, open details or get directions. Every place can be add to or removed from the favorites list. After directions are get on the map the place is included in visited list. Light and dark mode themes can be switched on the settings screen.
- First steps
- Course overview
- Setting up the environment
- Dart language
- Dart intro
- Variables in Flutter
- Essential data types
- Conditional statements and loops
- Functions
- Classes and interfaces
- Mixins
- Generics
- Asynchronous operations
- Flutter. The basics of framework and layout
- Flutter basics
- How to make up a layout
- Handling UI events
- Lists
- Adaptation and stylization
- Navigation
- Diving deep in Route and Navigator
- Passing parameters
- Dialogs and bottomsheets
- Named routes
- Networking and asynchronous events
- Http, Dio
- Asynchronous events
- Data streams
- Error handling
- Architectural patterns
- DI
- Intro to Vanilla, InheritedWidget, Provider architecture
- MobX
- Bloc
- Redux
- MWWM
- Animations
- The basics, explicit animations
- Implicit animations
- Hero animations, Route animation
- Interaction with the platform
- Data storage
- Writing platform plugins
- Preparing for release
- App signing
- Features of the Android project
- Features of the iOS project