谈论flutter和jetpack compose学习优先级的背后,Android开发有着怎样的一套进阶逻辑?

2023-05-16

前言:

在1982年的原版电影《银翼杀手》中,人类已经发展出了一种人造的生命形式,很难将它们与人类区分开来。这些“复制品”被用于危险的工作,当它们开始反抗人类主人时,一种被称为“刀锋杀手”的警官出现了。

当谷歌第一次宣布Jetpack Compose时,不少人认为这将是flutter的结束。毕竟,既然可以使用Google提供的本地工具,为什么还要使用跨平台框架呢?

那我们来整体比较一下flutter和jetpack compose,看看他们各自有什么特点。
在这里插入图片描述

1、语言方面:

flutter使用的是一种由Google创建的面向对象语言Dart,Jetpack Compose使用的是一种由JetBrains创建的静态类型编程语言kotlin。这两种语言都有各自的优缺点,对于初学者来说,Dart更容易学习,而且在运行速度和内存使用方面,也并不输Kotlin

2、易用性方面

这两个框架都相对容易使用, jetpack compose具有声明式UI方法,这意味着我们可以使用Kotlin代码来构建UI,而不必担心底层的复杂性。但是,Flutter在没有桥接逻辑的情况下直接访问操作系统级组件并不简单,需要较强的专业操作。

作为一个使用过这两种框架的我来说,使用JetpackCompose来创建优美的用户界面要比使用Flutter容易些。不过flutter在跨平台开发方面确实有着无可比拟的优势,此外,当你想要快速建立一个应用程序的原型时,Flutter中的热加载功能是必不可少的

其实没有所谓的“最佳框架”,因为jetpack compose和flutter的定位并不相同,不是绝对的矛盾体,这取决于你想要去的公司采用的什么框架,以及你自己的需求和偏好。学有余力的朋友可以两者都尝试一下,这对以后个人的发展也都有帮助。
在这里插入图片描述

目前全网关于这两个框架的资料较为碎片化,对想要系统学习的人来说不太友好,所以我给大家分享jetpack compose和flutter的系统学习笔记,内容通俗易懂,知识点覆盖面广,内容严格按照深度和广度统一的原则来编排有需要的朋友可以点击下方卡片免费获取

《compose入门到精通》

目录:

img

第一章 初识 Jetpack Compose

  1. 为什么我们需要一个新的UI 工具?

  2. Jetpack Compose的着重点

  3. API 设计

  4. Compose API 的原则

  5. 深入了解Compose

  6. 插槽API
    img
    img

第二章 Jetpack Compose构建Android UI

  1. Android Jetpack Compose 最全上手指南

  2. 深入详解 Jetpack Compose | 优化 UI 构建

  3. 深入详解 Jetpack Compose | 实现原理
    img
    img

第三章 Jetpack Compose 项目实战演练(附Demo)

  1. Jetpack Compose应用1

  2. Jetpack Compose应用2

  3. Jetpack Compose应用做一个倒计时器

  4. 用Jetpack Compose写一个玩安卓App

  5. 用Compose Android 写一个天气应用

  6. 用Compose快速打造一个“电影App”
    img
    img

《Flutter进阶学习笔记》

目录

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

  • 这是为什么?
  • 跨平台开发
  • 什么是Flutter
  • Flutter特性
  • Flutter 构建应用的工具
  • 使用 Flutter 构建的热门应用
  • 构建 Flutter 应用的成本

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

  • 使用镜像
  • 系统要求
  • 获取Flutter SDK
  • 编辑器设置
  • Android设置
  • 起步: 配置编辑器
  • 起步: 体验
  • 体验热重载

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

  • 创建 Flutter app
  • 使用外部包(package)
  • 添加一个 有状态的部件(Stateful widget)
  • 创建一个无限滚动ListView
  • 添加交互
  • 导航到新页面
  • 使用主题更改UI

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

  • 开发环境的搭建
  • 模拟器的安装与调试
  • 开发环境的搭建
  • 模拟器的安装与调试

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

  • 简述
  • Hello Dart
  • 数据类型
  • 变量和常量
  • 集合(List、Set、Map)
  • 流程控制
  • 运算符
  • 异常
  • 函数
  • 总结

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

  • List
  • Set
  • Map
  • Queue
  • LinkedList
  • HashMap
  • Map、HashMap、LinkedHashMap、SplayTreeMap区别
  • 命名构造函数from和of的区别以及使用建议

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

  • 简述
  • Iterable
  • forEach
  • map
  • any
  • every
  • where
  • firstWhere和singleWhere和lastWhere
  • join
  • take
  • takeWhile
  • skip
  • skipWhile
  • follwedBy
  • expand
  • reduce
  • elementAt

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

  • 简述
  • 函数参数
  • 匿名函数(闭包,lambda)
  • 箭头函数
  • 局部函数
  • 顶层函数和静态函数
  • main函数
  • Function函数对象

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

  • 简述
  • 属性访问器(accessor)函数setter和getter
  • 面向对象中的变量
  • 构造函数
  • 抽象方法、抽象类和接口
  • 类函数
  • 总结

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

  • 简述
  • 类的单继承
  • 基于Mixins的多继承
  • 总结

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

  • 简述
  • 可选类型
  • 接口类型
  • 泛型
  • 类型具体化
  • 总结

