Skip to content

aaronoe/FlutterCinematic

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
June 3, 2018 15:32
March 18, 2018 11:05
ios
March 18, 2018 11:05
lib
June 26, 2018 20:06
March 28, 2018 19:08
March 18, 2018 16:14
June 3, 2018 15:32
March 18, 2018 11:05
March 27, 2018 21:54
June 3, 2018 15:38
March 18, 2018 11:05
March 27, 2018 21:49
June 26, 2018 20:06
April 18, 2018 20:18

Flutter Cinematic

This app is a Flutter port of the native Android App Cinematic. My intention in creating this app was understanding the intricacies of building apps in Flutter. Just like the native Android App this app does not make any efforts in being a nicely architectured application. That being said the whole point is to showcase Flutter's capabilities for building simple apps and to understand key difference and advantages to native development.

Overview

The app uses the Movie DB Public API as a data sources and uses the standard dart libraries for making network requests.

In terms of UI, the goal was replicating the Android design as closely as possible to understand the possibilities that Flutter offers for crafting UIs.

Building from Source

To build this app from source you will have to obtain an API-key from TMDB right here. Set this key to the constant API_KEY in constants.dart to run the app. Additionally, the app now uses Dart2 which means that you should enable that in your IDE if you haven't done so yet.

Video

In App Experience

Learnings

Creating this app and learning Flutter in general felt like a gift for developers. It significantly increased development velocity by, amongst others, reducing development cycles and the ability to create reactive, modular components. Coming from the realms of Android, those are the things that stood out to me:

  • Creating beautiful UIs is easier with Flutter
  • Avoiding to write boilerplate code (XML layouts, adapters etc.)
  • Creating UIs in a declarative way without dealing with the shortcomings of Android's Databinding
  • Hot Reload - this one is a game-changer
  • Dart is not that bad of a language, but it doesn't get close to Kotlin. I think for the Usecase of Flutter Dart actually makes a lot of sense
  • The ability to not worry about state changes in the UI. The Widget will take care of the rendering using it's properties or state

License

This project utilizes the MIT License