https://github.com/flutter/flutter
Flutter Logo (Google): https://flutter.io/
In this tutorial video, we setup the basic structure for the Utopian Rocks Mobile application so that in future videos, it will be possible to expand upon the code and add new features. The Utopian Rocks Mobile application is a prime application for a tutorial because it features many advanced concepts that can't be covered on their own. The application features two main BLoCs (Business Logic Components) and it gets its data from three separate APIs. It uses a Custom Font, has a custom launcher icon, and uses many other advanced features from the flutter platform.
The original Utopian Rocks application is based on an existing web application. This application was created because the Utopian front end was compromised. Contributors wanted a way to be able to see the moderation process and the voting process at a glance. The application features multiple pages which show the multi-step process that a contribution goes through when it enters the Utopian platform.
The web application featured above shows the basic layout of the Utopian Rocks application. Contributions are laid out in a list with their title, repository and category. You can filter the contributions by category using the icons at the top as well. The "Waiting for Review" page shows all of the contributions awaiting moderation. The "Waiting for Upvote" page shows all contributions that have been moderated and are waiting for an upvote.
The mobile version of this application that we are building in this series mirrors the web application in look and in functionality. Two primary tabs exist to show the user the general Utopian Pipeline in the same way that it is shown on the web application. Each contribution is also laid out in the same way that they are found on the web application. Users also have the ability to filter through each of the contributions by category just like with the web application.
To get started rebuilding this application, we need to be able to bring the in data from the Utopian Rocks API endpoints. For this purpose, we can build a Business Logic Component or BLoC. This BLoC allows us to manage the state and data of the application using streams and sinks in a very reactive manner. As the user does something with the User interface, the data will change accordingly.
In this case, the user interacts with the view either by opening the application or by choosing a tab. The each tab sends a string event back to the BLoC through a pageName sink or behavior subject. The sink then enters the BLoC and it calls the API to get the data. The data is then passed back to the results stream and this stream creates the resulting view. Because pageName is a behavior subject it will only call to the API if the string event is different from the proceeding event which stops the application from calling the API when the Tab is not changed.
The Source Code for this video may be found here: https://github.com/tensor-programming/utopian-rocks-demo
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