写点什么

跨平台开发

0 人感兴趣 · 32 次引用

  • 最新
  • 推荐
https://static001.geekbang.org/infoq/15/157bbb1e1ef46ee465da87afa47597a2.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 使用 CustomPaint 绘制基本图形

本篇介绍了 CustomPaint 绘制基本图形的方法和示例,实际上 Flutter 的 Canvas 提供了很多其他绘制图形的方法,如绘制线条,绘制圆角矩形,绘制文本等等

https://static001.geekbang.org/infoq/93/93ea136b75d2589f4e2ce23d24951efc.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

初识 Flutter 的绘图组件 — CustomPaint

本篇介绍了 CustomPaint 的基本使用,可以看到 CustomPaint 使用起来并不复杂,但是真正复杂的是如何绘制图形,这个需要有比较好的数学知识支撑(当然,如果确实不会也可以搜索相关资料)。接下来的一篇我们来绘制一些常见的图形。

https://static001.geekbang.org/infoq/57/57e997faf5197708aca259835e3576b2.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

滚动前行的轮子 — Flutter 交错动画应用实例

使用交错动画实现在草地上滚动的轮子,而且还能沾上草绿色哦!见识了交错动画的组合效果后,你也可以搞定有创意的动画效果,就像 GIF 那样!

https://static001.geekbang.org/infoq/95/95c02bc8a526b3eae2b1f19f1c3ab885.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

丢掉丑陋的 toast,会动的 toast 更有趣!

大多数 App的 toast 都很简单,简单的半透明黑底加上白色文字草草了事。相比之下,我们要介绍的 motion_toast就有趣多了!

https://static001.geekbang.org/infoq/50/5028eed69c4564d69cc8f0f12a002933.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter Hero 动画组件的飞行过程显示控制

本篇介绍了 Hero 组件的flightShuttleBuilder的使用,以及 iOS 和安卓平台在Hero 组件的差异化处理。

融云 Flutter SDK,跨平台开发的真香之选

(点击报名融云 2022 社交泛娱乐出海嘉年华)

https://static001.geekbang.org/infoq/83/83540a74a3de09c4d013732c03165ac1.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

规范代码命名,让你的代码阅读起来更愉悦!

用户头像
岛上码农
2022-08-25

拥有良好且一致的命名风格能够让你的代码看起来更加舒服愉悦。其实也是个人软实力的一个特征。记住一条,代码是写给人看的!

https://static001.geekbang.org/infoq/ec/ec0c40a6b9f8451c915c05891ebaf954.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

还在用 ListView?使用 AnimatedList 让列表元素动起来

用户头像
岛上码农
2022-07-21

列表是移动应用中用得最多的组件了,我们也会经常对列表元素进行增加或删除操作,能不能让这些操作完成后通过动效展示完成效果呢?

https://static001.geekbang.org/infoq/45/45217d1402fc82f5fbd3f77da90f8f37.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

聊聊 Dart 的空安全 (null safety) 特性

用户头像
岛上码农
2022-07-07

从编码的角度来说,null safety特性实际上增加了编码的工作量。但是null safety更像是一个强制的约定,要求接口或类明确参数或属性的是否为空,从而可以简化协作,提高代码的健壮性。

https://static001.geekbang.org/infoq/76/76b57697487a04b96ffa9954c345f304.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

GitHub 高赞的 Flutter 状态管理插件 BLoC 简介

用户头像
岛上码农
2022-06-24

Bloc 本身的业务逻辑和界面完全无关,这使得我们可以直接编写测试代码,而无需依赖界面,如同本篇的 main 方法中的代码其实就可以作为单元测试代码来验证业务逻辑是否正确。这使得 Bloc 构建的应用程序的可维护性会更好。

https://static001.geekbang.org/infoq/7f/7f4708d041116c2c6f93c805644e0ef6.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

很流行的状态管理库 MobX 是怎么回事?

用户头像
岛上码农
2022-06-10

MobX 是一个状态管理框架,它可以轻松地将应用的响应式数据和 UI 绑定起来。这个绑定是完全自动的,而且不会感觉到别扭。

https://static001.geekbang.org/infoq/16/16fe2e068c780ad0ae07dbcafae418ab.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 基于 WebSocket 实现即时通讯

用户头像
岛上码农
2022-05-30

Flutter 实现基于 WebSocket 的即时通信,附后端实现逻辑。

https://static001.geekbang.org/infoq/ba/ba615c0fa74ec8989162cef0f57bf659.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

使用 Provider 实现 Flutter 不相关页面状态数据共享

用户头像
岛上码农
2022-05-23

本篇介绍了使用 Provider 的ChangeNotifierProvider.value的方式来在不相关的页面间共享状态数据。

https://static001.geekbang.org/infoq/fd/fd1cf66dae761d9c694ffb98231dc8ca.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 使用 Provider 实现嵌套状态管理

用户头像
岛上码农
2022-05-21

使用嵌套的状态管理可以将同一模块不同业务的状态管理进一步抽离,从而避免了状态管理代码的臃肿,使得代码符合单一职责原则。

https://static001.geekbang.org/infoq/cf/cf3c2c34b910e7a9ab303e47ea32743a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

使用 Provider 改造屎山代码,代码量降低了 2/3!

