Flutter(一)之Flutter的的简单入门分析

2023-11-17

前言

Flutter诞生于2018年,谷歌出品,应该是属于最新的移动跨平台开发框架了。从React Native自身框架的一些问题导致的用户量降低后,有很多小伙伴便转战Flutter战场。Flutter作为最新的跨移动平台开发框架,自然是汲取了以往框架很多教训,同时集成了Dart语言作为开发语言,Dart语言的AOT和JIT,有效的保证了开发效率。

框架优势

  • 快速开发

    Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态

  • 富有表现力,漂亮的用户界面

    使用Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验

  • 现代的,响应式框架

    使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战

  • 访问本地功能和SDK

    通过平台相关的API、第三方SDK和原生代码让您的应用变得强大易用。 Flutter允许您复用现有的Java、Swift或Oc代码,访问iOS和Android上的原生系统功能和系统SDK

其实,Flutter和以往的React-native等框架相比,个人认为出类拔萃在两点:

  1. 构建界面风格统一的UI,真正保证了Android和IOS的双端表现一致型,例如同一个Button不会出现在IOS和Android上显示形式不统一的问题
  2. 和原生交互方面,采用了MethodChannel,简单快捷,只需要定义一个消息渠道,原生端添加渠道监听,在Flutter中调用invokeMethod即可

上手难度如何

dart语法

Flutter采用dart作为开发语言,dart作为强类型语言(但是却可以用var和dynamic来声明),采用面向对象编程。所以,如果有同学是Java或者其他面向对象的过来的话,语法理解上问题不大,上手较快。若没有面向对象的思想的同学,可能需要花些时间在理解概念上后,才能更好的进行理解开发

widget组件

Flutter自带组件整体感觉比较多且一时间难以全部掌握,不像采用css布局这种的React-native容易较快上手布局,这种散装组件的感觉特别像Native开发中的原生组件学习,非一日之功,需要慢慢积累摸索,上手难度,中等

其他

比如环境搭建,项目运行,插件组装等,整体来说,跑起来不会有大问题


在性能和兼容性方面,Flutter表现是目前表现的最好得一款框架了。如果项目中要考虑使用跨平台开发,建议使用Flutter来开发,毕竟React-native确实问题太多,毕竟到现在还没有正式版本,官方也在准备内部代码重构。

上一篇:Android中四种启动模式,最容易理解的小白教程

