jacky's blog

宁静致远


  • 首页

  • 归档

  • 标签

iOS内实现h5原生开发

发表于 2019-02-09 |
介绍Xcode可以直接引入h5的界面,实现原生界面内嵌h5开发。其实这里不止iOS可以这样做,安卓也可以引用同样的h5界面,实现界面使用同一份h5代码。 为什么要写h5的界面呢,原因是第一Xcode很卡,画图效果也不如h5方便。第二是调试h5直接通过浏览器调试就行了,不像Xcode每次编译跑起来真是卡的一批,时间又长。所以我就研究了这一套本地h5开发的逻辑,既能很好的实现业务逻辑的开发,又能方便开发,统一多端,效率大大提升。 步骤如下 把目录导入到Xcode中,选择Create folder references点击完成 引入h5目录效果如上 下面从实现界面和实现逻辑两个部分讲解。 实现界面 上面是实现的h5界面,通过webview引入项目,可以看到效果和原生几乎一样。 当然需要达到和 ...
阅读全文 »

express实现JWT用户认证系统

发表于 2019-02-09 |
介绍掌握本文知识点之前需要了解的技术点有: JavaScript,express,MongoDB,jsonwebtoken,redis,docker 因为MongoDB和redis我是通过docker运行的,所以需要一点docker的知识。 了解以上知识点之后,下面就直接撸代码,大部分都是用户系统需要用到的业务逻辑,文章最后会放出源码地址,代码中大都实现了模块化处理,需要的验证的可以下载源码参考,自行编译。 config模块项目中需要配置的动态信息我都放在了config模块,比如验证码过期时长,加密密钥,mongo地址等 1234567891011121314151617var isthinkpad=truevar mail = { host: 'smtp.1 ...
阅读全文 »

组件化之路—集成组件SDK

发表于 2019-02-09 |
介绍组件化的前提是要有基础组件、功能组件、业务组件这三大块。其中基础组件和功能组件都可以做成SDK,可以供其他APP选择性的调用。 比如把地图组件单独封装成一个SDK,需要使用地图就加载这个SDK,不需要使用的就不加载。对于全部封装成一个公共库的做法,这样既能实现解耦,又可以减少包的大小。 地图模块集成Framework业务上较多APP使用了高德地图SDK,此模块属于功能组件,下面把高德地图全部封装到一个SDK里面供给其他APP使用 新建Framework 命名Framework 修改最低支持的版本 导入高德地图SDK 添加依赖库(高德地图需要的依赖库) 统一导入到GDSDK.h中 新建TViewController.swift,适配Swift项目导入(如果没有Swift文件存 ...
阅读全文 »

iOS计算机视觉—ARKit

发表于 2019-02-09 |
ARKit介绍AR 全称 Augmented Reality(增强现实)是一种在视觉上呈现虚拟物体与现实场景结合的技术。Apple 公司在 2017 年 6 月正式推出了 ARKit,iOS 开发者可以在这个平台上使用简单便捷的 API 来开发 AR 应用程序。为了获得 ARKit 的完整功能,需要 A9 及以上芯片。其实也就是大部分运行 iOS 11 的设备,包括 iPhone 6S。 研究过程中,做了一个卷尺的Demo,现在介绍下项目中用到的技术点。 项目实践iOS 平台的 AR 应用通常由 ARKit 和渲染引擎两部分构成: ARKitARKit 的 ARSession 负责管理每一帧的信息。ARSession 做了两件事:拍摄图像并获取传感器数据;对数据进行分析处理后逐帧输出。 ...
阅读全文 »

iOS中对瀑布流实现适配器方案

发表于 2018-10-19 |
介绍适配器模式是就是把一种接口转换成另一种接口,统一给调用者提供简单好用的接口。如上图所示,在工业设计上,苹果电脑为了美观取消了以太网接口,那我们的电脑如果要使用有线以太网,就需要这根线做转接,把USB转成以太网输出,这样苹果电脑就可以上有线网络了。 适配器方案在项目开发中能够大量节约开发和维护成本,Android系统框架中有实现好的适配器方案,对ListView实现的很友好,可以提高对ListView的开发和维护。 我封装了BaseTableViewAdapter和BaseCollectionViewAdapter 在Controller里实现TableView和CollectionView只需要下面这样写 123456789101112131415161718192021import ...
阅读全文 »

iOS计算机视觉—人脸识别

发表于 2018-10-19 |
简介 引自维基百科计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。 计算机视觉系统的结构形式很大程度上依赖于其具体应用方向。计算机视觉系统的具体实现方法同时也由其功能决定——是预先固定的抑或是在运行过程中自动学习调整。尽管如此,计算机视觉的都需要具备以下处理步骤: 引自维基百科人脸识别,特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 ...
阅读全文 »

iOS中WKWebView和Native交互

发表于 2018-10-19 |
前言了解本文之前需要准备JS和WebView的一些基础知识,需要知道JS的基本语法和WebView调用JS的常用接口。 iOS实现JS和Native交互的WebView有UIWebView和WKWebView。通过KVC拿到UIWebView的JSContext,通过JSContext实现交互。WKWebView有了新特性MessageHandler来实现JS调用原生方法。从实现思路是来讲,UIWebView和WKWebView是一样的。所以,本文只介绍WKWebView上JS和Native的交互思路,UIWebView有需求的可以模仿实现。 JS和Native交互常用的场景常用的分为下面几种场景: H5获取Native用户信息(这种比较简单,只需要Native注入JS就行了,思路有三种 ...
阅读全文 »

iOS设计模式详解

发表于 2018-08-26 |
在软件工程中,(引自维基百科)设计模式)(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类别或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。 使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的 ...
阅读全文 »

Swift实现常用排序算法总结

发表于 2018-08-26 |
排序算法基础排序算法,是一种能将一串数据按照特定的排序方式进行排列的一种算法,一个排序算法的好坏,主要从时间复杂度,空间复杂度,稳定性来衡量。 时间复杂度时间复杂度是一个函数,它描述了该算法的运行时间,考察的是当输入值大小趋近无穷时的情况。数学和计算机科学中使用这个大 O 符号用来标记不同”阶“的无穷大。这里的无穷被认为是一个超越边界而增加的概念,而不是一个数。 想了解时间复杂度,我想讲讲常见的 O(1),O(log n),O(n),O(n log n),O(n^2) ,计算时间复杂度的过程,常常需要分析一个算法运行过程中需要的基本操作,计量所有操作的数量。 O(1)常数阶O(1)中的 1 并不是指时间为 1,也不是操作数量为 1,而是表示操作次数为一个常数,不因为输入 n 的大小而改变, ...
阅读全文 »

Codable项目实践踩坑总结

发表于 2018-06-03 |
项目情况在Swift2.3的时候就已经开始项目的整体Swift实现了。因为当时没有比较好用的Model,就使用OC的JSONModel实现Model的转换,Model还是用Swift建立,继承JSONModel实现字典转模型、数组转模型等一系列的序列化操作。 现在项目升级到Swift4.1,由于Swift4的语言特性造成了这样的Swift写的Model继承OC,已经无法使用了。现在市面上各种Model序列化的第三方库也慢慢发展成熟了,所以也打算整体更换成全部Swift实现的Model了。因为Codable是苹果自己的,所以率先选择了这个框架使用Model的整体迁移。 封装Codable苹果也是为了自己推出的序列化比较安全,常用接口的实现还比较缓慢,各种常用功能也都支持的不是很完全,比如字典 ...
阅读全文 »
12…6
jacky

jacky

51 日志
3 分类
20 标签
简书 掘金 GitHub
© 2019 jacky
由 Hexo 强力驱动
主题 - NexT.Pisces