首页 > 其他分享 >Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?

时间:2023-07-28 23:01:59浏览次数:54  
标签:之选 Mixins Dart 语法 跨平台 开发 Android Flutter


跨端技术是Android程序员乃至所有移动开发程序员一直在研究的课题。

3月4日,谷歌正式发布了 Flutter 的 2.0。该版本最大的特性就是可以支持五大主流的操作系统:iOS、Android、Linux、Windows 和 MacOS。官方甚至还说丰田将会把 Flutter 带到汽车中。

也就是说,我们可以用一套 Flutter 代码适配全平台了。

同时间,开发社区讨论炸开了锅:Flutter 到底能不能成为跨平台开发终极之选?Flutter不是正在被放弃吗?

相信很多人心中都有上面这些疑惑,今天我们就来好好掰扯一下这个Flutter。

Flutter 到底能不能成为跨平台开发终极之选?

  • Flutter 是基于前端诞生的,但是对前端开发来说,Flutter 的环境配置很麻烦,需要原生的平台知识,还要担心遇上网络问题。
  • Flutter 本身没有特别多的语法糖。
  • Flutter 最先运用在移动客户端的开发,但是编程模式,语法都偏向前端,声明式的开发方式对客户端原生开发者来说需要额外的学习成本。
  • Flutter 的嵌套让人感觉得很“恶心”。

综上,Flutter 在很多开发者心中并不是很讨喜,但是,Flutter 对于Android开发者来说确实很值得!为什么呢?

为什么 Flutter 对 Android 开发来说值得?

1.Flutter 有很多优点

(1)国际化方案非常友好

Flutter官方提供的国际化方案对布局的国际化做得非常友好,文案的国际化在Flutter Intl插件的加持下也非常简单。(或许微不足道,但是真的超级方便)

(2)执行效率高

就目前市场的大环境来讲,主流的跨端方案有两种:

将 JavaScriptCore 引擎当作虚拟机的方案,代表框架是 React Native;

使用非 JavaScriptCore 虚拟机的方案,代表框架就是我们今天的主角 Flutter。

JavaScriptCore, 主要是为了兼容 Web 标准留下的历史包袱,无法专门针对移动端进行性能优化。而 Flutter 一开始就是使用全新的 Dart 语言编写,同时支持 AOT 和 JIT 两种编译方式,而没有采用 HTML/CSS/JavaScript 组合方式开发,在执行效率上明显高于 JavaScriptCore 。

2.Flutter 是市场的选择

如下图,这是手机上用 libChecker 统计出来的部分使用 Flutter 的应用:

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_html5

我们可以看到,现在 Flutter 正在被很多大公司采用:

  • 京东的京东读书
  • 阿里的闲鱼
  • 腾讯的微信和 Now 直播
  • 字节跳动的西瓜视频
  • ……

一个新技术的普及,企业级应用一定会先在头部互联网企业产生,然后逐步优化降低门槛。现在用 Flutter 的大厂是越来越多,相信那个爆发的临界点应该不远了。

Flutter 现在已经不是曾经的小众框架,这两年里它已经逐步成长为主流的跨平台开发框架之一。

3.找工作的加分项

Flutter目前也是Android开发岗位的加分项,下面是Boss上面搜到的一部分招聘信息。

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_flutter_02

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_移动开发_03

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_html5_04

通过上图可以看出,很多大厂在高薪招聘这方面的人才,Flutter 确确实实可以成为我们找工作的一个帮助。

Flutter 也确确实实可以帮助到我们的职业发展。技术是相通的,当我们在学习Flutter时,也能把原有的技术联通、打通,我们可以通过 Flutter 放大自身业务开发能力,参与到更多的平台开发中。

有一个说法是:对于 Android 原生开发来说,学会 Flutter 等于学会了 70% 以上的 Jetpack Compose 。

Android开发该如何快速上手Flutter?

当你快速搭建好环境,简单了解 Flutter 的 API 之后,学习 Flutter 主要有两个核心点:一个是响应式开发,另一个是弄懂 Widget 的背后是什么?

这两点对于Android开发来说都有一定的难度。

为了帮助大家快速无痛上手 Flutter,我这里给大家分享一份资料

Flutter 学习笔记

第一章 为什么 Flutter 是跨平台开发 的终极之选

1这是为什么?

2什么是跨平台开发?

3什么是Flutter、

4 Flutter的特性

5 Flutter构建应用的工具

6 使用Flutter构建的热门应用

7构建Flutter应用的成本

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_程序人生_05

第二章在Windows上搭建Flutter开发环境

1使用镜像
2系统要求
3获取Flutter SDK
4编辑器设置
5Android设置

  • 起步:配置编辑器
  • 起步:体验
  • 体验热重裁
  • 创建新的应用
  • 运行应用程序
  • 体验热重裁

第三章编写您的第一个Flutter App

第1步:创建Flutter app

第2步:使用外部包(package)

第3步:添加一个有状态的部件(Stateful widget)

第4步:创建一个无限滚动ListView

第5步:添加交互

第6步:导航到新页面

第7步:使用主题更改UI

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_android_06

第四章Flutter开发环境搭建和调试

1.开发环境的搭建
2.模拟器的安装与调试
3.开发环境的搭建

  • 1).下载Flutter SDK
  • 2).配置环境变量
  • 3).安装Visual Studio Code所需插件
  • 4).创建Flutter项目
    4.模拟器的安装与调试

第五章Dart语法篇之基础语法(一)

1.Hello Dart

2.数据类型

3.变量和常量

4.集合(List、Set、Map)

5.流程控制

6.运算符

7.异常

8.函数

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_移动开发_07

第六章Dart语法篇之集合的使用与源码解析(二)

1.List

2.Set

3.Map

4.Queue

5.LinkedList