转载于:https://juejin.im/post/5cb6d639f265da036207a080

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter(一)之Flutter的的简单入门分析 的相关文章

  • iOS Push详述,了解一下?

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由WeTest质量开放平台团队发表于云 社区专栏 作者 陈裕发 腾讯系统测试工程师 商业转载请联系腾讯WeTest获得授权 非商业转载请注明出处 原文链接 http wetest
  • 四年Android面试遇到的问题整理,算法太TM重要了

    何为成长 成长是指自我提升 一方面是本身的个人能力 另一方面是社会对你的认可度 最终 程序员的职位和薪水都能在成长中得以体现 很多人对成长有误解 在他们眼中 随着工作年限的提高 成长是理所当然的事情 这其实是一个误区 两个程序员同时工作3年
  • 阿里云P2P内容分发网络(PCDN)实操手册

    一 PCDN是定义 P2P 内容分发网络 英文名 P2P CDN 以下简称PCDN 是以P2P技术为基础 通过挖掘利用电信边缘网络海量碎片化闲置资源而构建的低成本高品质内容分发网络服务 客户通过集成PCDN SDK 以下简称SDK 接入该服
  • 在子类的override方法中调用父类的父类的未被重写的方法

    今天做一个自定义控件 扩展TableLayoutPanel这个控件加一些自己的属性 重写OnPaintBackground这个虚方法 控件的继承关系是这样的 Control ScrollableControl Panel TableLayo
  • 在 Flutter 中实现一个浮动导航栏

    此图与正文无关 只是为了好看 写在前面 这段时间一直在学习 Flutter 在 dribble 上看到一张导航栏设计图 就是下面这张 感觉很是喜欢 于是思考着如何在 Flutter 中实现这个效果 设计图作者 Luk Stra k 经过一番
  • HackPorts – Mac OS X 渗透测试框架与工具

    HackPorts是一个OS X 下的一个渗透框架 HackPorts是一个 超级工程 充分利用现有的代码移植工作 安全专业人员现在可以使用数以百计的渗透工具在Mac系统中 而不需要虚拟机 工具列表 0trace 3proxy Air Au
  • 金三银四必备,全面总结 Kotlin 面试知识点

    作者 彭旭锐 前言 在 Android 面试中很重视基础知识的考察 其中语言基础主要包括 Java Kotlin C C 三种编程语言 在小彭面试的经验中 发现很多同学的 Kotlin 语言能力只是停留在一些非常入门的语法使用上 在这篇文章
  • 怎么删除win10系统的AdobeFlash

    随着移动端的趋势大流 HTML5应用场景更加的广泛 Flash逐渐走向没落 Flash短期时间并不会彻底消失掉 Adobe Flash FLASH不只是可以制作网页 还可以制作软件AIR 制作动画 制作游戏等等 现在最新版的软件改名为Ani
  • 移动开发!如何快速的开发一个完整的直播app,架构师必备技能

    金九银十过后各大网络平台都是各种面经分享 包括已收offer 或面试失败的都有 相信大部分人都拿到了自己心仪的大厂offer 不过也有没有少数没能进到自己内心向往的大厂而懊恼的 那么到底如何才能进大厂 该准备些什么才能进大厂 此时字节总监有
  • 移动开发之我见--“Android开发生涯”

    纵观这几年的发展 移动手机的发展真是翻天覆地 前两年诺基亚一统天下 苹果颠覆了整个手机市场 安卓也分得了一杯羹 WindowPhone手机也纯纯欲动 Bada也抓紧推出自己的系统 360也要推出自己的手机系统 百度 腾讯纷拥而至 未来世界是
  • Java JWT: JSON Web Token

    Java JWT JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and
  • 在Android下初始化Native OpenGL ES

    在上一篇文章中 介绍了在Android Native层初始化EGL及OpenGL ES的方法 其中 大量代码花费在EGL的初始化上面 非常的麻烦 在本文中 将展示利用GLSurfaceView来代替我们手动初始化EGL的过程 用GLSurf
  • Lottie动画概述,文末有彩蛋

    原生的动画效果有时候写起来会非常的复杂 要考虑到很多兼容和效果 Lottie动画专门为了解决这种烦恼而产生的 注 不仅是Lottie可以做到 另外一种库也可以做到将动画分成一帧一帧展示 它就是 android gif drawable 库
  • luaj使用 方法签名规则 Cocos2dxLuaJavaBridge

    function AndroidHandler getParamJson local args nil local ok ret luaj callStaticMethod className getParamJson args Ljava
  • 制作一个“生日快乐”App,来自程序员的生日礼物~

    点击上方 码农的后花园 选择 星标 公众号 精选文章 第一时间送达 之前给大家制作了一个来自程序员的表白神器 本期带大家做一个 生日快乐 App 来自程序员的生日礼物 不要再说程序员不懂浪漫咯 往期精彩 Android App 开发的三种姿
  • Flutter酷炫的路由动画效果

    现在Flutter的路由效果已经非常不错了 能满足大部分App的需求 但是谁不希望自己的App更酷更炫那 下面介绍几个酷炫的路由动画 其实路由动画的原理很简单 就是重写并继承PageRouterBuilder这个类里的transitions
  • iOS逆向工程之App脱壳

    本篇博客以微信为例 给微信脱壳 砸壳 在iOS逆向工程中是经常做的一件事情 因为从AppStore直接下载安装的App是加壳的 其实就是经过加密的 这个 砸壳 的过程就是一个解密的过程 未砸壳的App是无法在Class dump Hoppe
  • sharedPreferences

    sharedpreferences 共享参数 也是保存数据的一种方法 通常用于持久化数据 定期更新保存数据 类似ajax的定时刷新 示例代码 主要来源于黑马教程 如下 import java util Timer import java u
  • xposed开发之清除应用数据(研究历程)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近在研究xposed 有个需求要做到清除其他应用数据 xposed功能足够强大 应该可以实现这个功能 下面是基于android4 4 4研究的思路 google只能开放了
  • android Scroller

    参考 http www linuxidc com Linux 2016 01 127276 htm 以前只知道怎么使用scroller 照猫画虎 复制粘贴 今天遇到使用scroller 还是要去搜索 这样不行 要搞懂原理 上面的博客写的很漂

