《iOS开发进阶》--读书笔记

《iOS开发进阶》
作者:唐巧

统计分析工具

  • Flurry: 国外软件,专门针对移动的做了优化,统计流量小,数据安全性高

  • 友盟:国内软件,对国内开发者比价友善。现已被阿里收购,当业务涉及到与阿里冲突时,统计数据会有潜在的安全性问题。这也是京东不支持使用支付宝的原因。

  • App Annie : 一款专门为开发者提供,针对App store 的统计分析工具,可以统计下载量、排名变化、销售收入情况及用户评价等。

  • App Figures: 和App Annie 类似的统计分析工具。

崩溃日志记录工具

Crashlytics: 国外软件,信息收集能力强,使用免费,安全。

Xcode 插件管理工具:Alcatraz

可以集成到 Xcode 管理 插件、模板、及颜色配置工具。
安装方法如下图:


IMG_1320.JPG

常用的Xcode 插件

  • KSImageNamed: 自动匹配图片资源名

  • XVim:一个Xcode 的vim 编辑模式插件

  • FuzzyAutocompletePlugin:代码自动补全插件,Xcode 7.3以上的版本现都已支持。

  • XToDo : 一个查找项目中所有带有 TODO, FIXME, !!! 等的标记注释。

  • BBUDebuggerTuchAway:一个当结束调试后,自动隐藏调试窗口的小插件。

  • SCXcodeSwithExpander : 能迅速在switch 语句中填补所有可能的case:的插件。

  • deriveddata-exterminator: 一款可以在xcode 菜单清除xcode 缓存的插件,解决一下奇怪的编译错误信息。

  • VVDocumenter : 一款快速文档注释插件,Xcode 8 现已集成,使用 cmd + option + /
    键即可添加。

  • ClangFormat : 一个自动调整代码风格的工具。

  • ColorSense : 一个使用UIColor 创建颜色时,能实时预览当前颜色

  • XcodeBoost : 包含多个辅助修改代码的小功能,比如:

    • 可以将.m 文件中方法的定义暴露到.h文件中

    • 可以将一个源文件中直接输入正则表达式查找

    • 可以复制粘贴代码时不启用Xcode的自动缩进功能。

  • ImageOptim : 一款图片压缩工具,比Xcode 自带的pngcrush 压缩工具的压缩比率要高。需要给ipa 包瘦身时可以采用此软件。

  • 蒲公英: 一款应用App的内测分发工具,国内软件,使用比较方便

  • xctool : 一个Facebook开源的 iOS 编译和测试工具。纯命令行工具

  • apledoc : 一款从源代码中抽取文档的工具。

内存管理

  • weak 弱引用修饰的对象,虽然持有对象,但是引用计数不会增加,所以可以避免循环引用。

  • 为了兼容非ARC的三方库,可以在compile sources 中为对应的.m 文件增加编译参数 -fno-objc-arc
    来允许对部分文件关闭ARC。

开发技巧

  • UILabel 显示模糊:UIlabel 的frame 的origin 值如果有小数就会参数此问题,修改为整数后即可解决。
  • NSJSONSerialization 比 NSKeyedArchiver 做数据持久化更方便快捷,性能更好
  • UIView 添加动画效果方法是类方法,所以当中的block 绝不会产生循环引用。
  • Xcode 快捷键:
    • cmd + shift + o : 快速查找工程中的类和方法

    • ESC :调出代码补全窗口

注意:
js 文件被拖到工程后,是在编译列表中,而不是在资源列表中,需要手动的调整其位置,否则不能打包到ipa 文件中,解决方法如下:
由于js文件不需要编译,需要将js文件从Compile Source编译列表中移动到 copy Bundle Resources中。

  • 清除DerivedData : 当xcode 缓存异常,莫名出现编译错误时,可以尝试清除这里的缓存数据 ~/Library/Developer/Xcode/DerivedData

  • 为工程增加 Daily Build 脚本

  • 学习一门脚本语言(js、Python),可以提高开发效率,自动化批处理一些繁杂重复性强的事情

  • 代码片段用户内容替换命令:<#输入被替换的内容#>

Block 对象模型

block 内部数据结构定义:

IMG_1323.JPG

解释

  1. isa 指针,所有对象都有该指针,用于实现对象相关的功能
  2. flags , 用于按bit 位表示一下block的附加信息
  3. reserved ,保留变量
  4. invoke ,函数指针,指向具体的block实现的函数调用地址
  5. descriptor,表示该block的附加描述信息
  6. variables ,capture(捕捉)过来的变量,block能够访问他外部的局部变量,就是因为将这些变量(变量的地址)复制到了结构体

OC 中的3各种Block 类型

  • _NSConcreteGlobalBlock,全局的静态block,不会访问任何外部变量。
  • _NSConcreteStackBlock,保存在栈中的block,当函数返回时会被销毁。
  • _NSConcreteMallocBlock,保存在堆中的block,当引用技数为0时销毁。

Block 对外部变量的复制

  • 对于block外的变量引用:block默认是将其复制到其数据结构中来实现访问的。如果这个对象是一个引用类型,则block 会将其引用计数加1

  • 对于__block 修饰的外部变量引用:block 是复制其引用地址来实现访问的。

图示:


IMG_1324.JPG
  • 在ARC中block 只有 NSConcreteGlobalBlock、NSConcreteMallocBlock,这2中类型存在,因为ARC 机制已经能很好的管理对象的生命周期,所以这样的block 类型对于系统来说方便管理。

其他

**适合UIWindow 来实现的功能: **

  • 手势解锁,密码输入界面
  • 应用的启动介绍页
  • 应用内的通知提醒显示
  • 应用内的弹框广告

App 用户登陆密码安全传输策略:

事先生成一对用于加密的公私钥,客户端在登陆时,使用公钥将用户的密码加密后,将密文传输到服务器。服务器使用私钥将密码解密,然后加盐之后再多次求MD5,之后再和服务器原来存储的用相同方法处理过的密码匹配,如果一致,则登陆成功。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容