我为什么用Flutter开发-2年开发心得

7,282 阅读5分钟

为什么是Flutter

在19年初的时候,因为需要一个人完成一套鲜花o2o的系统。包含前端、后端、移动端还有小程序。考虑到时间成本,所以在移动端开发平台选型的时候,主要是考虑跨平台技术。当时并没有怎么犹豫就选了Flutter,期间也考虑过React Native 和uni-app等。之所以很快的选了Flutter,主要是有谷歌的背书,还有闲鱼App的实践证明,同时开发工具和开发逻辑比较接近原生App开发的那一套。

Flutter的入门

先说说必要的开销,17年的时候就在观望跨平台开发,所以买了台Macbook Pro,现在还在用,就是256G的硬盘有点吃紧。每年的苹果开发者账号要$99。其他没有了。

像我原来是Android开发,大概就是花了1个星期看看网上的基础教程同时装好开发环境就开始做项目了,当时时间也比较紧,所以都是边做边学。感觉Android开发或者iOS开发过度到flutter应该是很快的。前端开发的可能稍微难一点,不过也还好,因为Dart语言在写样式的时候很像CSS和Html,甚至很多属性名称都是一样的。

对于前端开发者来说难点应该是在安卓端和iOS端的基础配置上。虽然Flutter是一个跨平台语言,不过最终还是要打包成两端各自的安装包来运行,所以,像在 Android Studio 和xcode上配置项目的步骤还是少不了的,还有各种权限的配置等,都是需要一些原生知识的。这些只要稍微花点时间学习下都是没问题的。

Flutter能做什么

我们都知道开发一个App并不是全部自己敲代码来完成所有的功能的。很多功能都是需要用第三方成熟的组件来做的。当然并不是为了偷懒,而是因为这样开发App是相对高效、稳定的。所以,评价一个开发语言好不好的一个关键因素就是这个开发语言可用的库多不多还有成不成熟

就目前我使用的情况来说,基本上常用的第三方组件都能稳定的使用,如下 1、支付(微信、支付宝、苹果) 2、分享(微信、QQ、微博) 3、推送(安卓厂家、苹果推送) 4、音视频(直播、语聊) 5、即时通讯 6、登录(微信、苹果、手机一键登录) 7、地图(百度、高德) 8、统计 基础功能的组件(拍照、网络请求、图片、录音录像、播放音视频、数据存储等)基本上都没啥问题,就不列举了。所以,就我目前的经验来说绝大多数的App开发需求都能通过纯Flutter来开发了,无需自己写原生代码。

Flutter使用目前遇到的坑

基本都解决了,就是花了点时间。其实不能算是坑,只是我花了一些时间、写出来总结下、如果其他猿遇到,可以参考下少走点弯路

1、微信网页打开App(通过微信标签技术-可直接打开App无需通过手机浏览器)。目前问题已经解决。 2、推送,安卓端推送收不到通知。已解决,需要接入厂家推送。或者找一个靠谱的(免费的)第三发推送sdk。目前使用MobPush。 3、部分iOS设备微信登录不了,Universal Link 或xcode配置问题,已解决。其实这应该不是Flutter的问题,主要是当时不熟悉iOS配置 4、iOS点击状态栏滚动到顶部和自定义滚动控制有冲突,已解决。配合extended_nested_scroll_view组件来自定义滚动就好 5、nested_scroll_view 组件的一些问题可以用extended_nested_scroll_view组件解决(我心目中的年度最佳组件extended_nested_scroll_view) 6、卡顿问题,卡顿问题不是Flutter才有的,原生App也会有,主要还是要找到问题针对性的优化。

Flutter开发App如何上架

基本和原生App一样。反正就是打包成两个安装包的。安卓根据应用市场的要求申请软著、加固好Apk就行了。App store 就要有开发者账号、配置好权限和权限说明,不要获取没用的权限,基本上第一次审核过了,以后审核按着规范都能很快的过审的。

反而是现在国内的安卓应用市场的要求越来越多。最近、App隐私问题闹得沸沸扬扬,以后App上架需要做Icp备案了。

未来

相对其他开发平台来说,Flutter对于我有种特殊的意义。因为,它让我在离开发岗位2年多之后又能快速的找回合适的开发工作。我也看着它从开始的备受质疑到被越来越多的公司使用。所以,作为一个30+的猿,我希望能和Flutter走的更远一点~

其实、现在学习一门新的语言成本真的不是很高。现在的开发语言在语法上基本上都差不多、所以无需犹豫用什么语言或者平台来做开发、而是要想想什么技术比较适合自己。如果你想在移动端开发继续走的更远点,那么为什么不尝试下跨平台技术?说不定以后大前端会成为潮流?