iOS 开发周报: 有关 iPhone 及意外关机的信息、用 Swift 搭建一个微型编译器

392995529 3年前
   <h3>新闻</h3>    <ol>     <li><a href="/misc/goto?guid=4959728540516224919" rel="nofollow,noindex">有关 iPhone 及意外关机的信息</a> :Apple 在官网上发布了关于 iPhone 意外关机的调查结果,称:少数于 2015 年 9 月到 10 月期间生产的 iPhone 6s 设备中,某项电池元件被装进电池包之前在受控环境空气中暴露时间过长,使电池电量消耗速度快于正常水平,导致意外关机」并且强调 <strong>这并不是安全问题</strong> ,同时 Apple 称它们有意将 iPhone 设计为在某些情况下会自动关机,是为了保护零件不受损伤。</li>     <li><a href="/misc/goto?guid=4959728540608273314" rel="nofollow,noindex">新款 MacBook Pro 出现的花屏问题可能是第三方应用造成</a> :此前有消息称部分用户在使用新版的 MacBook pro 时出现了花屏现象,近期一份报告指出这个问题可能与第三方应用有关:用户在频繁使用第三方应用进行视频剪辑或者图像编辑操作时容易诱发花屏现象。</li>    </ol>    <h3>教程</h3>    <ol>     <li><a href="/misc/goto?guid=4959728540691679840" rel="nofollow,noindex">用 Swift 搭建一个微型编译器</a> :对绝大多数开发者来说,尽管我们每天都要与编译器打交道,然而实际上编译器对我们来说仍然像一个神秘的黑盒。在本次 try! Swift 的分享中,Samuel Giddins 从头搭建了一个全新的微型编译器,用来编译他自制的一门编程语言,从而借此去学习编译器的基本工作机制。他还讲述了 Swift 是如何为复杂问题(例如语义解析、词法分析和代码生成)提供优雅的解决方案的。最后,我们将实现一门全新的编程语言,并完成对它的编译工作。</li>     <li><a href="/misc/goto?guid=4959728540775999170" rel="nofollow,noindex">真实世界中的 Swift 性能优化</a> :有太多的因素会导致您的应用变得缓慢。在本次讲演中,我们将自底向上地来探索应用的性能优化。来看一看在真实世界中进行数据解析、数据映射和数据存储的时候,Swift 的特性(协议、泛型、结构体和类)是如何影响应用性能的,我们将确定影响性能提升的瓶颈所在,并体验 Swift 带来的「迅捷」体验。</li>     <li><a href="http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578296&idx=2&sn=03cc579cb7e016f8bfd4ba994b0a5947&chksm=84b3b63fb3c43f2956acad4f8d1c0a4d01e3692c829cca4fa0ad94fc554d7fe33e18db8e2d4c&scene=0#rd" rel="nofollow,noindex">美团大众点评 Hybrid 化建设</a> :本文介绍了美团大众点评为什么要做一个 Hybrid 化这样一个东西,以及美团大众点评在 Hybrid 上实践的一些方案。</li>     <li><a href="/misc/goto?guid=4959728540946463029" rel="nofollow,noindex">iOS 持续集成系列 - 自动化 Code Review</a> :为了保证代码质量,Code Review 是非常重要的一环。细到 * 的位置是否正确,大到代码的结构是否符合了软件开发的一些基本原则,都在这项工作的范围内。受限于现实情况,大多数团队没有足够的时间进行 Code Review,那么只能把一部分 CR 工作交给计算机去完成了。本文介绍了如何使用 OCLint 搭配 CI 进行一部分的自动化 Review 。</li>     <li><a href="/misc/goto?guid=4959728541026845013" rel="nofollow,noindex">大规模重构——重写 Instagram Feed 的经验之谈</a> :在 Instagram 团队重写他们全新的 iOS Feed 的过程中,他们积累了大量的经验,遇到的坑无疑已经超出了他们的预料,比如说集合视图、差异化 (Diffing) 以及冗长代码所带来的危险之处。本文 Ryan Nystrom 向我们分享了如何才能进行一次成功的重构,并且向我们介绍了 Instagram 的一个很赞的开源组件:IGListKit。</li>    </ol>    <h3>开源项目</h3>    <ol>     <li><a href="/misc/goto?guid=4959728541113330753" rel="nofollow,noindex">10000-Animations</a> :项目作者正在用 10000 小时时间去完成各种动画,动画实现可以作为参考。</li>     <li><a href="/misc/goto?guid=4959728541195678422" rel="nofollow,noindex">PDFGenerator</a> :简单易用的 PDF 生成 UIImage 框架。</li>     <li><a href="/misc/goto?guid=4958964267840898812" rel="nofollow,noindex">R.swift</a> :像 Android R 文件一样管理资源,安全地管理 UIStoryBoard UIImage 等资源。</li>     <li><a href="/misc/goto?guid=4959728541301047162" rel="nofollow,noindex">Snowflake</a> :SVG 解析框架。</li>     <li><a href="/misc/goto?guid=4959728541387783988" rel="nofollow,noindex">Swift-SpriteKit-Analog-Stick</a> :摇杆控件。</li>    </ol>    <p> </p>    <p> </p>    <p>来自:http://www.infoq.com/cn/news/2016/12/Mobile-Weekly-iphone-swift</p>    <p> </p>