用户头像
岛上码农
2022-05-19

状态管理有没有必要?我们就使用 Provider 来改造旧的代码,你会发现改造前后具有十分大的差别。

https://static001.geekbang.org/infoq/67/67a9fc99b3d2026aa07364234004a8e5.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

源码分析 Flutter 的 setState 过程

用户头像
岛上码农
2022-05-16

从性能上考虑,还是尽量不要使用 setState——除非,这个组件真的很简单,而且下级组件没有或者很少。

https://static001.geekbang.org/infoq/3b/3bbc9f23de27f32c0e0838d07ad26966.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Dart 2.17 发布,新特性速递

用户头像
岛上码农
2022-05-15

目前 Dart 团队主要集中在跨平台和生产力提升上。说明整个 Dart 语言已经到了稳定的阶段,接下来的更新迭代将会让我们的开发效率更高。

https://static001.geekbang.org/infoq/6a/6ab82fba6ca5fb9fbb10a3971efda0f3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

setState 和 ModelBinding 用法对比来看局部刷新效果

用户头像
岛上码农
2022-05-14

本篇对比了使用 InheritedWidget 实现状态共享和使用 setState 方式实现状态共享的区别,很明显,使用 InheritedWidget的方式性能更高,可以实现局部刷新,而且不会出现 setState 那种重构整个组件树的情况。

https://static001.geekbang.org/infoq/6e/6ef2b870c81056ec8a48f67824b08316.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

手写一个持久化的 Flutter 会话管理器

用户头像
岛上码农
2022-05-04

本篇利用 Dio 的拦截器实现了自定义的 CookieManager,并且借助 SharedPreferences 插件实现了 Cookie离线缓存。

https://static001.geekbang.org/infoq/bf/bfb282b0a774a30bbaa861066a5220ba.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从火车票验票来说 Flutter 的网络请求会话管理

用户头像
岛上码农
2022-05-03

App 的会话管理和 Web 端不一样,需要主动携带。本篇以火车票验票为例,通俗易懂地告诉你Flutter 的网络请求如何进行网络管理

https://static001.geekbang.org/infoq/2c/2cc37003ee9ec4d2221b9034dd74a676.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从源码深入了解 Dio 的 CancelToken

用户头像
岛上码农
2022-05-02

从源码解析 CancelToken 是如何实现取消网络请求的

https://static001.geekbang.org/infoq/7a/7a1c7a9f0d8fa4f83685bc66d556801c.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Dio 封装之金屋藏娇

用户头像
岛上码农
2022-04-24

以老王年轻时的故事讲述如何封装Dio封装请求库。

https://static001.geekbang.org/infoq/f2/f24a378b3e35c44c344bcc62110e8f1c.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

将新增和编辑的数据同步更新到列表

用户头像
岛上码农
2022-04-23

本篇完成了整个动态管理的业务逻辑,包括了新增、删除、编辑、查看次数等功能。通过 GetIt 容器管理插件及接口定义,可以很简单快速地完成页面之间的数据同步。

https://static001.geekbang.org/infoq/48/48b5e4ecf7a9bdb6649248c4406e003a.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 一文搞定图片选择和图片上传

用户头像
岛上码农
2022-04-22

本篇将介绍 Flutter 中如何完成图片上传,以及上传成功后的表单提交。

https://static001.geekbang.org/infoq/a9/a99662b4ea8d68ca2b4986c865d03757.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 使用 Dio 的 Post 请求添加数据

用户头像
岛上码农
2022-04-20

本篇介绍了POST新增数据页面的示例,同时对于编辑和添加的页面重复部分通过封装共用的表单组件简化了页面结构和提高复用性。

https://static001.geekbang.org/infoq/5d/5d093f26588135d272654d93abe8af95.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

利用 Dio 完成数据更新的 Patch 请求

用户头像
岛上码农
2022-04-19

本篇介绍了详情数据的获取,实体对象的部分修改来展示 Dio的 patch 请求。

https://static001.geekbang.org/infoq/ef/efc69ecb84e021305252d57c6ec81db1.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Dio —— Flutter 网络请求之王者

用户头像
岛上码农
2022-04-16

在 Flutter 中,要说网络请求插件,不得不提 dio,而且这是国人开发的开源插件,在 pub 上好评率达到99%,GitHub 也收获了近万star。

https://static001.geekbang.org/infoq/4d/4df8628344bc3c6e5e1d5e21e86fd659.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

实例解析山路十八弯的 Flutter 2.0 路由

用户头像
岛上码农
2022-04-15

总的来说,Flutter 2.0的路由管理相比1.0版本复杂很多也更强大,对于非 Web应用来说可以继续沿用1.0的路由,对于 Web 应用或大型移动应用可以考虑2.0路由。

https://static001.geekbang.org/infoq/06/0672b8448f65624a4601ca1464fee9c6.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Flutter 2.0 的路由把我搞蒙了!!!

用户头像
岛上码农
2022-04-13

Flutter 2.0的路由做了较大改动,引入很多中间类来分离路由的各自职责,目的更多的是为了 Web 端的复杂路由应用。1.0版本的路由可以继续用,但2.0的扩展性会更好,不过也更复杂。

跨平台开发_跨平台开发技术文章_InfoQ写作社区