Flutter和iOS混和开发(混编) Flutter嵌入已有iOS项目

        Flutter是由谷歌开发的一个使用 一套编程语言 实现 跨平台(iOS,Android)原生开发的“工具”。

        对于国内的开发者,由于网络,语言等限制,官方网站flutter.dev可能不太适合,那么 Flutter中文网(https://flutterchina.club/) 就足够了,里面对于环境搭建,配置编辑器等等讲的都比较细。参考这个就能够一步一步完成你的第一个Flutter App。

        行内话“Google出品,必属精品”,Flutter在其快速开发,富有变现力和灵活的UI,原生性能等亮点的加持下确实已经稳坐跨平台开发框架的第一把交椅。一线大厂(腾讯,阿里,字节,美团等)都已将Flutter作为重要布局。

       但是,但是,重点来了。

       Flutter官方肯定是引导企业和开发者使用纯Flutter去开发App,可是实际情况并不是这样的。首先,我认为Flutter目前的成熟度还不够,对于复杂的业务或者复杂的功能无法实现,或者说实现效果不佳。其次,各类大型的项目已经有很多的年的沉淀,不可能来个新技术就推翻重建,我们更希望把他集成到已有的项目中。纯Flutter进行开发的项目寥若星辰,多数试水的开发者和企业还是打算和现有的原生代码进行混编,将独立的新模块或者非核心模块用Flutter开发,嵌入原生的App中。

       目前网上的资料都是Android和Flutter的混编经验,毕竟都是一个爸爸生的,各种都比较顺。iOS和Flutter混编的资料是有,但是比较老,都是去年的。如果系统和安装包都是最新的,那么这些方法都不在适用。接下来将最新的步骤做个分享。

      安装Flutter和iOS设置我这里不在多说,参考Flutter中文网即可。重点是混编,将Flutter嵌入已有的工程。

      1、给原生工程包一层文件夹。如果原生工程的路径是XX/NativeApp,那么新建一个文件夹后的路径是XX/HybridApp/NativeApp。

      2、启动终端,进入HybridApp目录下,创建Flutter模块。

      cd /Users/wang/Desktop/HybridApp

     flutter create -t module flutter_module

图1   进入目录,创建一个flutter module

    

图2 最终的目录结构

        3、假设你没有使用CocoaPods,在iOS的工程目录,执行pod init,初始化一个Podfile文件,然后执行pod install。如果已经在使用,忽略。正常大家应该都在使用。

        将以下内容添加到Podfile中

        flutter_application_path = '../flutter_module/'
        load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

        注意,两行需要放在Podfile头部执行。

        然后在每个target里调用 install_all_flutter_pods(flutter_application_path)。如下图所示

图3   配置Podfile文件

        最后执行 pod install。

       4、将我们的项目BitCode选项设置为NO,因为Flutter目前不支持。

       到这,我们就可以正常运行我们的iOS工程了。接下来就是调用Flutter的页面了。


图4   直接调用


图5   运行结果

           至此,iOS和Flutter混合的前期工作就完成了,剩下的开发和调试中遇到的问题,后面慢慢聊。

你可能感兴趣的:(Flutter和iOS混和开发(混编) Flutter嵌入已有iOS项目)