1 简述Flutter是什么以及它的主要优势

Flutter是一种由Google开发的开源移动应用开发框架,可以用于构建高度定制化、美观并且性能卓越的移动应用程序,其主要优势有:

  • 跨平台,一次编码,可编译适配多个平台的应用(iOS ,Android, Web)等,可大大减少开发时间和成本;
  • 高性能,Flutter的性能接近于原生应用,直接使用Dart语言编译成原生代码,避免了使用桥接带来的性能损耗;
  • 热重载,可在不编译整个应用的情况下,即时看到代码更改的效果,极大提高了开发效率;
  • 丰富的组件库,提供了丰富的UI组件,可以快速构建出美观且功能丰富的界面;

2 Dart语言的优势有哪些

  • 即时编译(JIT),可以在运行时优化代码,提高执行速度
  • 预编译(AOT),允许应用在发布前就编译成机器码,运行时不用做任何的编译操作,大大提高了启动速度和运行效率;
  • 类型安全,可在编译时就捕获许多类型错误,提高应用的稳定性和性能;
  • 跨平台性能,可编译成多种平台的原生代码,
  • 其他,如并发支持等;

3 怎样管理Flutter应用的状态

涉及到数据在UI组件之间的共享和同步,几种流行的状态管理库:

3.1 Provider

优点: 轻量级,内置于Flutter中,适合基本的状态管理 ,通过InheritedWidger机制简化了状态的传递和访问,使得UI组件能够响应状态的变化;

缺点:状态更新是通过ChangeNofifier等机制来实现,这在复杂应用中可能稍显不足;

3.2 GetX

优点:全能框架,不仅可以用于状态管理 ,还支持路由和依赖注入,简单易用,性能优秀

缺点:使用了全局单例的模式,可能会带来类型冲突和内存回收问题

3.3 Mobx

优点: 通过响应式编程简化了状态与UI的绑定,使得状态变化能够自动触发UI更新,它用于需要复杂状态逻辑和异步操作的场景

缺点:相比于其他状态管理库,学习上手难度较高;

3.4 Redux

优点 :可以了集中式存储、操作和减速器,适用于需要强大可预测性和工具支持的大型应用程序,它的单向数据流和中间件支持使得状态管理变得可预测肯易于测试

缺点:学习成本较高,且需要编写更多的样板代码;

4 BLoC 是什么

(Business Login of Components)是一种设计模式,主要用于将业务逻辑从UI组件中分离出来,这种模式有助于提高代码的可维护性、可测试性以及复用性

  • 业务逻辑组件(Bloc),包含了处理业务逻辑的代码,并且与Ui组件分离,可以响应来自UI的事件,并根据这些事件来更新应用的状态
  • 状态(State): 是应用某一时刻的快照,它可以是任何数据类型。状态的变化会触发UI的更新
  • 事件(Event):事件是UI发送到Bloc的信号,表示了发生了某些事情,例如用户的操作或数据的更新请求
  • 转换器(Converter):转换器是将外部事件转换为内部事件的逻辑,它通常用于处理异步操作,如网络请求或数据库查询;

