Flutter从0到1实现高性能、多功能的富文本编辑器(基础实战篇)

前言

上一章中,我们分析了一个富文本编辑器需要有哪些模块组成。在本文中,让我们从零开始,去实现自定义的富文本编辑器。

注:本文篇幅较长,从失败的方案开始分析再到成功实现自定义富文本编辑器,真正的从0到1。建议收藏!

— 完整代码太多, 文章只分析核心代码,需要源码请到 代码仓库,也可在本站下载代码拷贝

错误示范

遭一蹶者得一便,经一事者长一智。——宋·无名氏《五代汉史平话·汉史》

在刚开始实现富文本时,为了更快速的实现富文本的功能,我利用了TextField这个组件,但写着写着发现TextField有着很大的局限性。不过错误示范也给我带来了一些启发,那么现在就让我和大家一起去探索富文本编辑器的世界吧。

继续阅读Flutter从0到1实现高性能、多功能的富文本编辑器(基础实战篇)

Flutter从0到1实现高性能、多功能的富文本编辑器(模块分析篇)

前言:

经过前面两篇文章的基础知识铺垫,我们终于要进入到专栏的核心内容 — 富文本。富文本编辑器可以说是APP中最复杂,但使用场景又极广的组件之一。例如各大笔记APP的核心功能、闲鱼的商品发布功能、还有掘金APP的发布文章&发布沸点功能等,可以说是富文本编辑器让用户能以更简单更便携的方式记录内容。不过Flutter只有最基础的文本编辑组件TextField,在遇到复杂场景时就比较吃力了,例如图片的添加,有序段落.....本文通过分析市场上的各大富文本编辑器的功能和Flutter优秀的富文本插件,从而来自定义自己的富文本编辑器,与大家一起探索文本的世界...

