android 封装sdk 添加网络请求_Flutter 跨平台(Windows, Mac, Android)体验

先和原生程序比较一下代码量:

Dart + macOS plugin:

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Dart                             4             61             25            360
Objective C++                    1             32              8            152
C/C++ Header                     1              2              0              5
-------------------------------------------------------------------------------
SUM:                             6             95             33            517
-------------------------------------------------------------------------------

纯 macOS Objective-C 版本代码:

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                     20            381            249           1703
C/C++ Header                    21            134            142            222
-------------------------------------------------------------------------------
SUM:                            41            515            391           1925
-------------------------------------------------------------------------------

代码数相比约 1:3.7,并且 Flutter macOS 版本比纯OC版本多了权限检查等功能。新技术、新语言必然会带来效率提升和维护成本的降低。

该程序规模不大,使用某云的投屏 SDK 简单封装一下而已。发现要写那么多端(macOS, Windows, iOS和Android),遂冒险使用了 flutter desktop。云家不提供 Dart 版本SDK。

65bc3a476898f32adb8be8e331ff7cf6.png
程序截图

耗时16个小时做完了 macOS 版本

大部分时间都花在摸索可行的方法和搜索 Obective-C、Swift 的语法了。先草草写了界面部分。在集成 SDK 时遇到问题,尝试了一下独立的 plugin,发现不可能解决 cocoapods 依赖私有 framework,遂放弃了,改为程序(App)内 plugin。
Flutter 方面几乎未发现特别难的问题,beta 版本也已经很成熟了。

后来 Catalina 录屏权限上遇到一些问题,无关不表。

无从下手的 Windows 版本

Flutter for Windows 似乎还在 Technical Preview 状态。在几番辛勤劳作后能构建 Dart 版本 Windows 程序了,但是绝望的发现云家提供的 Windows SDK 是32位的,绞尽猪脑子也没有明白人家为何只提供 32 位 SDK。遂放弃了 Windows 集成。

如果不懂 C++, 不会 Visual Studio C++,建议不要轻易尝试构建 Windows 端。

还算顺利的 Android 版本

Flutter 已经能集成一切原生代码了,花费几个小时就堆出来了。

号外

现在正在做一个界面超级复杂的App,虽然只需要发布 iPhone/Android,但是开发过程大部分时间都是使用 macOS 程序在调试,过程很顺利。优点有:手势操作比虚拟机里快一些、顺畅一些,耗费资源也少很多(一个进程和整个iOS的虚拟机相比)。最后大体完工后,在虚拟机里测试一下 SafeArea 等即可。

Dart DevTools

InteliJ 和 VSCode 的 Flutter 插件都集成了部分功能,但是直接从 github 下载的版本功能多了一些。

c138ea81568bf0f9c432f226e6c9b363.png

如 Network 记录对网络请求分析很有帮助。

该 Git 里还有如何分析内存泄漏的案例。当然还可以打包为 MacApp 直接使用。

个人感觉 Dart Devtools 本身就是一套代码构建出 Mac/Web 的范例工程,其次对 Dart/Flutter 开发人员来说这几乎等价于前端开发和 Chrome 的 Developer Tools 的关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值