A simple tv show app built with flutter.
Bloc architecture is a Model-View-ViewModel architecture that removes the tight coupling between each component.
This project follows the official guideline for internalization which can be found here https://docs.flutter.dev/development/accessibility-and-localization/internationalization, the current supported languages are Croatian and English. The arb files can be found at lib/I10n/
lib/l10n/app_en.arb
{
"tvShow": "Tv show",
"@tvShow": {
"description": "Tv show"
},
.
lib/l10n/app_hr.arb
{
"tvShow": "TV emisije",
}
I have implemented unit and bloc tests which can be found under /tests directory.
You can use the following command to run the tests.
flutter test
API documentation is available here - https://tv-shows.infinum.academy/api/v1/docs/index.html
-
Tech-stack
-
Dart - Dart is the programming language used to code Flutter apps. Dart is another product by Google and released version 2.1, before Flutter, in November.
-
Flutter - Flutter is an open-source UI software development kit created by Google. It is used to develop cross platform applications for Android, iOS, Linux, Mac, Windows, Google Fuchsia, Web platform, and the web from a single codebase.
-
Bloc - A predictable state management library for Dart.
-
Dio - A powerful Http client for Dart, which supports Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout etc.
-
Get it - This is a simple Service Locator for Dart and Flutter projects.
-
Pretty Dio Logger - Pretty Dio logger is a Dio interceptor that logs network calls in a pretty, easy to read format.
-
Equatable - A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode.
-
Flutter Secure Storage - Flutter Secure Storage provides API to store data in secure storage. Keychain is used in iOS, KeyStore based solution is used in Android.
-
Fade Shimmer - A fade shimmer library to implement loading like lastest facebook loading effect.
-
Fimber - Extensible logging for Flutter - based on Timber on Android, using similar (as far as Dart lang allows) method API with same concepts for tree and planting logging tree.
-
intl - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
-
Cached Network Image - Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
-
Mockito - A mock framework inspired by Mockito with APIs for Fakes, Mocks, behavior verification, and stubbing.
-
Build Runner - A build system for Dart code generation and modular compilation.
-
Bloc Test - A testing library which makes it easy to test blocs. Built to be used with the bloc state management package.
-
Flutter svg- An SVG rendering and widget library for Flutter, which allows painting and displaying Scalable Vector Graphics 1.1 files.