第十二章 Flutter中的widget

  • Flutter页面-基础Widget
  • Widget
  • StatelessWidget
  • State生命周期
  • 基础widget
  • DefaultTextStyle
  • FlutterLogo
  • Icon
  • Iamge.asset
  • CircleAvatar
  • FadeInImage
  • 按钮
  • FlatButton
  • OutlineButton
  • TextFormField

后话:

flutter和jetpack compose的特性远远不止这些,它们本身还有着非常多值得学习的地方,这个只有大家自己去学习才能体会得到。另外,我们还要透过这两个框架去看更深层次的实现原理,世界千变万化,各种框架也不例外,虽然flutter和compose正处在快速发展阶段,但我们也要明白:学会举一反三才是最重要的学习能力。

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

谈论flutter和jetpack compose学习优先级的背后,Android开发有着怎样的一套进阶逻辑? 的相关文章

  • Acwing: 一道关于线段树的好题(有助于全面理解线段树)

    题目链接 x1f517 xff1a 2643 序列操作 AcWing题库 前驱知识 xff1a 需要理解线段树的结构和程序基本框架 以及懒标记的操作 题目描述 题目分析 对区间在线进行修改和查询 xff0c 一般就是用线段树来解决 xff0
  • 扩展欧几里得算法及其应用

    前言 由于数论的板子真的很抽象 xff0c 也很难背 xff0c 所以特此记录扩展欧几里得算法的板子和它的用途 本篇文章只涉及应用 xff0c 不涉及证明 xff0c 如需理解证明还请各位移步其他优秀的讲解 xff01 扩展欧几里得算法 先
  • 蓝桥杯:Python组再也不怕组合数计数

    有一类题目是是这样的 xff1a 要求我们从n个数中选m个 xff0c 问共有多少种取法 如果是用C 43 43 写的话 xff0c 要应用到Lucas定理 xff0c 暴力阶乘会超时 这里给大家介绍一个Python3 8 math库自带的
  • 模拟角频率和数字角频率的关系

    概念 xff1a 模拟频率f xff1a 每秒经历多少个周期 xff0c 单位Hz xff0c 即1 s xff1b 模拟角频率 xff1a 每秒经历多少弧度 xff0c 单位rad s xff1b 数字角频率w xff08 归一化角频率
  • 对于时不变系统的理解

    来源 xff1a 信号与系统 对 时不变性 判定的一点注记 知乎
  • 「STM32入门」TIM输出比较

    输出比较的简介 输出比较英文写作OC Output Compare 输出比较可以通过比较CNT和CCR寄存器值的关系 xff0c 来对输出电平进行置高或者置低或者翻转的操作 xff0c 用于输出一定频率和占空比的PWM波形常见应用例子如 x
  • 「数字信号处理」MATLAB设计 双音多频拨号系统

    前言 实验目的 xff1a 用Matlab模拟实现双音多频拨号系统 输入 xff1a 一串数字模拟电话号码 输出 xff1a 检测出的电话号码 Matlab版本 xff1a 2021b 系统 xff1a MacOS 实验方法 xff1a 查
  • 「STM32入门」TIM定时中断

    定时器的简介 定时器可以对输入的时钟进行计数 xff0c 并在计数值达到设定值时触发中断 xff0c 在中断内可以执行中断事件不仅具备基本的定时中断功能 xff0c 而且还包含内外时钟源选择 xff0c 主从触发模式 xff0c 输入捕获
  • 二极管反向恢复过程详细解析

    二极管反向恢复过程 xff0c 现代脉冲电路中大量使用晶体管或二极管作为开关 或者使用主要是由它们构成的逻辑集成电路 而作为开关应用的二极管主要是利用了它的通 电阻很小 断 电阻很大 特性 即二极管对正向及反向电流表现出的开关作用 二极管和
  • 性能优化总结

    性能优化关注点 从图中可以看出 xff0c 性能优化的主要关注 xff1a CPU 内存 磁盘IO 网络IO等四个方面 性能指标 每个关注点都有对应的指标 xff0c 吞吐率 响应时间 QPS IOPS TP99 资源使用率是我们经常关注的
  • Python:优先队列的使用及类的自定义比较函数

    Priority queue模块 该模块定义的优先级队列 xff0c 其内部使用了 heapq 模块 xff0c 所以它的时间复杂度和heapq是相同的 当一个对象的所有元素都是可比较的时 xff0c 默认情况下是根据队列中的对象的第一个元
  • 「STM32入门」USART串口通信

    通信 通信的目的 xff1a 将一个设备的数据传送到另一个设备 xff0c 扩展硬件系统 通信协议 xff1a 制定通信的规则 xff0c 通信双方按照协议规则进行数据收发 STM32常见的通信协议 本文将介绍USART 概念解释 TX R
  • 「数字信号处理」采样过程与内插恢复完整图解

    内插与采样的关系 来源 xff1a 数字信号处理 采样与内插 DSP期末知识点题型4 哔哩哔哩 bilibili
  • 配置vscode作为STM32代码的编辑器(替代keil5)。实现:代码自动补全, 编译,下载。nRF52也可以编译。

    STM32CubeMX新建好工程在工程根目录新建文件夹 vscode在 vscode 文件夹内新建文件c cpp properties json 34 configurations 34 34 name 34 34 STM32 34 任意的
  • Python中的字典

    1 字典概念 Python内置的数据结构之一 xff0c 与列表一样是一个可变序列 以键值对的方式存储数据 xff0c 字典是一个无序的序列 xff08 列表是有序的 xff09 字典通过计算key的hash值确定存储位置 xff0c 所以
  • docker中使用cuda

    需要注意的事项 1 注意应用NVIDIA在docker hub上提供的镜像 本次使用的是 nvidia cuda 10 1 cudnn7 devel ubuntu18 04 2 在宿主机安装 nvidia docker2 3 运行时 要加
  • Mysql8.0 忘记密码怎么办

    Mysql8 0 忘记密码怎么办 今天晨雨帮身边小伙伴解决了mysql8 0无法连接上的问题 中间碰到的一些问题和大家分享一下 跳过密码登录时不成功修改密码时不成功navicat连接时报 2000的问题 1 首先先停止mysql服务 可通过
  • Kurento实战之二:快速部署和体验,Java笔试题编程题

    GitCommit 269548fa27e0089a8b8278fc4fc781d7f65a939b runc Version 1 0 0 rc92 GitCommit ff819c7e9184c13b7c2607fe6c30ae19403
  • QT使用render时pixmap背景不为透明的解决办法

    当我们需要将一个界面绘制成图片时 xff0c 就需要使用到render方法 QPixmap pixmap pwidget gt size pwidget gt render amp pixmap 如果pwidget背景为透明时 xff0c
  • 【iOS】—— 高德地图SDK基础使用

    最近稍微学了学iOS调用高德的SDK xff0c 就随便做做笔记 注意 xff1a 本篇博客基于高德地图SDK的3D地图来写的 xff0c 若使用的是2D地图可能有的方法可能有所不同 xff0c 比如自定义定位蓝点之类的 一 准备工作 xf

