Hi, I am Oskar!
This repo holds Flutter applications developed by me during the course of learning & discovering flutter development.
Android Studio (Flutter & Dart)
- A simple single page app
- Image placeholder responds to taps
- The taps/clicks update the state of Stateful Widgets
- Keeps track of scores
- Difference between Stateless and Stateful widgets
- Use builder methods efficiently to minimize code length
- Use Dart functions and basic libraries such as dart:math
Android Studio (Flutter & Dart)
- App has multiple screen (splashScreen, weatherScreen, citySelectionScreen)
- App has two mode for weather data - location mode & city mode
- By default, weather for user's current location is fetched
- Users can search for specific city weather using citySelectionScreen
- Network and GPS location errors are handled properly
- API and GPS data calls are made in background thread
- Uses geolocator and geocoding for fetching user location
- Uses openweathermap api for weather data
- create custom widget with dynamic properties and reuse it to reduce repetition of code
- make use of constant.dart to store styling properties for clean code
- use asynchronous programming to download data over internet on background thread
- Integrate exception handling during downloads and parsing of data
- Integrate openweathermap API and learn about API architecture overall
- use Navigator & Routes to handle screen stack
- pass data from from one screen to another and back
- validate data from api before processing it further
Android Studio (Flutter & Dart)
- App has multiple screen (splashScreen, authenticationScreen, dashboardScreen, messageScreen)
- Users can register using email and password
- Users can create or join existing group chats
- FirebaseAuth is used for user authentication
- Firestore is used as the backend
- Implements MVC architecture
- Provider is used for state management
- Message updates on real-time
- Only the admin of the group can delete the chat
- Only authenticated users can read/write messages
- Alert dialog are used to warm users of errors
- App is scalable
- Use and manage widget states using provider package
- lifting the state up the widget tree
- work with implenting callbacks
- implement proper auth flow
- write Firestore rules
- make app scalable and moduler using MVC architecture
- efficient data modelling for Firestore
- go from hand drawn wireframe to full functioning application
- minimize code repetition by modulerizing widgets
(Flutter, Dart & BLoC)
- App has two modes: i) timer ii) stopwatch
- Uses BLoC state management under the hood
- Users can record lap timings
- Implements clean architecture with minimum inter dependencies
- App is scalable and functions are highly portable
- Familiarized with BLoc state management and design pattern
- Working of stream and subscription
- Abstracting states and events of a feature
- Working with Equatable for ease of comparing objects