CODE & ZEN

凯旋的博客

我是孙凯旋 @skx926
一名来自中国的 iOS 开发者
写过 Android
也会点 Web
深知付出更多才能收获更多
唯有在技术的道路上勤勤恳恳
方得片刻安心


  1. SDK开发和打包静态库遇到的坑

    我们在使用第三方库的时候一般有三种接入方式: 直接把第三方库的源码拖入工程 通过CocoaPods等包管理工具进行引入 通过.a或者.framework静态库引入 前两种情况一般是用于引入开源的项目,比如AFNetworking、SDWebImage;第三种情况一般是用于引入一些不方便开源的SDK,比如微信支付的SDK、百度地图的SDK。 SDK开发注意点 如果我们要做一个静态库形式的SDK,有什么需要注意的呢? 没有必要暴露的头文件就不要暴露给外部 类名、分类方法名、全局变量、全局函数、 …

    iOS 继续阅读

  2. OpenGL学习笔记(三):向量、矩阵和变换

    OpenGL学习笔记(一):在Mac上编译GLFW并配置到Xcode项目 向量 向量最基本的定义就是一个方向。或者更正式的说,向量有一个方向(Direction)和大小(Magnitude,也叫做强度或长度)。如果一个向量有2个维度,它表示一个平面的方向,当它有3个维度的时候它可以表达一个3D世界的方向。 下面你会看到3个向量,每个向量在2D图像中都用一个箭头\((x, y)\)表示。我们在2D图片中展示这些向量,因为这样子会更直观一点。你可以把这些2D向量当做z坐标为0的3D向量。由于向量表示 …

    Graphic 继续阅读

  3. Mac上的各种代理设置

    在天朝要做一名合格的程序员,翻墙上Google是必备技能。我之前有写过一篇文章来教大家搭建自己的翻墙服务器,里面关于VPS推荐的部分已经过时了,但是操作步骤还是有用的。 但是等你把一切都配置好之后你会发现似乎只有浏览器可以正常访问被屏蔽的网站,常用的一些服务比如git、ssh、npm、terminal、telegram等不是连接出错就是慢的要死,其实这些服务的数据其实根本没有经过我们的代理服务器,所以还是和原来一样。这是为什么呢? 当我们启动了Shadowsocks客户端的时候,就设置了几个系统 …

    macOS 继续阅读

  4. 移动端H5页面选择图片的各种姿势

    通过HTML的<input>标签调用系统api进行选择 通过下面的代码就可以调用系统的api选择图片 <!-- 选择文件 --><input type="file"><!-- 选择图片 --><input type="file" accept='image/*'><!-- 选择多张图片 --><input type="file" multiple accept='image/*'><!-- 拍照 --&gt …

    iOS 继续阅读

  5. 删除macOS自带的英文输入法

    macOS自带的输入法支持的语言很多,但是词库不够丰富,所以我们一般都会安装搜狗输入法。 搜狗输入法是支持中文和英文输入的,有时候我们处在英文状态,想要切换到中文。如果我们不查看状态栏的输入法状态的话很难判断当前是搜狗的英文输入法还是系统自带的英文输入法。这个时候我一般会直接尝试用快捷键进行切换。 问题在于系统输入法切换的快捷键是Option + Space,而搜狗输入法中英文切换的快捷键是Shift,这样的话我们有一半的概率会需要这个快捷键都按才会切换到中文输入法。这样是很难受的。 这种情况我 …

    macOS 继续阅读

  6. OpenGL学习笔记(一):在Mac上编译GLFW并配置到Xcode项目

    最近准备通过 LearnOpenGL 来学习一下OpenGL,环境配置的教程里面使用的开发工具是 Windows 上的 Visual Studio,而我想使用 Mac 上的 Xcode,在这里记录一下配置的过程。 下载 GLFW 源代码并安装 CMake 首先在GLFW的官网下载源代码 http://www.glfw.org/,然后在 CMake 官网下载 Mac 平台对应的安装包 https://cmake.org/download/ 我下载的是一个 dmg 格式的图形界面的安装包,在把 CM …

    Graphic 继续阅读

  7. 隐藏在4K电视中的猫腻

    最近乔迁新居,媳妇又很喜欢看电视,因此准备买一台电视。 某东上看了一圈之后发现现在的大屏电视基本上都支持4K分辨率。这让我颇感意外,因为现在4K的片源还不是很多,电视直播的信号甚至离1080p也都差的远。但是作为一个追求极致视觉体验的人,看到电视行业能够继续发展也是很欣慰的。 现在互联网电视也是蓬勃发展,某米电视在某东上80万+的评论也充分的证明了这一点。原本我准备直接在某东上直接购买这一款畅销的电视,但是我媳妇是个细心的人,她还是想要去线下的电视卖场去看看。所以我们暂时没买,这一步的操作也为我 …

    生活 继续阅读

  8. iOS音视频的那些事儿(一):数据的采集和编码

    AVFoundation简介 AVFoundation是苹果在iOS和OS X系统中用于处理基于时间的媒体数据的Objective-C框架. 供使用者来开发媒体类型的应用程序。 如果只是进行简单的视频录制,使用UIKit中的UIImagePickerController就可以了;如果需要播放视频,使用AVKit框架也足够了。但是如果需要进行视频文件的处理等更灵活等操作,就需要使用到AVFoundation等底层的框架了。 CoreAudio : 处理所有音频事件.是由多个框架整合在一起的总称 …

    iOS 继续阅读

  9. 深入理解HTTPS

    HTTP为什么不安全 HTTP协议传输的数据都是未经过加密处理的,也就是说客户端和服务端使用HTTP通信的中间环节都有可能会产生信息的泄漏。 如何让HTTP更安全 有人会说很简单,把数据加密一下不就行了。嗯,说起来很简单,但是具体怎么加密呢? 对称加密还是非对称加密? 我们现在有两种加密方式可以选择:对称加密和非对称加密。 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算 …

    Web 继续阅读

  10. SSH协议工作过程

    说到SSH,我们很多人都用过,比如我们通过git提交代码到Github的时候需要先添加本机的public key到Github网站,使用SSH远程连接VPS来对服务器进行操作。但是SSH究竟是什么,它是如何工作的呢? 定义 SSH全称Secure Shell,是一个提供数据通信安全、远程登录、远程指令执行等功能的安全网络协议,由芬兰赫尔辛基大学研究员Tatu Ylönen,于1995年提出,其目的是用于替代非安全的Telnet、rsh、rexec等远程Shell协议。之后SSH发展了两个大版本S …

    Web 继续阅读