{"id":13552325,"url":"https://github.com/roughike/inKino","last_synced_at":"2025-04-03T03:31:26.310Z","repository":{"id":37734403,"uuid":"122394902","full_name":"roughike/inKino","owner":"roughike","description":"A multiplatform Dart movie app with 40% of code sharing between Flutter and the Web.","archived":false,"fork":false,"pushed_at":"2022-03-30T19:35:48.000Z","size":32460,"stargazers_count":3654,"open_issues_count":28,"forks_count":710,"subscribers_count":107,"default_branch":"development","last_synced_at":"2025-03-30T14:08:10.638Z","etag":null,"topics":["angular","angulardart","cross-platform","dart","dartlang","flutter","flutter-redux","multiplatform","testing"],"latest_commit_sha":null,"homepage":"https://inkino.app","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roughike.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-21T21:18:47.000Z","updated_at":"2025-03-21T18:46:09.000Z","dependencies_parsed_at":"2022-08-09T21:40:16.692Z","dependency_job_id":null,"html_url":"https://github.com/roughike/inKino","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughike%2FinKino","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughike%2FinKino/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughike%2FinKino/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roughike%2FinKino/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roughike","download_url":"https://codeload.github.com/roughike/inKino/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933428,"owners_count":20857048,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","angulardart","cross-platform","dart","dartlang","flutter","flutter-redux","multiplatform","testing"],"created_at":"2024-08-01T12:02:02.263Z","updated_at":"2025-04-03T03:31:21.260Z","avatar_url":"https://github.com/roughike.png","language":"Dart","readme":"# inKino - a multiplatform Dart project with code sharing between Flutter and web\n\n\u003cimg src=\"assets/screenshots/now_in_theaters.png\" width=\"32%\" /\u003e \u003cimg src=\"assets/screenshots/showtimes.png\" width=\"32%\" /\u003e \u003cimg src=\"assets/screenshots/event_details.png\" width=\"32%\" /\u003e\n\n## What is inKino?\n\n[![Build Status](https://travis-ci.org/roughike/inKino.svg?branch=development)](https://travis-ci.org/roughike/inKino)\n\ninKino is a _multiplatform_ Dart app for browsing movies and showtimes for Finnkino cinemas. \n\nInKino showcases Redux, has an extensive set of automated tests and **40% code sharing between Flutter and web**.\nThe Android \u0026 iOS apps are made with a single [Flutter](http://flutter.io) codebase. The progressive web app is made with [AngularDart](https://webdev.dartlang.org/angular). \nThis project is generally something that I believe is a good example of a multiplatform Dart project.\n\nI plan on doing a full article series on multiplatform Dart stuff, so you might want to [check out my blog](https://iirokrankka.com) and subscribe to it.\n\n\u003cdiv\u003e\n\u003ca href='https://play.google.com/store/apps/details?id=com.roughike.inkino'\u003e\u003cimg alt='Get it on Google Play' src='assets/screenshots/google_play.png' height='48px'/\u003e\u003c/a\u003e\n\u003ca href='https://itunes.apple.com/us/app/inkino/id1367181450'\u003e\u003cimg alt='Get it on the App Store' src='assets/screenshots/app_store.png' height='48px'/\u003e\u003c/a\u003e\n\u003ca href='https://inkino.app'\u003e\u003cimg alt='Get it on the App Store' src='assets/screenshots/launch_pwa.png' height='48px'/\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n## Folder structure\n\nThere's three different folders. Each of them is a Dart project.\n\n* **core**: contains the pure Dart business logic, such API communication, Redux, XML parsing, sanitization, i18n, models and utilities. \nIt also has a great test coverage.\n* **mobile**: this is the Flutter project. It imports **core**, and it's a 100% shared codebase for the native Android \u0026 iOS apps that go on app stores.\n* **web**: the AngularDart progressive web app. Also imports **core**, and it's the thing that is live at https://inkino.app.\n\nTo work on these projects, open each one of them in an editor of your choice. \n\nFor 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.\nTo clarify, you'd do `File -\u003e Open...` for core and then `File -\u003e Open...` again for mobile.\n\n## Development environment setup\n\n* [Install Dart for the web](https://webdev.dartlang.org/tools/sdk#install). The customized Dart version Flutter ships with is not suitable for web development.\n* Install [webdev](https://webdev.dartlang.org/tools/webdev) by running `pub global activate webdev`. This requires that you ran your Dart installation properly and Dart is part of your PATH.\n* Install an IDE. You can't go wrong with [WebStorm](https://webdev.dartlang.org/tools/webstorm). If that doesn't tickle your fancy, [there are other options too](https://www.dartlang.org/tools#ides).\n* Install the Dart plugin for your IDE.\n\nFinally, if you haven't already, [install Flutter](https://flutter.io/docs/get-started/install).\nAnd the Flutter plugin for your IDE. \nAt the time of being, inKino is built with **Flutter 1.0**.\n\nIf you don't like IDEs, [you can apparently use Emacs or Vim too](https://news.ycombinator.com/item?id=16822780).\n\n## Building the project\n\n### Renaming the TMDB configuration file\n\nYou don't need a TMDB API key, but the actor images won't load without it.\n\nIf you try to build the project straight away, you'll get an error complaining that a tmdb_config.dart file is missing.\nTo resolve that, run this on your terminal in the project root:\n\n```bash\ncd core/lib/src \u0026\u0026 mv tmdb_config.dart.sample tmdb_config.dart \u0026\u0026 cd ../../..\n```\n\n**OR**\n\nIf 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.\n\n### Building from source\n\nFirst, ensure that you followed the \"Development environment setup\" section above.\n\n* To run the **web project**, first run `pub get` initially, and then `webdev serve` in the root of the web project.\n* To run the **Flutter project**, open it in your editor and click the play button, or run `flutter run` on your terminal.\n\n## Contributing\n\nContributions are welcome! \nHowever, if it's going to be a major change, please create an issue first. \nBefore starting to work on something, please comment on a specific issue and say you'd like to work on it.\n\n## Thanks\n\nSpecial thanks to [Olli Haataja](https://www.linkedin.com/in/olli-haataja-46b96b120/) for the design. \n\nAdditional thanks for the initial release go to [Thibaud Colas](https://twitter.com/thibaud_colas), [Brian Egan](https://twitter.com/brianegan), [Alessandro Aime](https://twitter.com/aimealessandro) and [Juho Rautioaho](https://github.com/Jraut) for giving their extra pair of eyes for reviewing the source code.\n","funding_links":[],"categories":["Dart","Misc","Food Recipe","案例","angular","Uncategorized","Open Source Apps"],"sub_categories":["Flutter","Uncategorized","Misc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froughike%2FinKino","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froughike%2FinKino","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froughike%2FinKino/lists"}