Flutter一些概念(一)的更多相关文章

  1. Flutter异常监控 - 壹 | 从Zone说起

    开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情 如果你正需要处理Flutter异常捕获,那么恭喜你,找对地了,这里从根源上给你准备了Flutter异常捕获 ...

  2. 理解 Flutter 的基础概念:Widget

    Widget 的本意是组件的意思,熟悉 Web 应用开发的人在后期必定会接触到 Vue.React 等框架,这些框架都有一个核心的概念 -- 组件.组件的目的也很简单,那就是重复率用一段代码,并且能够 ...

  3. 【Flutter学习】一些重要的概念之of(context)方法

    在flutter中我们经常会使用到这样的代码 //打开一个新的页面 Navigator.of(context).push //打开Scaffold的Drawer Scaffold.of(context ...

  4. flutter中存储键值对简单数据(相当于前端localstorage概念)

    首先需要安装一个官方推荐包: 1 dependencies: 2 flutter: 3 sdk: flutter 4 shared_preferences: any // 先获取 shared pre ...

  5. 原生应用、Web 应用和混合应用的概念,以及 Flutter 技术是什么

    应用类型 原生应用 原生应用就是使用特定的语言开发的应用,例如 Android 原生应用.Windows 原生应用.iOS 原生应用等.开发 Android 原生应用时,其特定的编程语言为 Java ...

  6. 编写第一个Flutter App(翻译)

    博客搬迁至http://blog.wangjiegulu.com RSS订阅:http://blog.wangjiegulu.com/feed.xml 以下代码 Github 地址:https://g ...

  7. 我花了 8 小时,"掌握"了一下 Flutter | Flutter 中文站上线

    Hi,大家好,我是承香墨影! 距离 Google 在 2018 世界移动大会上发布 Flutter 的 Beta 版本,Flutter 是 Google 用以帮助开发者在 Android 和 iOS ...

  8. Flutter 实现原理及在马蜂窝的跨平台开发实践

    一直以来,跨平台开发都是困扰移动客户端开发的难题. 在马蜂窝旅游 App 很多业务场景里,我们尝试过一些主流的跨平台开发解决方案, 比如 WebView 和 React Native,来提升开发效率和 ...

  9. 【译】使用 Flutter 实现跨平台移动端开发

    作者: Mike Bluestein   | 原文地址:[https://www.smashingmagazine.com/2018/06/google-flutter-mobile-developm ...

  10. 做了2个多月的设计和编码,我梳理了Flutter动态化的方案对比及最佳实现

    背景 在端上为了提升App的灵活性, 快速解决万变的业务需求,开发者们探索了多种解决方案,如PhoneGap ,React Native ,Weex等,但在Flutter生态还没有好的解决方案.未来闲 ...

随机推荐

  1. FPGA开发中的复位问题

    一.为什么需要复位? 在FPGA上电时,需要对reg.fifo等器件进行复位,以确保系统处于已知的状态,同时可以通过复位清除系统的错误异常状态. 二.复位的方式 从是否与时钟同步与否可以分为异步复位和 ...

  2. 模态内重叠优化,简单有效的CLIP微调方法 | BMVC'24 Oral

    来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: CLIP Adaptation by Intra-modal Overlap Reduction 论文地址:https://arxiv.org ...

  3. OSG开发笔记(三十一):OSG中LOD层次细节模型介绍和使用

    前言   模型较大的时候,出现卡顿,那么使用LOD(细节层次)进行层次细节调整,可以让原本卡顿的模型变得不卡顿.  本就是LOD介绍.   Demo      LOD 概述   LOD也称为层次细节模 ...

  4. 由C#委托回调想到的二三事

    写在前面: 之前的过开发程中,我愈发觉得面对复杂的界面要求,最好还是用UserControl将不同模块的界面设计单独封装,以应对客户频繁地需求更改.这样做能够在面对对不同的UI要求时,动态的加载预先设 ...

  5. Reviewbot 开源 | 有些 git commit 记录真的不敢恭维, 我推荐每位工程师都常用 git rebase 和 git commit --amend

    Reviewbot 是七牛云开源的一个项目,旨在提供一个自托管的代码审查服务, 方便做 code review/静态检查, 以及自定义工程规范的落地. 在日常的编程协作中,Git commit 记录的 ...

  6. ARC121D 1 or 2

    ARC121D 1 or 2 诈骗题. 思路 吃一个糖的操作可以看做是和一个 \(a_i\) 为 0 的糖一起吃. 可以枚举有多少个糖单独吃来确定要增加多少个 0. 问题变为每次吃两颗糖. 根据人类直 ...

  7. php 超过64位进制和10进制的转换

    有时候想把一个很大的数尽量用更少的空间存储起来,那么就可以采用很大的进制来存储它,比如说,一个大于等于10小于等于16数字使用10进制就需要两位,使用16进制就只需要1位,那就等于帮程序省了一位的空间 ...

  8. 避免代码冗余,使用接口和泛型重构Java代码

    本文由 ImportNew - ImportNew读者 翻译自 michaelbrameld.如需转载本文,请先参见文章末尾处的转载要求. [感谢 李云涛(@平等的黑)的热心翻译.如果其他朋友也有不错 ...

  9. 缓存之ehcache 之使用

    1. EHCache 的特点,是一个纯Java ,过程中(也可以理解成插入式)缓存实现,单独安装Ehcache ,需把ehcache-X.X.jar 和相关类库方到classpath中.如项目已安装了 ...

  10. ClickHouse之物化MySQL

    Creates ClickHouse database with all the tables existing in MySQL, and all the data in those tables. ...