初识Flutter

简介: 本节向读者介绍什么是Flutter,移动端跨平台技术的对比,以及Flutter的整体架构

认识Flutter

官方介绍:Flutter是谷歌推出的的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

Flutter 是一款移动程序sdk,包含框架、控件和一些工具,可以用一套代码同时构建Android和iOS应用,并且性能可以达到原生应用一样的性能(平滑,自然的滑动效果)

Flutter特点

跨平台
现在Flutter至少可以跨4种平台(Linux、Android、IOS,MacOS、windows)甚至支持嵌入式开发。到目前为止,Flutter算是支持平台最多的框架了,具有良好的跨平台性,减少了开发成本。
高性能
基于最底层Skia的图形库去渲染,不需要与原生平台之间频繁的通信,所以性能更好,平滑而自然的滑动效果和平台感知,为用户带来全新的体验。
Flutter采用120fps(每秒传输帧数)的超高性能GPU渲染技术,而ReactNative只能达到60fps
统一的UI
Flutter提供了丰富的内置UI组件(包含许多核心的widget 滚动、导航、图标、字体),保证不同平台的统一。

移动端的跨平台技术对比

H5技术:

采用Html+Javascript技术,比如目前流行的框架Vue,React、Angular都是通过构建网页实现跨平台功能。
缺点:渲染效率低,用户体验差。同时网页调用设备硬件相关API困难。

React Native(RN):

也是使用javascript 语言进行跨平台App开发。但是和H5相比,它是在js运行时编译成各个平台的native代码。也就是通过js代码调用原生的组件,实现相应的功能,支持热部署。
缺点:渲染方法还是调用各平台的原生控件,框架本身需要处理大量平台的逻辑,随着系统版本变化和API变换,开发者也需要处理不同平台的差异,增加了维护成本,性能方面比H5有很大的提高,但还是会存在丢帧、白屏的问题。

Flutter:

使与之前采用的js语言不通,Flutter才用Dart语言,所以编译时不需要js引擎。将代码编译成原生代码,并且直接在各个平台中使用其高效渲染引擎Skia(Goole的一个2D图像处理函数库,支持跨平台。)进行渲染,不需要调用平台相关控件。完美的解决了不同平台的性能问题,实现一套代码跨平台。
特点:高效渲染, 丰富的视图组件,由于其渲染不依赖各平台组件,所以运行在不同的平台效果是一致的,并且支持热部署。

Dart

一种面向对象编程的强类型语言,语法像javascript+java的结合体。
在Flutter中使用Dart消除了对JavaScript桥层的需要,提高了性能。

Flutter总体架构

Flutter架构分为两层:
flutter.jpg
Flutter是基于Framework开发,运行在Engine上

Engine:

引擎部分,使用c++实现可以最大限制的发挥性能。是连接框架和系统的桥梁

  • Skia 图像处理函数库(其已作为Google Chrome,Chrome OS,Android, Mozilla Firefox, Firefox OS等其他众多产品的图形引擎)
  • Dart DartVm虚拟机
  • Text 在这表示纹理将图片、文本渲染到页面。

Framework:

框架部分,使用Dart语言,该层提供了一系列基础库,用于处理动画、手势

  • Foundation 基础 接口层
  • Animation 动画
  • Painting 绘制
  • Gestures 手势触碰
  • Rendering 渲染,依赖于Dart UI层
  • Widgets 借鉴React Native 一切皆为组件的理念(带状态 无状态)
  • UI 层
    Material 风格——Goole设计风格(Vue、Angular Bootstrap都有Material规范)也是Android的默认风格。

Cupertino风格—— IOS设计风格


云顶云(yundingyun.com)是国内首批专注于云计算与大数据服务的提供商,致力于“让云计算更简单”。做为阿里云五星授权服务中心,云顶云致力于为企业和政府提供方案咨询、架构设计、部署实施、系统定制、运维托管、技术培训等全方位“4S”级公有云、私有云定制化服务。

