主页

flutter开发初探

flutter开发初探 作为时下最火的跨端技术,虽然现在才能才入局有点晚的感觉,但是本人是喜欢稳定版的,目前1.22.x也已经官方release了,这篇初探就简单记录下,一枚小白的使用心得和入门吧 国际惯例 摆出这张图,还是简单从整体上来先认识了一下什么是 Flutter,否则容易陷入“盲人摸象”的境地。 Embedder 操作系统适配层,提供线程模型,事件循环模型 Engine:和底层OS无关了,一般是渲染层包括了 Skia 图形绘制库、Dart VM、Text 等,其中 Skia 和 Text 为上层接口提供了调用底层渲染和排版的能力 Framework:是一个用 Dart 实现的 UI SDK,从上之下包括了两大风格组件库(iOS和Android)、基础...

阅读更多

一些相关知识点

对称加密 定义 对称加密是指加密和解密的密匙为同一个,用来加密数据的密匙也可以用来解密 特点 加密速度快,使用简单 对称加密的破解难度是随着钥匙的大小增加而增加的,钥匙越大就越难破解,但是钥匙越大相应的解密的时间也会越长 对称加密的问题 双方都必须先约定好加密规则 秘钥数目难于管理。因为对于每一个合作者都需要使用不同的秘钥,很难适应开放互联网中的大量的合作者交流。 无法适用于陌生的网络的环境,双方都必须是可信任的才可进行。 非对称加密 定义 非对称加密的秘钥是成对的(公钥和私钥)。私钥由自己安全保管不外泄,而公钥则可以发给网络中的任何人。 非对称加密适用这对秘钥中的一个进行加密,而解密则需要另一个秘钥。根据公钥是无法推导出私钥的。 特点...

阅读更多

面试总结

一些iOS的面试记录 如何访问并修改一个类的私有属性 KVC runtime 创建一个Father类,声明一个私有属性name,并重写description打印name的值,在另外一个类中通过runtime来获取并修改Father中的属性 #import <objc/runtime.h> @interface Father : NSObject @property(nonatomic, copy) NSString *name; @end @implementation Father - (NSString *)description { return [NSString stringWithFormat:@"name: %@", _nam...

阅读更多

基础算法

基础算法介绍 时间复杂度分析 算法思想 贪心算法 分治 动态规划 回溯法 枚举法 元算法 排序算法 排序算法是一种元算法。 O(N^2) 插入排序 选择排序 希尔排序 冒泡排序 O(nlogn) 快排 归并排序 堆排序 O(n) 桶排序 计数排序 基数排序 查找算法 线性查找 树查找 散列表查找 二叉树的遍历算法 概述 二叉树作为一个基础的数据结构,遍历算法作为一个基础的算法,两者结合当然是经典的组合了。有直接问二叉树的遍历的,有间接问的。比如要你找到书中满足条件的节点,就是间接考察树的遍历,因为你要找到书中满足条件的点,就需要遍历。 如果掌握了二叉树的遍历,那么其他复杂的树相对于你来说,也并不遥远了...

阅读更多

数据结构的简单介绍

简单介绍一下这次模块化实践以及所遇到的一些问题 数据结构 分类 数据结构是算法基础,线性结构有 数组,栈,链表等,非线性结构有树,图等(树可以被看作半线性的) 需要注意的湿,线性和非线性不代表存储结构湿线性和非线性的,这两者没有任何关系,它只是一种逻辑上的划分。比如我们可以用数组去存储二叉树 一般而言,有前驱和后继的就是线性数据结构比如数组和链表。其实一叉树就是链表 几种特殊数据结构的简单讲解 默认大家是有一定基础的,所以讲的比较简单 队列 队列是一种受限的序列,它只能操作队首和队尾,并且只能在队尾添加元素,在队首删除元素 “队列”这个名称,可类比为现实生活中排队(不插队的那种) 栈 栈也是一种受限的序列,它只能够操...

阅读更多

模块化实践以及私有库相关介绍

简单介绍一下这次模块化实践以及所遇到的一些问题 楔子 任何一个工程都会经历从无到有,从小到大的过程,这其中会遇到种种问题。譬如,工程成长到一定的阶段,势必想要进行模块化,一来可以让自己的工程看起来层次更清晰,不同模块独立性也更好,同时等工程到了一定规模,想要对外开放,实现开放平台,那么模块化就是必经之路。本文选择的模块化是cocoapods私有库+spec,同样也提供了二进制化方案,方便2中方式,一种是源码形式,一直是framework形式。 本文简洁明了,适合已近对cocoapods有一定基础的读者,如何安装,怎样使用,这边就不赘述了,直接进入主题,一切都是从简单实用为出发点,都是本人自己实践过的。 Podspec以及一些常用命令 pod lib lint –allow-w...

阅读更多

UIWebView和WKWebView的一些比较

介绍一下UIWebView和WKWebView 楔子 在我们使用UIWebView的过程中应该有发现UIWebView可是个吃内存的大户,动辄就是上百兆的内存,虽说现在iPhone的性能越来越好,但是也经不住如此折腾啊,况且,一个APP如果占用的系统内存超过整机内存总数的一半时是会被优先kill掉的。 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用、内存泄漏的 UIWebView。WKWebView 拥有60fps滚动刷新率、和 safari 相同的 JavaScript 引擎等优势。 下面就简单讲讲 UIWebView的内存问题以及一些改进方式 部分App(好吧,可能说很多)喜欢将UIWebView的fr...

阅读更多

Weex学习笔记

本篇博客记录一下自己对Weex的一些学习过程 什么是Weex?Weex能做什么? Weex是阿里巴巴集团开源的一个动态化方案。 在我们对移动开发最佳实践的思考中,我们认为移动开发的未来是更平衡的方案,一定是性能和动态性兼得。第二个,它一定是开放互联的,PC端一直也是这样的, 也是非常好的状态。我们觉得移动互联网将来肯定也是基于更大众化的技术体系,没有平台之间的隔阂,简单直接易用,这是我们最希望看到的。基于这些设想,我 们有了Weex方案。 Weex编写的页面天然的支持组件化,首先,我们的界面可以是一个组件化的,把一个复杂界面分成每个组件,刚才演示的都是简单的组件,每个组件都可以看成是一段 template,style,script,放到模型里,对应到界面的结构,样式细节,...

阅读更多