Yhflutteradapter

Componentized Flutter requires only three lines of code! 三行代码组件化集成 Flutter!可用于已有 iOS 项目,对原工程无侵入,无需更改原项目配置,集成后可直接以组件形式开发 Flutter 业务。
Alternatives To Yhflutteradapter
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Plugins16,7861,556615a month ago58June 06, 20221bsd-3-clauseDart
Plugins for Flutter maintained by the Flutter team
Flutter Desktop Embedding7,07862 months ago10August 18, 20223apache-2.0C++
Experimental plugins for Flutter for Desktop
Flutter Ui Nice3,388
a year ago7Dart
More than 130+ pages in this beautiful app and more than 45 developers has contributed to it.
Figmatocode2,870
24 days ago23gpl-3.0TypeScript
Generate responsive pages and apps on HTML, Tailwind, Flutter and SwiftUI.
Sqflite2,5877991398 days ago125September 19, 2022142bsd-2-clauseDart
SQLite flutter plugin
Flutter_inappwebview2,4371467 days ago51May 05, 2022674apache-2.0Dart
A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window.
Flutter Study2,254
3 years ago5
Flutter Study
Flutter_local_notifications2,166108522 days ago221September 23, 202244bsd-3-clauseDart
A Flutter plugin for displaying local notifications on Android, iOS, macOS and Linux
Flutter Intellij1,858
2 days ago518bsd-3-clauseJava
Flutter Plugin for IntelliJ
Cloudbase Framework1,827216 months ago130August 23, 202237otherJavaScript
腾讯云开发云原生一体化部署工具 🚀 CloudBase Framework:一键部署,不限框架语言,云端一体化开发,基于Serverless 架构。A front-end and back-end integrated deployment tool. One-click deploy to serverless architecture. https://docs.cloudbase.net/framework/index
Alternatives To Yhflutteradapter
Select To Compare


Alternative Project Comparisons
Readme

YHFlutterAdapter

GitHub stars GitHub forks GitHub license

三行代码组件化集成 Flutter!可用于已有 iOS 项目,对原工程无侵入,无需更改原项目配置,集成后可直接以组件形式开发 Flutter 业务。

结构图

层级

依赖关系

模块 描述
YHFlutterAdapter 负责 Flutter 功能与原生端代码的隔离解耦,并提供一定的插件注册功能,该模块对 YHFlutterSDK 以及 YHFlutterPlugin 无依赖关系,并且其中的功能应逐渐下沉为通用功能,可供多个业务线直接复用。
YHFlutterSDK 存放 Flutter 项目编译后生成的产物,各个业务线可针对于自己的 Flutter 项目需求来生成对应的独立产物,与 YHFlutterAdapter 和 YHFlutterPlugin 组装使用。
YHFlutterPlugin 主要配合 YHFlutterAdapter 实现部分桥接方法与插件的功能。可创建多个,一些用于提供通用基础桥接功能,另一些专门用于具体特定业务实现逻辑,上层项目选择性的引入即可。

多业务线复用

YHFlutterAdapter 、YHFlutterSDK 、YHFlutterPlugin1、YHFlutterPlugin2 ... 可以按照自身业务线的需要选择性的组合使用。

集成方式

Podfile 内添加

pod 'YHFlutterAdapter' # :podspec => 'xxx' or :path => 'xxx'
pod 'YHFlutterSDK'     # :podspec => 'xxx' or :path => 'xxx'
pod 'YHFlutterPlugin'  # :podspec => 'xxx' or :path => 'xxx'

具体集成细节,podspec指向等可参照项目内 Demo 。


使用方式

1. 添加引用

#import <YHFlutterAdapter/YHFlutterModule.h>

2. 加载 Flutter 界面的两种方式

  1. 在项目内直接显示调用
UIViewController *flutterViewController = [[YHFlutterModule service] flutterViewControllerForKey:@"XXXX" properties:nil];
[self presentViewController:flutterViewController animated:YES completion:nil];
  1. 【推荐】将 YHFlutterModule 注册进项目内已有的组件化服务内并调用 YHFlutterServiceProtocol 的相关方法使用

3. 扩增与 Flutter 交互的桥接方法,或者添加新的 Plugin 的两种方式

  1. 可参照 Demo 内的 YHFlutterFeatureChannel,具体的业务使用方在上层项目内可自行注册监听并处理自己需要的消息;
  2. 也可参照 YHFlutterPlugin 编写新的 pod 仓库组件独立实现;

4. Plugin & Channel 注册的三种方式

  1. 【推荐】将 YHFlutterModule 注册进项目已有的组件化服务内,并调用 YHFlutterServiceProtocol 的相关方法进行注册
  2. [[YHFlutterModule service] registMethodChannelHandler:self.class];
  3. [YHFlutterRegistrant registMethodChannelHandler:self.class];

5. YHFlutterSDK 内产物更新方式

自动更新【建议】

编写对应的脚本实现 编译-转移产物-更新到远端 Pod 的操作,同时将 YHFlutterPlugin 中需要添加的依赖类自动更新并注册进 YHFlutterAdapter

手动更新

  1. Flutter 工程目录下 ./.ios/ 内对应工程的 BundleId 以及证书更换为当前电脑中任何一个可用的,保证通过编译
  2. Flutter 工程目录下使用 flutter build ios or flutter build ios --debug 命令生成对应的 release or debug 版本的产物
  3. cd 到 ./.ios/Flutter/目录下将对应的三个产物更换到 YHFlutterSDK 内
更新产物库版本号可能会遇到的问题:

issue:pod lib lint 将产物更新至私有库, i386 验证不通过问题讨论


示例图(请使用真机运行该 Demo)

功能 实现类 channelName
Read feature description YHFlutterFeatureChannel.m
业务层内实现
yaheng.feature.flutter.bridge
Write log file YHFlutterLogChannel.m
YHFlutterPlugin 内实现
yaheng.base.flutter.bridge
Client HTTP request YHFlutterHttpChannel.m
YHFlutterPlugin 内实现
yaheng.base.flutter.bridge
Close YHFlutterPageChannel.m
YHFlutterAdapter 内实现
yaheng.base.flutter.bridge

部分代码使用示例

只要在具体类内部实现相应方法即可,不需要外部任何调用。


LICENSE

All source code is licensed under the MIT License.

Popular Flutter Projects
Popular Plugin Projects
Popular User Interface Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Plugin
Objective C
Flutter