6.HashMap

7.Map、HashMap、LinkedHashMap.splayTreeMap区别

8.命名构造函数from和of的区别以及使用建议

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_程序人生_08

第七章Darti语法篇之集合操作符函数与源码分析(三)

1.lterable

2.forEach

3.map

4.any

5.every

6.where

7.firstWhere 和 singleWhere 和 lastWhere

8.join

9.take

10.skip

11.skipWhile

12.follwedBy

13.expand

14.reduce

15.elementAt

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_flutter_09

第八章Dart语法篇之函数的使用(四)

1.函数参数

2.匿名函数(闭包,lambda)

3.箭头函数

4.局部函数

5.]顶层函数和静态函数

6.main函数

7.Function的数对象

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_程序人生_10

第九章Dart语法篇之面向对象基础(五)

1.属性访问器(accessor)函数setter和getter

2.面向对象中的变量

3.构造函数

4.抽象方法、抽象类和接口

5.类函数

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_程序人生_11

第十章Dart语法篇之面向对象继承和Mixins(六)

1.类的单继承
2.基于Mixins的多继承

  • 1).为什么需要Mixins?
  • 2).Mixins是什么?
  • 3).使用Mixins多继承的场景
  • 4).Mixins的线性化分析
  • 5).Mixins中的类型参考资料

第十二章 Dart语法篇之类型系统与泛型(七)

1.可选类型
2.接口类型
3.泛型

  • 1).泛型的基本介绍
  • 2).泛型的使用
  • 3).子类、子类型和子类型化关系
  • 4).协变(covariant)
  • 5).协变在Dart中的应用
  • 6).为什么Kotlin比Dart的泛型型变更安全

4.类型具体化

  • 1).类型检测
  • 2).强制类型转化

第十三章Flutter中的widget

01.Flutter页面-基础widget

o2.Widget

03.StatelessWidgetStatefulWidget

04.State生命周期

05.基础widget

06DefaultTextStyle

07FlutterLogo

08.lcon

09.CircleAvataro

10.FadeInImage

11按钮

12.FlatButton

13.OutlineButton

14.TextFormField

Flutter是跨平台开发终极之选吗?Android开发该如何快速上手Flutter?_android_12

标签:之选,Mixins,Dart,语法,跨平台,开发,Android,Flutter
From: https://blog.51cto.com/u_16163442/6888302

相关文章

  • 使用Cloud Studio&Flutter完成全平台博客网站的搭建
    前言本文我将使用CloudStudio以及Flutter完成自己的一个博客平台的搭建。并且会将该项目作为模版,供大家使用。先来看一下效果一.CloudStudioCloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随......
  • 前端跨平台调试代理神器Whistle
    概述抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle。Whistle是一款前端调试神器,通过拦截、修改和模拟网络请求,帮助开发人员调试接口、排查网络问题。它提......
  • 跨平台即时通讯软件有哪些?
    随着科技的不断发展,人们使用的设备平台也越来越多。跨平台即时通讯软件成为了现代社会中人们交流的一个重要工具。这些软件可以在不同的操作系统和设备上无缝运作,使得用户可以随时随地与它人沟通交流。那么跨平台即时通讯软件有哪些?这里推荐有度即时通。  有度即时通是一个......
  • Flutter如何实现Dart到iOS机器指令
    Flutter使用了自定义的编译工具链,称为FlutterEngine,将Dart代码编译成iOS设备的机器指令。以下是Flutter在iOS上编译和链接的一些关键步骤和涉及的文件:1.**编译步骤**:-Dart代码编译:首先,Flutter使用Dart编译器将Dart代码编译成中间代码(AOT编译),生成的中间代码......
  • Flutter系列文章-Flutter进阶
    在前两篇文章中,我们已经了解了Flutter的基础知识,包括Flutter的设计理念、框架结构、Widget系统、基础Widgets以及布局。在本文中,我们将进一步探讨Flutter的高级主题,包括处理用户交互、创建动画、访问网络数据等等。为了更好地理解这些概念,我们将通过实际的示例代码来详细讲解。......
  • 移动端跨平台动效工具Lottie, PAG的使用
    动效工具Lottie Lottie是Airbnb开源的一套跨平台的完整的动画效果解决方案,设计师可以使用AdobeAfterEffects设计出漂亮的动画之后,使用Lottic提供的Bodymovin插件将设计好的动画导出成JSON格式,就可以直接运用在iOS、Android、Web和ReactNative之上,无需其他额......
  • Peachpie升级了,体现PHP跨平台优越性
    在对Peachpie的用法进行了一些工作之后,现在回到了在编译器本身实现的核心功能。目前正在更加接近完成项目的“初衷”—能够运行完整的现实世界的应用程序PHP会话<?phpsession_start();//thisactuallyinitializes$_SESSIONfromISessionserviceecho......
  • 跨平台ssh客户端工具:Termius for Mac
    Termius是一款跨平台的SSH和Telnet客户端,它可以帮助用户远程管理和连接多个服务器和网络设备。软件下载:TermiusforMac该软件提供了全面的SSH和Telnet连接工具,可以快速连接和管理多个远程服务器和网络设备。它还支持多种身份验证和加密方式,如密码、公钥、两步验证等,可以保证连......
  • Flutter FormatException: Unexpected character (at character 2)
    flutter登录接口json解析报错https://blog.csdn.net/yechaoa/article/details/93044925 void_requestLoginAction()async{Responseresponse;finaldio=Dio();dio.options.baseUrl='https://ams.e-next.cn/api';dio.options.connectTimeo......
  • 登录页面 flutter
     https://luzhenyu.blog.csdn.net/article/details/124335584?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124335584-blog-113384904.235%5Ev38%5Epc_relevant_anti_t3&depth_1-utm_source=distri......