混合、函数式和设计精美的聊天应用:Flutter Social Chat

由 Stream 赞助!

如果您想阅读有关此项目的文章,有一篇由我撰写并由 Stream 赞助的文章。链接在此:https://gstrm.io/sahinefe

r1 2

单一应用中的独特功能集

  • BLoC 用于状态管理

  • DDD 架构

  • Navigator 2.0 (GoRouter)

  • 依赖注入

  • 2 种不同的流行服务 (Firebase & GetStream)

  • GetStream 用法的 2 种不同呈现方式(来自 GetStream 包的准备好的 UI 和结合了核心包的手动 UI)

  • 来自官方 Flutter 文档的本地化

  • 来自 Flutter 本身的官方 Camera Plugin

  • 本地存储 (Hydrated Bloc)

  • 网络连接检查器

视频教程 (YouTube)

您还可以通过 YouTube 观看与 Flutter Social Chat 相关的播放列表:https://www.youtube.com/watch?v=r9MtCK33J78&list=PL3PvZdDvJcMIixstKkuvLWQleqJ1VhLrf

maxresdefault

应用中的图片

1 2

3 4

5 6

8 9

2011

17 15

16 16

21 13

12 7

开始之前:使用前请阅读!

— 由于 Firebase 项目密钥是私有的,我通常不分享它们,但为了教程目的,我将“firebase.options.dart”文件作为示例提供给您。如果您想使用此应用程序,首先必须完成“GetStream”和“Firebase”的必要设置。您无法直接运行该应用程序。如果您 fork,您将需要 GetStream 部分的 appKey 和 devtoken,以及来自 Firebase 本身的“firebase_options.dart”文件。

— 另外,您应该知道,此应用程序的登录部分来自我的另一个开源项目,即“phone_number_sign_in_cubit”项目。

您也可以在这里找到相关的项目:https://github.com/alperefesahin/phone_number_sign_in_cubit

测试

— 对于这个开源应用程序,集成、组件和单元测试将很快推出…

您应该指定下面相关包的版本。

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  auto_size_text: 
  intl_phone_number_input: 
  go_router: 
  wave: 
  pin_code_fields: 
  bot_toast: 
  progress_indicators: 
  flutter_expandable_fab: 
  cupertino_icons: 
  image_picker: 
  camera:
  flutter_svg: 
  animated_text_kit: 
  rounded_loading_button: 
  cached_network_image: 
  awesome_icons: 
  date_format: 
  page_transition: 
  permission_handler: 
  image: 
  path_provider: 
  connectivity_plus: 

  flutter_bloc: 
  hydrated_bloc: 
  freezed_annotation: 
  json_annotation: 
  injectable: 
  get_it: 
  fpdart: 
  uuid: 

  firebase_core: 
  firebase_auth: 
  firebase_storage: 
  cloud_firestore: 

  stream_chat_flutter: 
  
dev_dependencies:
  flutter_test:
    sdk: flutter
  lint: 
  build_runner: 
  freezed: 
  injectable_generator: 
  json_serializable:

GitHub

查看 Github