相关文章
|
2月前
|
监控 算法 Java
深入理解JVM《G1垃圾收集器:面向局部收集与停顿模型的里程碑》
G1收集器是JDK 9+默认的高性能垃圾回收器,采用Region分区模型,实现可预测停顿时间。它通过RSet跟踪跨区引用,结合SATB算法确保并发标记准确性,兼顾低延迟与高吞吐,适用于大内存多核场景。
|
2月前
|
人工智能 IDE 开发工具
拔俗人工智能辅助评审系统:如何用技术为“把关”提效
人工智能辅助评审系统融合大模型、提示工程与业务流程,实现上下文深度理解、场景化精准引导与无缝集成。通过自动化基础审查,释放专家精力聚焦核心决策,提升评审效率与质量,构建人机协同新范式。(239字)
|
2月前
|
人工智能 自然语言处理 搜索推荐
拔俗AI政务智能体:让政务服务更聪明、更贴心
AI政务智能体是基于人工智能的“数字公务员”,可24小时在线解答政策疑问、智能引导办事、自动填表申报,让政务服务更高效便捷。它整合政策数据,实现“一问即答、一办到底”,提升群众满意度,助力政府治理现代化,推动“数据多跑路,群众少跑腿”真正落地。
|
3月前
|
传感器 人工智能 安全
物联网
万物互联,智启未来。物联网通过连接人、物、环境,重塑生活、城市与产业。从智能家居到智慧城市,从工业互联网到精准农业,数据驱动智能化变革。融合AI、5G等技术,构建高效、安全、可持续的智能世界,开启人类社会新篇章。(238字)
|
7月前
|
存储 人工智能 安全
赋能数字化转型的创新引擎
阿里云是全球领先的云计算与人工智能科技公司,其强大的技术实力和丰富的解决方案正深刻影响企业运营与竞争力。依托坚实的云计算基础设施,阿里云提供弹性计算、存储与网络服务,满足多样化需求。在AI与大数据领域,机器学习平台PAI及MaxCompute助力智能决策与创新应用。同时,阿里云构建全方位安全防护体系,保障数据隐私,并通过活跃的开发者社区与生态合作推动行业进步。未来,阿里云将持续加大研发投入,优化云原生技术,深化AI与大数据研究,引领数字化转型潮流,共创美好未来。
赋能数字化转型的创新引擎
|
Web App开发 Shell Android开发
iOS逆向小知识:模拟鼠标点击(针对Mac)
iOS逆向小知识:模拟鼠标点击(针对Mac)
1309 0
iOS逆向小知识:模拟鼠标点击(针对Mac)
|
设计模式 缓存 Java
Java新时代:微服务架构下的性能优化实践
【2月更文挑战第12天】 在当今快速发展的软件工程领域,微服务架构因其灵活性和可扩展性而成为主流。随着应用程序变得日益复杂,性能优化成为了开发者不可回避的挑战。本文将探讨在Java环境下,利用微服务架构进行性能优化的策略和实践。我们将从微服务的基本概念出发,深入分析如何通过设计模式、数据库优化、缓存机制以及并发处理等手段,有效提升Java应用的性能。此外,本文还将分享一些实际案例,以帮助读者更好地理解和应用这些优化技术。
|
资源调度 调度 容器
Yarn 的工作原理、流程【重要】
Yarn 的工作原理、流程【重要】
352 0
|
安全 Windows
简单快速诊断Windows服务器是否中毒或被入侵
Windows 系统中毒或被入侵后,可能会导致系统报错、系统进程 CPU 或内存使用异常、无法远程等诸多问题。遇到这类问题后往往都比较急躁,不知如何下手,今天技术专家五贤来教大家如何诊断你的服务器是否有病毒?
|
机器学习/深度学习 存储 人工智能
使用GCP开发带有强化学习功能的Roguelike游戏
使用GCP开发带有强化学习功能的Roguelike游戏
347 0
使用GCP开发带有强化学习功能的Roguelike游戏