移动应用 活跃维护

inKino

roughike/inKino

一个多平台的 Dart 电影应用,Flutter 和 Web 之间共享 40% 的代码。

3687
Stars 标星
694
Forks 分支
105
Watchers 关注
28
Open Issues
Dart
主要语言
Apache-2.0
开源协议
31.7 MB
仓库大小
4 年前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:roughike/inKino
git clone https://github.com/roughike/inKino.git
git clone git@github.com:roughike/inKino.git
README.md development

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

inKino - 一个在 Flutter 和 Web 之间共享代码的多平台 Dart 项目

inKino是什么?

inKino 是一个用于浏览 Finnkino 影院电影和场次的多平台 Dart 应用。

InKino 展示了 Redux,拥有大量自动化测试,并且 40% 的代码在 Flutter 和 Web 之间共享。Android 和 iOS 应用是用单一的 Flutter 代码库制作的。渐进式网页应用则是使用 AngularDart 制作的。这个项目通常被认为是一个多平台 Dart 项目的良好示例。

我计划撰写一整系列关于多平台 Dart 的文章,所以你或许想要 查看我的博客 并订阅它。

文件夹结构

有三个不同的文件夹。它们每个都是一个 Dart 项目。

  • core:包含纯 Dart 的业务逻辑,例如 API 通信、Redux、XML 解析、数据清理、i18n、本地化、多语言、模型和工具。它还有很好的测试覆盖率。
  • mobile:这是 Flutter 项目。它导入 core,并且是针对在应用商店发布的原生 Android 和 iOS 应用的 100% 共享代码库。
  • web:AngularDart 渐进式 web 应用。也导入 core,这是在 https://inkino.app 上上线的应用。

要在这些项目上工作,请在你选择的编辑器中打开每一个项目。

例如,如果你想做一个新功能,并且你先在 Flutter 项目中实现它,你会在不同的编辑器窗口中打开 core 和 mobile。为了说明,你会先为 core 执行 File -> Open...,然后再为 mobile 执行 File -> Open...。

开发环境设置

  • 安装适用于网页的 Dart。Flutter 自带的定制 Dart 版本不适合网页开发。
  • 通过运行 pub global activate webdev 安装 webdev。这要求你正确安装了 Dart,并且 Dart 已经加入了你的 PATH。
  • 安装一个 IDE。选择 WebStorm 不会错。如果这不符合你的喜好,还有其他选项。
  • 为你的 IDE 安装 Dart 插件。

最后,如果你还没有安装,安装 Flutter。同时为你的 IDE 安装 Flutter 插件。目前,inKino 是基于 Flutter 1.0 构建的。

如果你不喜欢 IDE,显然你也可以使用 Emacs 或 Vim。

构建项目

重命名 TMDB 配置文件

你不需要 TMDB API 密钥,但没有它演员图片无法加载。

如果你尝试直接构建项目,会出现一个错误,提示缺少 tmdb_config.dart 文件。为了解决这个问题,在项目根目录的终端中运行以下命令:

cd core/lib/src && mv tmdb_config.dart.sample tmdb_config.dart && cd ../../..

或者

如果你不相信从互联网上复制的随机 bash 脚本,你可以手动将 tmdb_config.dart.sample 重命名为 tmdb_config.dart。

从源码构建

首先,确保你已经按照上面的“开发环境设置”部分进行操作。

  • 要运行 web 项目,首先在根目录下执行 pub get,然后执行 webdev serve。
  • 要运行 Flutter 项目,在编辑器中打开它并点击播放按钮,或者在终端运行 flutter run。

贡献

欢迎贡献!但是,如果这将是一个重大更改,请先创建一个问题。在开始处理某件事之前,请在具体的问题上发表评论,并说明您希望参与处理它。

致谢

特别感谢 Olli Haataja 的设计。

此外,对于初始版本发布,还要感谢 Thibaud Colas、Brian Egan、Alessandro Aime 和 Juho Rautioaho 在审查源代码时提供的额外帮助。

本站来源与版权声明
  • 本文标题:inKino - 一个多平台的 Dart 电影应用
  • 本文链接:https://cn121.com/mobile/roughike-inkino.html
  • 原项目:roughike/inKino 版权归原作者 roughike 及贡献者所有
  • 收录信息:本站于 2026-10-07 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 Apache-2.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。本站对原文仅作排版与图片地址适配, 并保留原项目的 NOTICE 与署名要求。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 roughike/inKino。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。