iOS梦工厂

iCocos——不战胜自己,何以改变未来!

Keychain介绍与使用

| Comments

介绍

引言:

Mac OS可以利用KeyChain保存各应用中用户的账号密码,让用户不用重复输入。其实在iOS中也有KeyChain,也可以用KeyChain在应用间共享数据,只是有一些限制,无法像Mac OS一样开放,也无法让用户手动控制。那么KeyChain到底如何使用呢?

我们可以把KeyChain理解为一个Dictionary,所有数据都以key-value的形式存储,可以对这个Dictionary进行add、update、get、delete这四个操作。对于每一个应用来说,KeyChain都有两个访问区,私有区和公共区。私有区是一个sandbox,本程序存储的任何数据都对其他程序不可见。而要想在将存储的内容放在公共区,需要先声明公共区的名称,官方文档管这个名称叫“keychain access group”

第三方支付总结

| Comments

引言: 随着移动互联的发展,支付功能越来越流行,这也使得各大app公司不得不集成相关支付功能,文本就就此谈谈支付相关。

本文源码源码(封装)iCocosPay(内集常见支付方案:成支付宝,微信,银联)

目录

  • 常见支付方案
  • 第三方支付SDK
  • 苹果官方支付方案
  • web支付方案

图片处理-异步缓存优化

| Comments

  1. 引言

过去的几年里,iOS 应用在视觉方面越来越吸引人。图像展示是其中很关键的部分,因为大部分图像展示都需要下载并且渲染。大部分开发者都要使用图像填充表格视图(table views)或者集合视图(collection views)。下载图片消耗一些资源(如蜂窝数据、电池以及 CPU 等)。为了减少资源消耗,一些缓存模型也应运而生。

为了获得良好的用户体验,当我们缓存和加载图像时,了解 iOS 底层如何处理是很重要的。此外,大多数使用了图片缓存的开源库也是个不错解决方案。

图片优化-总结

| Comments

主要针对问题

  • 图片文件比较大

  • 图片文件比较多

网络图片显示大体步骤:

  • 下载图片
  • 图片处理(裁剪,边框等)
  • 写入磁盘
  • 从磁盘读取数据到内核缓冲区
  • 从内核缓冲区复制到用户空间(内存级别拷贝)
  • 解压缩为位图(耗cpu较高)
  • 如果位图数据不是字节对齐的,CoreAnimation会copy一份位图数据并进行字节对齐
  • CoreAnimation渲染解压缩过的位图
  • 以上4,5,6,7,8步是在UIImageView的setImage时进行的,所以默认在主线程进行(iOS UI操作必须在主线程执行)。

图片处理-补充

| Comments

前面介绍了iOS开发中常见的图片处理方式,而在iOS开发中除了前面几个提到的,还有两个东西是最值得注意的东西,那就是选择什么格式的图片,和怎么去加载图片,下面就来补充一下!

  1. 图片资源使用png还是jpg格式

  2. 如何选择图片加载方式imageNamed&imageWithContentsOfFile

图片资源使用png还是jpg格式

图片处理-高级篇

| Comments

一:UIImage的加载方式

上一篇文章的补充中也提到了这个,关于图片的加载方式,但是没有过多的涉及,这里就大概的总结一下,希望能有用!

显示关于图片加载问题,由于正在做的项目用到很多图片,加载后内存问题很是头疼,这里是我的经验,大概说一个下。 一般加载图片的方式: 第一种:

NSString * imagePath = [[NSBundle mainBundle] pathForResource:@"pic@.png" ofType:nil inDirectory:nil];  
UIImage * image = [UIImage imageWithContentsOfFile:imagePath];  

第二种:

UIImage * image = [UIImage imageNamed:picName];  

图片处理-常用技巧

| Comments

iOS开发中关于图片的处理是最常见的,就和你使用TableView的频率一样,本篇文章总结了一下iOS开发中常见的图片处理及相关源码。

这里就结合开发与学习中遇到的一一些图片处理问题,再结合其他大牛的一些干货,做了一系列的总结,希望能最你有实际开发意义!

目录

  • 获取图片
  • 比例缩放
  • 圆角 化
  • 添加阴影
  • 压缩大小
  • 格式的转换
  • 图片上传

Ffmpeg+kxmovie

| Comments

首先申明这里虽然是关于ios开发中视频开发,但是并不会涉及到什么苹果官方的视频框架,这里主要将目前比较主流的两个第三方,如果你需要了解苹果相关请参考:API预览

好了开始吧!

首先介绍两个概念:

  • FFmpeg:是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。

  • kxmovie:在FFmpeg基础上封装的一套OC的框架,非常好用么热切很强大!

一:编译针对iOS平台的ffmpeg库(kxmovie)

近期有一个项目,需要播放各种格式的音频、视频以及网络摄像头实时监控的视频流数据,经过多种折腾之后,最后选择了kxmovie,kxmovie项目已经整合了ffmpeg和简单的播放器,具体可以参考kxmovie主页:https://

  • github.com/kolyvan/kxmovie
    • 编译kxmovie很简单,已经支持iOS 6.1 和 armv7s,一次成功,编译过程没出现什么问题:
  • git clone git://github.com/kolyvan/kxmovie.git
  • cd kxmovie
  • git submodule update –init
  • rake

Code ReView

| Comments

提高代码质量的方法:

1,codereview

Why we do Code Review(为什么进行)

1、提高质量
2、及早发现潜在缺陷与BUG,降低事故成本。
3、促进团队内部知识共享,提高团队整体水平
4、评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。

Options of Code Review(代码评审的选择)

1、最近一次迭代开发的代码
2、系统关键模块
3、业务较复杂的模块
4、缺陷率较高的模块

如何做出从零开始code review呢, 我的建议是:

tech leader 强压所有人开始 code review, 这是最重要的一步
安排一次编码规范的技术分享
前期经常回顾, 这次的code review开展的怎样, 有哪些地方可以改善
对于积极的同学表示鼓励, 支持现场重构代码
每天不光可以review代码, 也可以安排整场的技术分享

Swift开源总结

| Comments

引言:

从swift一出来本人就在开始学习相关语法和新技术,随着一直到1.2知道2.0出来之前的变动,最后我放下了一段时间,当然也由于工作的原因,所以可以说也有一段时间没有摸他了。

记得今年6月份的时候,苹果放话说是将要开源swift,着对应iOS开发者,乃至所有程序员来说都是一件非常值得庆幸的事情(最终庆幸的还是苹果)。

发布于2014年的Swift,不仅具备编译语言的性能和效率,还兼有热门脚本语言的简洁和互动功能。

在2.0出来之后我也花了一段时间看了一下关于2.0的新特性,这一次的变化确实比较大,可以看出来苹果非常重视swift,将来有望替代Objective-C,但这都只是看到的未来,真正结果是什么苹果说了算(毕竟Cocoa是不会开源的)。