랭킹으로 돌아가기

roughike/inKino

Dartinkino.app

A multiplatform Dart movie app with 40% of code sharing between Flutter and the Web.

dartdartlangflutterflutter-reduxtestingcross-platformmultiplatformangulardartangular
스타 성장
스타
3.7k
포크
697
주간 성장
이슈
23
1k2k3k
2018년 4월2021년 1월2023년 10월2026년 7월
README

inKino - a multiplatform Dart project with code sharing between Flutter and web

What is inKino?

Build Status

inKino is a multiplatform Dart app for browsing movies and showtimes for Finnkino cinemas.

InKino showcases Redux, has an extensive set of automated tests and 40% code sharing between Flutter and web. The Android & iOS apps are made with a single Flutter codebase. The progressive web app is made with AngularDart. This project is generally something that I believe is a good example of a multiplatform Dart project.

I plan on doing a full article series on multiplatform Dart stuff, so you might want to check out my blog and subscribe to it.

Get it on Google Play Get it on the App Store Get it on the App Store

Folder structure

There's three different folders. Each of them is a Dart project.

  • core: contains the pure Dart business logic, such API communication, Redux, XML parsing, sanitization, i18n, models and utilities. It also has a great test coverage.
  • mobile: this is the Flutter project. It imports core, and it's a 100% shared codebase for the native Android & iOS apps that go on app stores.
  • web: the AngularDart progressive web app. Also imports core, and it's the thing that is live at https://inkino.app.

To work on these projects, open each one of them in an editor of your choice.

For example, if you want to do a new feature and you do it for the Flutter project first, you'd open both core and mobile in separate editor windows. To clarify, you'd do File -> Open... for core and then File -> Open... again for mobile.

Development environment setup

  • Install Dart for the web. The customized Dart version Flutter ships with is not suitable for web development.
  • Install webdev by running pub global activate webdev. This requires that you ran your Dart installation properly and Dart is part of your PATH.
  • Install an IDE. You can't go wrong with WebStorm. If that doesn't tickle your fancy, there are other options too.
  • Install the Dart plugin for your IDE.

Finally, if you haven't already, install Flutter. And the Flutter plugin for your IDE. At the time of being, inKino is built with Flutter 1.0.

If you don't like IDEs, you can apparently use Emacs or Vim too.

Building the project

Renaming the TMDB configuration file

You don't need a TMDB API key, but the actor images won't load without it.

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 core/lib/src && 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.

Building from source

First, ensure that you followed the "Development environment setup" section above.

  • To run the web project, first run pub get initially, and then webdev serve in the root of the web project.
  • To run the Flutter project, open it in your editor and click the play button, or run flutter run on your terminal.

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 Olli Haataja for the design.

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

관련 저장소
flutter/flutter

Flutter makes it easy and fast to build beautiful apps for mobile and beyond

DartBSD 3-Clause "New" or "Revised" Licensemobileandroid
flutter.dev
177.9k30.7k
rustdesk/rustdesk

An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.

Rustcrates.ioGNU Affero General Public License v3.0remote-controlremote-desktop
rustdesk.com
118.6k18.1k
localsend/localsend

An open-source cross-platform alternative to AirDrop

DartApache License 2.0flutterfile-sharing
localsend.org
85.7k4.7k
alibaba/flutter-go

flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档

DartOtherflutterdart
flutter-go.pub/website/
23.7k3.8k
iampawan/FlutterExampleApps

[Example APPS] Basic Flutter apps, for flutter devs.

Dartflutterflutter-apps
21.5k3.8k
antlr/antlr4

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.

JavaMavenBSD 3-Clause "New" or "Revised" Licenseparsingparser-generator
antlr.org
19k3.5k
flutter-team-archive/plugins

Plugins for Flutter maintained by the Flutter team

DartBSD 3-Clause "New" or "Revised" Licenseflutterdart
flutter.dev
17.7k9.6k
flutter/plugins

Plugins for Flutter maintained by the Flutter team

DartBSD 3-Clause "New" or "Revised" Licenseflutterdart
flutter.dev
17.6k9.8k
CarGuo/gsy_github_app_flutter

Flutter 超完整的开源项目,功能丰富,适合学习和日常使用。GSYGithubApp 系列的优势:我们目前已经拥有 Flutter、Weex、ReactNative、Kotlin View、Kotlin Jetpack Compose ,Compose MultiPlatform,Harmony ArkUI 七个版本,功能齐全,项目框架内技术涉及面广,完成度高,持续维护,配套文章,适合全面学习,对比参考。

DartApache License 2.0flutterflutter-ui
juejin.im/user/582aca2ba22b9d006b59ae68/posts
15.5k2.6k
guozhigq/pilipala

PiliPala 是使用Flutter开发的BiliBili第三方客户端,感谢使用。

DartGNU General Public License v3.0bilibilidart
pilipala.life
13.9k1k
cfug/dio

A powerful HTTP client for Dart and Flutter, which supports global settings, Interceptors, FormData, aborting and canceling a request, files uploading and downloading, requests timeout, custom adapters, etc.

DartMIT Licenseflutterdart
dio.pub
12.8k1.6k
felangel/bloc

A predictable state management library that helps implement the BLoC design pattern

DartMIT Licenseflutterdart
bloclibrary.dev
12.5k3.4k