随机推荐

  • Flutter卡packages get解决方法(附默认插件地址及国内镜像修改)

    Flutter卡packages get解决方法 附默认插件地址及国内镜像修改 问题描述 发现原因 解决问题 本篇主要讲述Mac环境下的配置 其他操作系统的用户可相应参考 问题描述 为项目添加新的依赖包 一直卡flutter pub get
  • 吴恩达机器学习(九)Precision、Recall、F-score、TPR、FPR、TNR、FNR、AUC、Accuracy

    目录 0 前言 1 Precision Recall F score F measure 2 TPR FPR TNR FNR AUC 3 Accuracy 学习完吴恩达老师机器学习课程的机器学习系统设计 简单的做个笔记 文中部分描述属于个人
  • [转载]2014年Windows平台软件推荐:神器小工具(骨灰级)

    底层工具 If you know how to use Process Monitor competently people of both sexes will immediately find you more attractive S
  • Centos7安装supervisor详细教程

    supervisor 要安装的软件的名称 supervisord 装好supervisor软件后 supervisord用于启动supervisor服务 supervisorctl 用于管理supervisor配置文件中program和su
  • iOSApp发布状态为可供销售,但在AppStore搜索不到

    通过客服反馈 反馈官网 操作步骤 进入官网 gt 登录 gt App设置和分发 gt AppStore搜索和曝光率 gt 电话或电子邮件 App设置和分发 AppStore搜索和曝光率 电话或电子邮件 电话时 邮件时
  • python测量线长

    模块 matplotlib PIL time math win32con threading 代码 mian py from PIL import Image import matplotlib pyplot as plt from ima
  • 如何使用git 生成patch 和打入patch

    平时我们在使用git 管理项目的时候 会遇到这样一种情况 那就是客户使用git 生成patch 给到我们 那我们就需要把客户给到patch 打入到我们的project 基于这样一个场景 我把git 如何生成patch 和如何打入patch
  • discuz如何进行邮件配置

    需求 discuz能使用本站域名的邮件后缀发送邮件 思路 使用腾讯企业邮 通过DNS的MX记录绑定本站域名 最后通过腾讯企业邮小程序获取到该账号的客户端专用密码 获取到客户端专用密码后 回到discuz后台进行设置 如下 按字格式进行填写
  • 如何存储10亿的数据

    最近突然想到这么一个问题 假如有 lt 10亿的数据 每个数据不重复 同时是无序 不连续的 如何使用最小的空间来存储来这么多数据 同时又能快速的确认哪个数据有没有 直接存储10亿个数据 一个int的类型 可以最大可以表示 214748364
  • Esper

    Esper Esper 的网址是 http esper codehaus org 我们可以访问该网站首页 有几种典型的应用最需要 Esper 我摘录如下 Business process management and automation
  • ORA-22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小

    昨天遇到一个问题 ORA 22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小 去找问题时候 发现是sql查询语句的to char方法将clob类型转换成varchar类型出了问题 oracle中var
  • Unity中贴图的导入

    Preferences中的Compress Assets on Import是决定资源导入时是否压缩资源 对于贴图资源来说 就是决定导入时是否压缩贴图 而TextureImporter中的贴图格式决定的是贴图的压缩格式 一个是导入 重新导入
  • 青龙2.10.13 稳定版+对接傻妞教程+短信登录+傻妞WEB控制台 超级详细

    此文章引用大佬的教程 进行更详细的阐述 如有疑问请进交流群332461037 我用的系统是centos7 6 目录 一 重装系统 1 选择centos7 6系统 2 重置服务器密码 3 服务器开放端口 二 ssh工具远程连接服务器 1 下载
  • 固件库编程:关于core_cm3.c的错误

    固件库编程 关于core cm3 c的错误 然后编译发现如下错误和警告 CMSIS CM3 core cm3 c 445 error non ASM statement in naked function is not supported
  • 基础算法:高精度除法

    高精度除法 题目条件 除数一定不为0 include
  • Numpy 索引 排序

    numpy argmax 和 numpy argmin numpy argmax 和 numpy argmin 函数分别沿给定轴返回最大和最小元素的索引 实例 numpy sort numpy sort 函数返回输入数组的排序副本 函数格式
  • Spring学习(三)--声明式事务&常用注解

    1 前言 这篇文章用来整理spring中的事务管理机制 声明式事务和常用的注解 一般的事务管理分为两种 编程式事务和声明式事务 spring提供声明式事务的支持 这样在我们操作数据库时更加方便 2 声明式事务 声明式事务是在AOP的基础上实
  • Ubuntu16.04+GTX1060mq(驱动版本430.64)安装CUDA10.0

    Ubuntu16 04 GTX1060mq 驱动版本430 64 安装CUDA10 0 CUDA下载 cuda最新版本下载地址 可在该页面进入历史版本下载 https developer nvidia com cuda downloads
  • 环境+代理配置+模块化

    1 模块化知识补充 1 1 模块化的基础 1 引入目录 默认引入目录中的index js文件 vuex modules a js b js index js 引入a js 引入 b js import store from vuex 是vu
  • Flutter(一)之Flutter的的简单入门分析

    前言 Flutter诞生于2018年 谷歌出品 应该是属于最新的移动跨平台开发框架了 从React Native自身框架的一些问题导致的用户量降低后 有很多小伙伴便转战Flutter战场 Flutter作为最新的跨移动平台开发框架 自然是汲