开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

iOS 开发周报:XcodeGhost 事件提醒开发者提高安全意识,新版本 iOS 首周表现良好

  • 2015-09-22
  • 本文字数:1745 字

    阅读完需:约 6 分钟

新闻

  1. XcodeGhost 肆虐,iOS 开发者安全意识大危机:本周最大的新闻应该就是 XcodeGhost 恶意代码事件了。XcodeGhost 的作者通过篡改 Xcode 工具链,并利用国内网络不畅的因素,将植入恶意代码的 Xcode 进行大范围传播。这导致使用被篡改后的 Xcode 进行编译的应用中都会包含上传用户信息和接收第三方服务器响应来进行弹窗的木马。迫于舆论压力,作者在 GitHub 上开源了 XcodeGhost 的代码,并辩解说只是一次实验。但是从代码中对调试器的防范,上传用户数据时精心选择的密码,以及上传用户信息所使用的具有迷惑性的域名来看,很难让人相信这只是一次没有恶意的个人行为。这次事件造成的损失和后续发展会如何,我们还有待观察,不过对于 iOS 开发从业者来说,我们确实应该反思,从这次事件中吸取教训,并树立良好的安全意识。
  2. iOS 9 发布,3 天安装率超过 30% :iOS 9 于本周正式发布。根据 Mixpanel 的数字,在 iOS 9 发布 24 小时内,装机率就占到了活跃的 iOS 设备的 12%;在第三天的时候,这一数字已经超过 30%。该速度和一年前的 iOS 8 的安装率持平,但是低于全新设计的 iOS 7。对于 iOS 开发者来说这是一个好消息,因为随着 iOS 9 的逐渐普及,在不久的将来 iOS 7 的占有率可能会跌到 5% 以下,这也意味着我们可以逐渐放弃对 iOS 7 的支持,以提供更加稳定和一致的应用体验了。没有碎片化,一直是 iOS 开发吸引人的一个重要方面。

教程

  1. UIStackView Tutorial: Introducing Stack Views UIStackView 是 iOS 9 SDK 加入的新布局方式,类似 Android 中的 Linear Layout,在制作一般的线性视图时使用 UIStackView 会非常方便。这篇教程详细介绍了这种新布局方式的使用方法。
  2. Swift 最佳实践:上周周报中提到的 Swift-Community-Best-Practices 的中文版本。Swift 社区逐渐总结了一些比较成熟和先进的最佳实践。这篇文章为我们介绍了包括像是命名,单例,常量,类型等等一系列的推荐使用方式。
  3. iOS9AdaptationTips :向我们介绍了为 iOS 9 做适配的时候需要注意的内容,包括像是 BitCode 启用,App Transport Security (ATS) 以及 URL Scheme 的政策改变等等。虽然这些内容点在 WWDC 视频中都有介绍,但是这里将需要特别关注的内容都进行了汇总,方便开发者进行查阅和比对。
  4. Pattern Matching in Swift :Swift 的内建模式匹配是很强大的语言特性,但是在使用中经常容易被忽视。这篇文章中作者扩展了内建的模式匹配,为它实现了像是匹配大于 / 小于这样的功能,并给出了实用的例子。在此基础上,作者继续探讨了诸如自定义模式匹配操作符,字符串匹配等一系列小技巧,可以加深我们对 Swift 中模式匹配的理解。

开源项目

  1. iOS-9-Sampler :每年新版本 iOS 发布后,shu223 都会将自己所整理的新 SDK 中的功能实例用法开源出来,今年也不例外。作者在这个 repo 中向我们展示了像是 Spotlight 搜索,SFSafariViewController 等新特性的使用方式。
  2. MonkeyKing :一个 Swift 库,提供在应用内将链接和图片简单地分享到微信或 QQ 的功能。使用这个框架可以避免集成庞大和闭源的相关 SDK,以提高应用的安全性。框架使用了满足分享到社交平台的 scheme 来绕开 SDK 的流氓限制和设计,是一种比较干净的实现方式。作者还撰写了一遍博客来解释了这个项目的由来和使用方法。
  3. Watchdog :阻塞主线程是 iOS 开发新人经常犯的一个错误,对于那些耗时的非 UI 操作,我们都应该将它放到其他线程中执行,以保证用户响应的处理和界面的流畅。但是有时候即使是有经验的开发者也确实会忘掉这件事情。这个框架可以监视主线程的情况,并在可能发生阻塞 (主线程超过一定时间还没有进入空闲状态) 的时候,向我们给出警告,这在开发时提醒我们注意线程问题很有帮助。
  4. TKSubmitTransition :漂亮的按钮控件,带有 loading 动画效果和展开转场特效,非常适合使用在用户注册后或登录时的展示。它的实现使用了基本的 Layer 动画以及 UIViewController 转场动画,是在制作动画时比较基本的技术,如果你对 UI 动画和效果感兴趣的话,不妨深入看看它的实现。

感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群InfoQ 好读者)。

2015-09-22 19:002920
用户头像

发布了 59 篇内容, 共 21.8 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

第九周作业

Binary

架构师训练营 4 期 第4周

引花眠

架构师训练营 4 期

认识产品经理

ALone

架构师训练营第四周作业 - 命题作业

阿德儿

请用思维导图画出架构师训练营所有技术知识点

DL

JavaScript07 - 流程控制语句

Mr.Cactus

JavaScript

批判性思维自修课(一)

石君

28天写作 批判性思维

Python 中 lru_cache 的使用和实现

zikcheng

Python 源码分析 LRU

开发质量提升系列:checklist投产检查列表(上)

罗小龙

代码质量 28天写作 checklist

时间复杂度与常见排列算法

Changing Lin

算法

第二章作业

DF

Java-可重入锁

hepingfly

Java 可重入锁

【CSS】页面顶部阴影

德育处主任

CSS 大前端 html/css CSS小技巧 28天写作

线程的三种等待唤醒机制(面试必问)

hepingfly

Java 线程 等待唤醒

JavaScript08 - 数组

Mr.Cactus

JavaScript

LeetCode题解:105. 从前序与中序遍历序列构造二叉树,Simple O(n) without map,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

产品经理训练营第二周作业-利益相关者

隋泽

产品经理训练营

学习“利益相关者”后对自己工作的一点思考

隋泽

如何基于海思芯片快速搭建Agora RTC应用

Hanson

WebRTC

JavaScript06 - 操作符

Mr.Cactus

JavaScript

【函数计算实践】一个应用案例

程序员架构进阶

阿里云 架构 项目实战 函数计算 28天写作

【JS】Array.from() 将伪数组转换成数组

德育处主任

JavaScript js ES6 array 28天写作

【JS】Array.of() 创建数组

德育处主任

JavaScript 大前端 js ES6 28天写作

JVM 垃圾收集算法

看山

JVM 垃圾回收算法

吐血整理:推荐几款顶级好用的IDEA插件

Silently9527

Java intellij-idea idea插件

产品 0 期 - 第一章作业

让时间说真话

产品经理

大数据知识专栏 - 数据仓库

小马哥

大数据 hive 数据仓库 七日更

「架构师训练营 4 期」 第四周 - 002

凯迪

GNUCash 2: 缺点

lidaobing

GNUCash 28天写作

云游戏的那些事儿!读《大厂们的下一件大事儿》有感

李忠良

28天写作

微信直播也有跳舞小姐姐了 | 视频号28天(17)

赵新龙

28天写作

iOS开发周报:XcodeGhost 事件提醒开发者提高安全意识,新版本 iOS 首周表现良好_移动_王巍_InfoQ精选文章