随机推荐

  • 如何做代码Code Review

    预防胜于治疗 xff0c 研究表明高效的 Code Review 可以发现70 90 的 bug xff0c Review 作用如下 xff1a 提高团队代码标准 xff0c 所有人共享同一套标准 xff0c 阻止破窗效应 推动团队合作 r
  • 【iOS】—— 浅谈UISearchController

    UISearchController是iOS的一个系统的搜索控件 xff0c 在平时我们输入信息的时候会出现相应的联想搜索的内容 xff0c 然后通过UITableView展示到搜索框的下面 xff0c 供我们选择 原本还想用UITextF
  • Linux Shell中的正则表达式

    Linux Shell中的正则表达式 正则表达式是什么正则表达式通配符 cut命令awk命令sedsort排序命令wc统计命令 正则表达式是什么 正则表达式是用于描述字符排列和匹配模式的一种语法规则 它主要用于字符串的模式分割 匹配 查找及
  • 【Linux】刚烧录完(相当于是第1次连接),VNC树莓派无法连接

    文章目录 解决方法如下 xff1a 1 在Terminal中输入 96 vncserver 96 2 在Terminal中再输入 96 sudo raspi config 96 3 输入连接即可 刚烧录完 xff0c 然后用 ifconfi
  • QT 配置Opencv+gdal心得

    本人研究僧一枚 xff0c 老师给了使用QT开发遥感图像相关程序的课题 xff0c 完全从零开始学习 xff0c 查阅了许多的资料 xff0c 过程里东拼西凑 xff0c 碰壁无数 所以我就想写一些学习的心得体会 xff0c 给自己复习使用
  • Flink 从 kafka 中读取数据并输出到 kafka

    Kafka 是一个分布式的基于发布 订阅的消息系统 xff0c 本身处理的也是流式数据 kafka和flink二者被称为当前处理流式数据的双子星 下面我们将从以下几个步骤展开讲解 xff1a 目录 一 添加maven依赖 二 编写flink
  • 视图创建与管理实验

    xff08 一 xff09 在job数据库中 xff0c 有聘任人员信息表 xff1a Worklnfo表 xff0c 其表结构如下表所示 xff1a create table workinfo id int 4 not null uniq
  • LaTeX的篇章结构

    LaTeX的篇章结构 一般在撰写一个文档时 xff0c 总是先写出文章的提纲 然后根据该提纲进行展开 xff0c 来撰写其他的内容 文章目录 构建小节构建段落标题格式带章节大纲文档目录 构建小节 xff08 1 xff09 用section
  • LaTeX中的参考文献BibLaTeX

    LaTeX中的参考文献BibLaTeX 文章目录 一 介绍二 配置三 参考文献数据库文件四 引用文献1 导入宏包2 添加参考文献数据库3 不同方式引用参考文献4 输出参考文献列表5 编译执行6 修改标题7 列出没有引用的参考文献8 更多样式
  • 独立按键控制LED亮灭

    目录 一 独立按键 二 独立按键控制LED亮灭 三 按键的抖动 四 独立按键控制LED显示二进制 五 独立按键控制LED移位 一 独立按键 轻触按键 xff1a 相当于一种电子开关 xff0c 按下时开关接通 xff0c 松开时开关断开 x
  • 内网权限维持

    权限维持 以下测试均在win7 拓展方面 windows开启rdp 1 设置远程桌面端口 xff08 可以不用输 xff0c 直接第二步 xff0c 默认开启3389 xff09 reg add 34 HKLM System Current
  • 常见优秀代码汇总

    汇总常见的编程习惯 1 语义简单明确 含义 xff1a 写代码时考虑读者 xff0c 优先采取易于读者理解的写法 define THROTL UNSET 2 define THROTL NO LIMIT 1 bool throttle is
  • 2021/7/20

    8 xff1a 30 9 xff1a 00 学习打卡 9 xff1a 30 13 xff1a 00 二招刷题 15 xff1a 00 19 xff1a 00 二招刷题 1 xff0c a题 给你一个长度为N的序列 xff0c 现在需要把他们
  • python可安装软件的制作

    一 生成可执行文件 xff08 exe 安装打包工具pyinstaller 第一种 xff1a 通过win 43 R打开cmd直接使用下面的命令安装即可 pip install pyinstaller 第二种 xff1a 下载pyinsta
  • 汇编常见指令

    文章目录 常见的运算类汇编指令add指令sub指令mul乘法指令div除法指令inc xff08 自增 xff09 xff08 即C语言 43 43 xff09 dec xff08 自减 xff09 xff08 即 xff09 push x
  • 使用阿里云服务器三分钟搭建网站

    目录 一 购买服务器 二 配置云服务器 三 下载XShell编辑器 四 使用XShell与服务器建立连接 五 安装宝塔 六 配置宝塔 七 配置多个站点 一 购买服务器 注意一定要购买CentOS内核的服务器 二 配置云服务器 购买云服务器之
  • STM32 ---寄存器点灯

    1 创建工程 处理器执行程序的时候怎么执行 处理器执行程序都是先执行汇编程序 xff0c 然后在汇编程序里面跳到主函数里面 xff0c 所以要先写好汇编程序 不过这个一般官方提供了 xff0c 只需把这个文件拷到我们的工程文件夹里面 接着将
  • QMessageBox 方法大全,各种弹窗的方法

    QMessageBox Ok xff1a 显示一个OK按钮 xff1b QMessageBox Open xff1a 显示一个打开文件的按钮 xff1b QMessageBox Save xff1a 显示一个保存文件的按钮 xff1b QM
  • 【Python实现视频转文字操作】

    一 安装moviepy模块 1 如果你用的PyCharm 导包的时候报错后 可以直接按Alt 43 Shift 43 Enter install moviepy 2 也可以在终端输入 pip install moviepy 前提是安装好了p
  • 谈论flutter和jetpack compose学习优先级的背后,Android开发有着怎样的一套进阶逻辑?

    前言 xff1a 在1982年的原版电影 银翼杀手 中 xff0c 人类已经发展出了一种人造的生命形式 xff0c 很难将它们与人类区分开来 这些 复制品 被用于危险的工作 xff0c 当它们开始反抗人类主人时 xff0c 一种被称为 刀锋