flutter系列之:把box布局用出花来

2022-10-14
阅读 4 分钟
826
flutter中的layout有很多,基本上看layout的名字就知道这个layout到底是做什么用的。比如说这些layout中的Box,从名字就知道这是一个box的布局,不过flutter中的box还有很多种,今天我们来介绍最常用的LimitedBox,SizedBox和FittedBox。

flutter系列之:按比例缩放的AspectRatio和FractionallySizedBox

2022-10-10
阅读 3 分钟
906
简介我们在构建UI的时候,为了适应不同的屏幕大小,通常需要进行一些自适应的配置,而最常见的自适应就是根据某个宽度或者高度自动进行组件的缩放。今天要给大家介绍两个可以自动缩放的组件AspectRatio和FractionallySizedBox。AspectRatioAspectRatio的目的就是将其child按比例缩放。先来看下AspectRatio的定义: {代码...

flutter系列之:深入理解布局的基础constraints

2022-09-29
阅读 5 分钟
818
我们在flutter中使用layout的时候需要经常对组件进行一些大小的限制,这种限制就叫做constraints,用来控制layout中的组件大小。

flutter系列之:查询设备信息的利器:MediaQuery

2022-09-26
阅读 4 分钟
724
MediaQuery从名字上来看,它的意思是媒体查询。它可以查询的东西就多了,可以查询当前你app的窗口信息,查询你指定的某个widget的信息等等,非常的强大。

flutter系列之:Material中的3D组件Card

2022-09-23
阅读 3 分钟
1k
除了通用的组件之外,flutter还提供了两种风格的特殊组件,其中在Material风格中,有一个Card组件,可以很方便的绘制出卡片风格的界面,并且还带有圆角和阴影,非常的好用,我们一起来看看吧。

flutter系列之:flutter中常用的Stack layout详解

2022-09-20
阅读 4 分钟
1.9k
对于现代APP的应用来说,为了更加美观,通常会需要用到不同图像的堆叠效果,比如在一个APP用户背景头像上面添加一个按钮,表示可以修改用户信息等。

flutter系列之:flutter中常用的ListView layout详解

2022-09-16
阅读 6 分钟
1.4k
ListView是包含多个child组件的widget,在ListView中所有的child widget都是以list的形式来呈现的,你可以自定义List的方向,但是和GridView不同的是ListView中的每一个List里面都只包含一个widget。

flutter系列之:flutter中常用的GridView layout详解

2022-09-13
阅读 5 分钟
1.5k
简介GridView是一个网格化的布局,如果在填充的过程中子组件超出了展示的范围的时候,那么GridView会自动滚动。因为这个滚动的特性,所以GridView是一个非常好用的Widget。今天我们一起来探索一下GridView这个layout组件的秘密。GridView详解GridView是一个可滚动的view,也就是ScrollView,事实上GridView继承自BoxScroll...

flutter系列之:flutter中常用的container layout详解

2022-09-08
阅读 4 分钟
1k
掌握了上面两个基本的layout还是不够的,如果需要应付日常的layout使用,我们还需要掌握多一些layout组件。今天我们会介绍一个功能强大的layout:Container layout。

flutter系列之:UI layout简介

2022-09-05
阅读 7 分钟
675
对于一个前端框架来说,除了各个组件之外,最重要的就是将这些组件进行连接的布局了。布局的英文名叫做layout,就是用来描述如何将组件进行摆放的一个约束。

flutter系列之:Material主题的基础-MaterialApp

2022-09-02
阅读 5 分钟
885
为了简化大家的使用,虽然flutter推荐所有的widget都有自己来进行搭建,但是在大框架上面,flutter提供了Material和Cupertino两种主题风格的Widgets集合,大家可以在这两种风格的继承上进行个性化定制和开发。

flutter系列之:移动端的手势基础GestureDetector

2022-08-29
阅读 6 分钟
1.2k
移动的和PC端有什么不同呢?同样的H5可以运行在APP端,也可以运行在PC端。两者最大的区别就是移动端可以用手势。手势可以做到一些比如左滑右滑,上滑下滑,缩放等操作。

flutter系列之:构建Widget的上下文环境BuildContext详解

2022-08-26
阅读 4 分钟
1.2k
我们知道Flutter中有两种Widget,分别是StatelessWidget和StatefulWidget,StatelessWidget中有一个build方法来创建对应的Widget,虽然StatefulWidget中没有对应的build方法,但是和StatefulWidget对应的State中也有同样的build方法。

flutter系列之:用来管理复杂状态的State详解

2022-08-22
阅读 4 分钟
1k
Flutter的基础是widget,根据是否需要跟用户进行交互,widget则可以分为StatelessWidget和StatefulWidget。StatelessWidget只能根据传入的状态进行简单的初始化widget,如果要实现跟用户交互这种复杂的功能,则需要用到StatefulWidget。

flutter系列之:widgets,构成flutter的基石

2022-08-18
阅读 6 分钟
711
flutter中所有的组件都是由widgets组成的,flutter中有各种各样的widgets,这些widgets构成了flutter这个大厦。

flutter系列之:flutter架构什么的,看完这篇文章就全懂了

2022-08-15
阅读 9 分钟
1.2k
Flutter是google开发的一个跨平台的UI构建工具,flutter目前最新的版本是3.0.5。使用flutter你可以使用一套代码搭建android,IOS,web和desktop等不同平台的应用。做到一次编写到处运行的目的。

密码学系列之:PEM和PKCS7,PKCS8,PKCS12

2022-08-04
阅读 2 分钟
1.5k
PEM是一种常见的保存key或者证书的格式,PEM格式的文件一般来说后缀是以.pem结尾的。那么PEM到底是什么呢?它和常用的证书格式PKCS7和PKCS12有什么关系呢?一起来看看吧。

密码学的基础:X.690和对应的BER CER DER编码

2022-08-01
阅读 3 分钟
1.2k
之前我们讲到了优秀的数据描述语言ASN.1,很多协议标准都是使用ASN.1来进行描述的。对于ASN.1来说,只定义了数据的描述是不够的,它还规定了消息是如何被编码的,从而可以在不同的机器中进行通讯。

有一种密码学专用语言叫做ASN.1

2022-07-28
阅读 4 分钟
1k
ASN.1是一种跨平台的数据序列化的接口描述语言。可能很多人没有听说过ASN.1, 但是相信有过跨平台编程经验的同学可能都听过protocol buffers和Apache Thrift,虽然ASN.1和上面两个语言相比不是那么出名,但是ASN.1的出现要比他们早的多,早在1984年ASN.1就出现了。

没错,请求DNS服务器还可以使用UDP协议

2022-07-25
阅读 6 分钟
1.6k
因为这里使用的UDP协议,netty为UDP协议提供了专门的channel叫做NioDatagramChannel。EventLoopGroup还是可以使用常用的NioEventLoopGroup,这样我们搭建netty客户端的代码和常用的NIO UDP代码没有太大的区别,如下所示:

创建私有CA,我就用openSSL

2022-07-21
阅读 5 分钟
1.3k
一般情况下我们使用的证书都是由第三方权威机构来颁发的,如果我们有一个新的https网站,我们需要申请一个世界范围内都获得认可的证书,这样我们的网站才能被无障碍的访问。

手把手教你在netty中使用TCP协议请求DNS服务器

2022-07-18
阅读 8 分钟
1.4k
DNS的全称domain name system,既然是一个系统就有客户端和服务器之分。一般情况来说我们并不需要感知这个DNS客户端的存在,因为我们在浏览器访问某个域名的时候,浏览器作为客户端已经实现了这个工作。

快来体验快速通道,netty中epoll传输协议详解

2022-07-14
阅读 6 分钟
1.2k
在前面的章节中,我们讲解了kqueue的使用和原理,接下来我们再看一下epoll的使用。两者都是更加高级的IO方式,都需要借助native的方法实现,不同的是Kqueue用在mac系统中,而epoll用在liunx系统中。

密码学系列之:使用openssl检测网站是否支持ocsp

2022-07-11
阅读 4 分钟
1k
最简单的方法就是去第三方网站查看网站的证书信息。比如我们之前提到过的entrust.ssllabs.com,通过输入对应的网站信息,在Protocol Details一节中,可以找到网站是否支持OCSP stapling的具体信息,如下所示:

密码学系列之:在线证书状态协议OCSP详解

2022-07-06
阅读 5 分钟
1.2k
我们知道在PKI架构中,CA证书是非常重要的组件,客户端通过CA证书来验证服务的可靠性。对于CA证书本身来说在创建的时候是可以指定过期时间的。这样证书在过期之后就不可以使用,需要申请新的证书。

netty系列之:kequeue传输协议详解

2022-07-04
阅读 9 分钟
1.2k
在前面的章节中,我们介绍了在netty中可以使用kequeue或者epoll来实现更为高效的native传输方式。那么kequeue和epoll和NIO传输协议有什么不同呢?

netty系列之:在netty中使用native传输协议

2022-06-29
阅读 4 分钟
1k
对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如NioEventLoopGroup,NioServerSocketChannel等。

netty系列之:在netty中实现线程和CPU绑定

2022-06-27
阅读 5 分钟
994
之前我们介绍了一个非常优秀的细粒度控制JAVA线程的库:java thread affinity。使用这个库你可以将线程绑定到特定的CPU或者CPU核上,通过减少线程在CPU之间的切换,从而提升线程执行的效率。

密码学系列之:PKI的证书格式表示X.509

2022-06-22
阅读 7 分钟
901
在PKI(public key infrastructure)公钥设施基础体系中,所有的一切操作都是围绕着证书和密钥的,它提供了创建、管理、分发、使用、存储和撤销数字证书以及管理公钥加密所需的一组角色、策略、硬件、软件和程序。

netty系列之:HashedWheelTimer一种定时器的高效实现

2022-06-20
阅读 5 分钟
1.7k
定时器是一种在实际的应用中非常常见和有效的一种工具,其原理就是把要执行的任务按照执行时间的顺序进行排序,然后在特定的时间进行执行。JAVA提供了java.util.Timer和java.util.concurrent.ScheduledThreadPoolExecutor等多种Timer工具,但是这些工具在执行效率上面还是有些缺陷,于是netty提供了HashedWheelTimer,一...