inKino - A cross platform movie and showtime browser for Finnkino cinemas, made with Flutter.
Branch: development
Clone or download
Pull request Compare This branch is 47 commits behind roughike:development.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
android
assets
ios
lib
screenshots
test
.gitignore
.metadata
.travis.yml
LICENSE
README.md
analysis_options.yaml
android.iml
inkino.iml
inkino_android.iml
pubspec.yaml

README.md

inKino - a showtime browser for Finnkino cinemas

Build Status Coverage Status

What is inKino?

inKino is a minimal app for browsing movies and showtimes for Finnkino cinemas. It's made with Flutter, uses flutter_redux, and has an extensive set of unit and widget tests. It also has smooth transition animations and handles offline use cases gracefully.

While I built inKino for my own needs, it is also intented to showcase good app structure and a clean, well-organized Flutter codebase. The app uses the Finnkino XML API for fetching movies and showtimes, and the TMDB API for fetching the actor avatars.

The source code is 100% Dart, and everything resides in the /lib folder.

Get it on Google Play Get it on the App Store

Building the project

Renaming the TMDB configuration file

If you try to build the project straight away, you'll get an error complaining that a tmdb_config.dart file is missing. To resolve that, run this on your terminal in the project root:

cd lib && mv tmdb_config.dart.sample tmdb_config.dart && cd ..

OR

If you don't trust in random bash scripts copied from the Internet, you can just rename the tmdb_config.dart.sample to tmdb_config.dart manually.

The stack & building from source

The project is currently built using the latest Flutter Beta 2, with Dart 2 enabled.

To build the project, ensure that you have a recent version of the Flutter SDK installed. Then either run flutter run in the project root or use your IDE of choice. To run the tests, run flutter test in the project root.

Contributing

Contributions are welcome! However, if it's going to be a major change, please create an issue first. Before starting to work on something, please comment on a specific issue and say you'd like to work on it.

Thanks

Special thanks to Thibaud Colas, Brian Egan, Alessandro Aime and Juho Rautioaho for giving their extra pair of eyes for reviewing the source code.