Coffsy 电影应用

本项目旨在展示如何实现一个面向包的项目作为 Mono-Repo,但允许将外部模块放置在另一个单独的 Github 或 Pub 中,从而能够将其用作 Multi-Repo。Flutter_modular 用于将依赖项注入分离到每个模块中,以便当您不再使用该依赖项时,它会在退出模块时被删除或从内存中移除。
Flutter_triple 用于简化 Store/Controllers 的操作,并将屏幕操作与连接到电影 API 的 UseCases 相关联。

这个项目不仅仅是静止的,每当我学到新东西或有人请求更多资源时,我都会尝试在这里更新它,以便我有一个使用我日常生活中使用的技术的“大型”项目的示例。
您可以通过查看 Release 来跟踪项目的演变,在项目的每次演变中,我都会生成一个新的 Release 作为“面包屑”。

image

主应用

在这里,我们有主要的应用,它连接了所有外部模块和内部模块,以创建一个功能性应用。

内部模块

在这里,我们在主应用中有模块。

外部模块

主应用项目之外的模块,可以从主项目中提取并放入另一个 Github 或 Pub 中,并可以用于多个项目,因为它们不能有“主应用”的依赖项。

主应用、外部和内部模块之间的通用库。

使用的包

UI

  • shimmer: ^2.0.0
  • cached_network_image: ^3.0.0
  • url_launcher: ^6.0.6
  • flutter_launcher_icons: ^0.9.0
  • package_info: ^2.0.2
  • youtube_player_flutter: ^8.0.0
  • flutter_svg: ^0.22.0
  • liquid_pull_to_refresh: ^3.0.0
  • carousel_slider: ^4.0.0-nullsafety.0
  • lottie: ^1.0.1
  • fluttertoast: ^8.0.7
  • dartz: ^0.10.0-nullsafety.2
  • flutter_modular: ^4.1.2
  • flutter_triple: ^1.2.4+3
  • animated_card: ^2.0.0

firebase

  • firebase_performance: ^0.7.0
  • firebase_remote_config: 0.10.0+3
  • firebase_crashlytics: ^2.0.7
  • firebase_analytics: ^8.1.2
  • firebase_remote_config: 0.10.0+3
  • firebase_storage

核心

  • shared_preferences: ^2.0.6
  • equatable: ^2.0.2
  • dio: ^4.0.0
  • effective_dart: ^1.3.2

本项目基于

项目基于 https://github.com/rrifafauzikomara/MovieApp <- Bloc 项目

屏幕基于 https://github.com/triannoviandi/movie-ticketing-app <- 屏幕

模型基于 https://www.youtube.com/watch?v=oGsX4M3wADI

PlayStore 在 https://play.google.com/store/apps/details?id=com.coffsy_movie_app

GitHub

查看 Github