https://github.com/flutter/flutter
Flutter Logo (Google): https://flutter.io/
In this video, we expand the Aesthetics of the application by adding the color theme, some images and a icon for the application launcher. We also expand the contribution BLoC so that the user can filter the contributions by category. This includes making a popup menu which the user can select the filters from and merging streams to build a new filtered results stream.
There are various ways to override and implement a application launcher icon in flutter. The method of choice for this video is a library called flutter_launcher_icons. This library allows the developer to define various keys in the pubspec.yaml file or a separate .yaml file which define how the icon should look. This includes the ability to have multiple icons based on the platform and create dynamic backgrounds to fill in the gaps of the icon based on the size.
In the image above, you can see the application icon for this particular application. The icon uses an image that exists on the utopian.rocks website as a sort of branding. In this image, it just floats on top of the top application bar but in the application menu, the icon is surrounded by a white square background. This same image is used on the finished application bar for when the application is actually open.
Other than the Aesthetic tweaks that we made in this tutorial, we implement a filter system which allows the user of the application to filter the contributions by category. This system is important because it makes it easier to parse the data in the list view and find a specific contribution. There is already a stream in the contribution bloc which creates the general list view and so it is just a matter of augmenting that stream with the user events from interacting with a popup menu. This is achieved by Combining the two streams with a function.
The original results stream is paired with the user input streamsink and then pushed through a function called applyFilter. Because the PopupMenu widget returns strings which correspond with the various contribution categories, we can easily combine the two stream's events together to create a new stream called filteredResults. This new stream returns the filtered events according to the function's logic and we are able to replace the list view's stream with this new stream. With this change, are list view can now react to the user input on the PopupMenu.
The Source Code for this video may be found here: https://github.com/tensor-programming/utopian-rocks-demo/tree/tensor-programming-part-5
Stand Alone Projects:
- Dart Flutter Cross Platform Chat Application Tutorial
- Building a Temperature Conversion Application using Dart's Flutter Framework
- Managing State with Flutter Flux and Building a Crypto Tracker Application with Dart's Flutter Framework
Building a Calculator
- Building a Calculator Layout using Dart's Flutter Framework
- Finishing our Calculator Application with Dart's Flutter Framework
Movie Searcher Application
- Building a Movie Searcher with RxDart and SQLite in Dart's Flutter Framework (Part 1)
- Building a Movie Searcher with RxDart and SQLite in Dart's Flutter Framework (Part 2)
- Building a Movie Searcher with RxDart and SQLite in Dart's Flutter Framework (Part 3, Final)
Minesweeper Game
- Building a Mine Sweeper Game using Dart's Flutter Framework (Part 1)
- Building a Mine Sweeper Game using Dart's Flutter Framework (Part 2)
- Building a Mine Sweeper Game using Dart's Flutter Framework (Part 3)
- Building a Mine Sweeper Game using Dart's Flutter Framework (Part 4, Final)
Weather Application
- Building a Weather Application with Dart's Flutter Framework (Part 1, Handling Complex JSON with Built Code Generation)
- Building a Weather Application with Dart's Flutter Framework (Part 2, Creating a Repository and Model)
- Building a Weather Application with Dart's Flutter Framework (Part 3, RxCommand (RxDart) and Adding an Inherited Widget)
- Building a Weather Application with Dart's Flutter Framework (Part 4, Using RxWidget to Build a Reactive User Interface)
- Localize and Internationalize Applications with Intl and the Flutter SDK in Dart's Flutter Framework
Redux Todo App