注:Flutter目前已经有许多优秀的开源富文本编辑器,例如:flutter_quill。为了更好的实现属于自己的`富文本编辑器,我们必须要先了解&学习这些优秀的开源项目。

继续阅读Flutter从0到1实现高性能、多功能的富文本编辑器(模块分析篇)

Android 的键值对存储有没有最优解?

正文

这是我在网上找到的一份 Android 键值对存储方案的性能测试对比(数越小越好):

可以看出,DataStore 的性能比 MMKV 差了一大截。MMKV 是腾讯在 2018 年推出的,而 DataStore 是 Android 官方在 2020 年推出的,并且它的正式版在 2021 年 8 月才发布。一个官方发布的、更(gèng)新的库,性能竟然比不过比它早两年发布的、第三方的库。而且我们能看到,更离谱的是,它甚至还比不过 SharedPreferences 。Android 官方当初之所以推出 DataStore,就是要替代掉 SharedPreferences,并且主要原因之一就是 SharedPreferences 有性能问题,可是测试结果却是它的性能不如 SharedPreferences。

所以,这到底是为什么?

继续阅读Android 的键值对存储有没有最优解?

日文邮件网络钓鱼活动

最近一年,频繁收到自称是亚马逊日本/日本其他银行的邮件,没完没了,很像是官方邮件,差一点就信了。网上搜寻了一下,发现还是蛮常见的。

自2020年8月以来,Proofpoint研究人员就追踪到了大量的Amazon Japan认证和信息钓鱼攻击活动,可疑活动可以追溯到2020年6月。这些邮件冒充Amazon Japan,暗示收件人需要检查自己的账户,以“确认所有权”或“更新支付信息”。点击邮件中的一个链接,收件人就会被重定向到以亚马逊为主题的凭证式钓鱼登陆页面,该页面收集凭证、个人识别信息(PII)和信用卡号码。攻击者会向总部设在日本的机构和在日本有活动的机构发送了这些信息,这些网页的地理定位是为了确保只有日本的收件人被重定向到认证钓鱼页面。

虽然像亚马逊这样的知名品牌经常在网络钓鱼活动中被滥用但大量的邮件使这些活动与其他亚马逊品牌的活动区分开。这些活动持续不断,每天发送数十万条信息。截至10月中旬,,有时一天中可以看到超过一百万条信息,与Emotet发送的信息量相当。Emotet是一种主要通过垃圾邮件进行传播的木马,传播至今,已进行过多次版本迭代。

继续阅读日文邮件网络钓鱼活动

Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?

前言:

上一篇文章中,我们讲解了Flutter文本的组成部分和Flutter 文本渲染到屏幕上的逻辑。文本的输出我们已经分析完成了,那么文本的输入又是怎么样的呢?在Flutter中,我们知道文本的输入可以通过TextField等组件将文字输入到App中,但是它背后的原理是什么呢,为什么可以编辑文本呢?在这一篇文章中,就让我们从Flutter的可编辑文本的实现原理,再到自定义可编辑的文本...希望能对你认识Flutter的文本编辑有所帮助。

注:本文的涉及较多文本编辑的核心逻辑,和大量的功能实践,建议收藏!

继续阅读Flutter — 文本为什么可以被编辑?如何自定义编辑的行为?

解决亚马逊网站开通两步验证无法收到短信

最近经常收到亚马逊的邮件通知,说是自己的账号被从其他设备上频繁尝试登录,导致账号暂时被禁用。

明显是有人在尝试破解账号密码。

登录账号,本能选择手机短信认证,结果,尝试非常多次,收不到短信!!!

只能退而求其次,使用“认证器应用程序”来替代。如下图:

结果,国内手机的Android应用商店上都搜不到,不管是 Google 的还是亚马逊自己的,或者微软的!!

从第三方下载又不放心!!

一时不知道改怎么操作了,结果突然想起自己还有一部 iPhone 开发手机,于是从Apple应用商店搜索 "Google Authenticator", 果真可以直接使用,于是问题搞定。

参考链接


亚马逊两步验证无法登录?教你一招轻松搞定。

Flutter中那些你需要知道的文本知识!

前言

文字是记录语言的书写符号系统,是形、音、义的统一体,是人类最重要的辅助性 交际工具。作为一个Flutter开发者,我们都知道可以通过Text()这个文本组件将文字显示出来。但是这其中的Flutter的字体是怎么组成的?Flutter文本是怎么构建的?Render Tree是怎样绘制文本的.....作为本专栏(整个专栏都在与文本打交道)的第一篇文章,让我们从这些原理细节讲起。希望能对你认识Flutter的文本渲染有所帮助。

注:本文的目的在于让大家了解Flutter中的基本文本知识,快速的带大家了解渲染流程,但并未很深入的分析Flutter文本渲染的原理。

继续阅读Flutter中那些你需要知道的文本知识!

2023 年第一弹, Flutter 3.7 发布啦,快来看看有什么新特性

核心内容原文链接: medium.com/flutter/wha…

2023 年新春之际, Flutter 喜提了 3.7 的大版本更新,在 Flutter 3.7 中主要有改进框架的性能,增加一些很棒的新功能,例如:创建自定义菜单栏、级联菜单、更好地支持国际化的工具、新的调试工具等等

另外 Flutter 3.7 还改进了 Global selection、使用 Impeller提升渲染能力、DevTools 等功能,以及一如既往的性能优化

PS :3.7 版本包含大量,大量,大量更新内容,感觉离 4.0 不远了。

继续阅读2023 年第一弹, Flutter 3.7 发布啦,快来看看有什么新特性

系统分析师的案例分析

前言

系统分析师培训班通过统计,得到一个结论:培训班的考生,死得最多的就是案例分析。

为什么呢?因为客观题只要平时多看,多刷就行了,论文则有固定套路。但是案例则是需要考生自己主动对外输出,并且难以有一个统一的套路。所以,那些培训班的考生,死得最多的就是案例分析。

而我对自己的案例分析是比较信心的。一方面是我参加的三次软考高级考试,每次案例分析分数都是客观,案例,论文三部分最高的。另一方面,我之前带过的一个同事,也是案例分析分数最高。

所以,我尽可能将案例分析的方法与技巧说出来(但是有的方法真的很难通过文字描述)。

文章将从案例准备,案例技巧,案例套路三个方面进行描述。

继续阅读系统分析师的案例分析

flutter desktop HIVE简单使用

1.数据库选型

flutter项目,需要使用本地存储,面临三个选择

  • shared_preferences
  • sqflite
  • hive
    第一个只能保存key vaule,用起来比较不爽。

    第二个对桌面版的不支持。

    最后选择了hive,用起来还算可以,不过,相对于后台的orm,还是有些东西需要自己处理。

2.项目引用

3.hive的简单使用

之前做个一阵子后台,按照后台的orm逻辑,组装了一下hive。

main.dart里面初始化hive

hive的初始化部分,初始化了三张表

单个表的model

使用model

结束。

参考链接