2016.01.11技术周报

感谢本期周报线索提供同学: 张萌,桉远。

周报汇总 地址

周报博客 地址

WWDC Session

Building Concurrent User Interfaces on iOS: For a great user experience, it’s essential to keep your application responsive while it renders complex UI elements and processes data. Learn how to use concurrency at the UIKit layer to perform drawing and other common operations without blocking user interaction.

开源代码:

RACollectionViewReorderableTripletLayout: UICollectionView 排序

文章:

Building a Core Foundation

防止点击 Cell 时 ViewController 被重复 Push: 寻找疑难问题的解决办法,再做合理分析以便确定可使用

React-Inspired Views: User interfaces can be hard to get right in any application. Combining display and interaction in a little rectangle on the user’s screen seems simple, but even for small applications, it’s easy to end up with a tangled mess of view code. In complex products with many contributing engineers, like Facebook’s News Feed, these views can be especially hard to develop and maintain over time. Facebook News Feed视图策略

效率工具

Xcode 插件介绍:文章推荐的几款插件都有助于提升Xcode开发效率,推荐尝试。

2016.01.04技术周报

感谢本期周报线索提供同学: 展歌,桉远。

周报汇总 地址

周报博客 地址

开源代码:

PMKVObserver:A type-safe Swift/ObjC KVO wrapper.

文章:

iOS 开发之照片框架详解 包括AssetsLibrary及新库photoKit(官方demo)

NSFormatter: 各种听过没听过,用过没用过的formatter

Swift target acton: Cocoa’s target/action system for responding to controls is a great system for Objective-C, but is a bit unnatural to use in Swift. Today, I’m going to explore building a wrapper that allows using a Swift function as the action.

objc.io: Compiler: In this article we’ll have a look at what a compiler does, and how we can use that to our advantage.

objc.io: mach-o excutables: When we build an application in Xcode, part of what happens is that the sources files (.m and .h) get turned into an executable. This executable contains the byte code than will run on the CPU, the ARM processor on the iOS device, or the Intel processor on your Mac. We’ll walk through some of what the compiler does and what’s inside such an executable. There’s more to it than first meets the eye.

效率工具

CleanMyMac 3: 智能清理Mac磁盘空间。

程序员的自我修养

编程的智慧: 编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋。然而由于软件行业喜欢标新立异,喜欢把简单的事情搞复杂,我希望这些文字能给迷惑中的人们指出一些正确的方向,让他们少走一些弯路,基本做到一分耕耘一分收获。

2015.12.28技术周报

感谢本期周报线索提供同学: 一晖,张萌,桉远。

周报汇总 地址

周报博客 地址

开源代码:

Rainbow: Rainbow adds text color, background color and style for console and command line output in Swift. It is born for cross platform software logging in terminals, working in both Apple’s platforms and Linux. Meanwhile, it is also compatible with XcodeColors, which lets you colorize the Xcode debugger output as well when developing an app.

文章:

iOS开源库介绍-FCModel

Delivering high scroll performance

Bitcode 解密: 文章主要介绍了什么是bitcode,以及使用bitcode带来的好处与坏处。

Using multiple UIWindows in iOS applications

UIWindow in iOS

iOS应用文件目录结构简介: 对iOS文件系统文档的相关整理,对iOS app中个路径存放文件类别做了总结。

WWDC 与Instrument相关Session: 历届WWDC Session中关于Instrument的列表。

效率工具

如何用Github去管理你的Idea

程序员的自我修养

为什么你应该先成为全栈工程师

iOS应用文件目录结构简介

iOS 标准目录结构

出于安全考虑,iOS只有特定目录可以写入数据。 当一款应用安装在设备上后,系统会创建一些系统目录给应用使用,一款应用只有权限访问其自己的路径下的数据。

AppName.app

整个应用的bundle文件。此目录包含整个应用和其所使用到的所有资源。 此路径不能写, 只可读, 如果强行写入,会改变安装时在系统注册的该目录的签名,如果签名改变,系统会组织程序启动。

Documents/

用于存储用户产生的内容。 此目录会被iTunes默认备份

Documents/Inbox

此目录用于保存用于其他应用打开的文件。 例如,Mail应用汇将和此应用有关的附件保存于这个路径。 Documents interaction Controllers 也会放文件于此目录。

自己应用可以读取和删除此目录文件,但是不能创建新文件或者写入已经存在的文件, 如果要对该目录文件进行修改,请将要修改的文件移除到其他目录。
此目录默认被iTunes备份

Library/

此目录用于保存非用户数据文件。 Library下的子目录可以用于保存那些不希望用户看到的数据文件。不要用Library下的目录保存用户数据文件

Library目录下(除了Caches目录及其子目录)会被iTunes默认备份

tmp/

用于那些不需要在每次启动需要持久化的临时文件。手动删除那些此路径下不用的临时文件。当应用没有运行时,系统也许会删除此目录下的文件。

此目录默认不会被iTunes备份

应用产生的文件应该放在哪

为了避免iOS设备间同步和备份流程耗时太久,应该对文件归属目录的选择特别注意。

  • 将用户数据保存于 Documents/. 用户数据包括那些需要让暴露给用户的文件 — 用户可以创建,删除,编辑的文件。 例如,对于视频和音频应用,用户数据包括用户下载过的文件等。
  • 将应用创建的文件保存于Library/Application support/路径下。此目录下,用于保存应用自身使用,不暴露给用户的数据文件。包括数据文件,配置文件,模板文件和版本特定的资源文件等。
  • 谨记保存于Documents/ 和 Application support/ 目录下的文件是默认备份的。可以使用[NSURL setResourceValue:forKey:error:]使用NSURLIsExcludeFromBackupKey key. 任何可以被重新下载的文件,一定不要进行备份
  • 将数据缓存数据保存于Library/Caches 目录下。 缓存数据是那些没用该数据,应用也可以正常运行的数据, 但如果有缓存数据,会提高应用的性能。 例如,数据库缓存文件,可以下载的内容等。 注意:系统也许会删除Caches/下的文件,来释放磁盘空间

参考: File System programming guide

2015.12.21技术周报

感谢本期周报线索提供同学: 张萌, 桉远。

周报汇总 地址

周报博客 地址

感谢张萌同学继续提供周报线索

本期周报主要有几个精彩动画效果实现,还有几个iOS编译部署的工具。

开源代码:

Moya: Network abstraction layer written in Swift.

文章:

几个精彩的动画效果推荐:

看,这白白的液体滴了一地

利用贝塞尔曲线实现Q弹的下拉刷新

Swift 源码阅读之弱引用:

Swift Weak References: Swift 下若引用原理解析。推荐阅读

效率工具

iOS开发编译部署套件:

Nomad

fastlane

2015.12.14技术周报

感谢本期周报线索提供同学:新宁,曹华,桉远。

周报汇总 地址

周报博客 地址

开源代码:

Swiftbeaver: Swift 记log工具 和一篇介绍文章

文章:

NSCache – Swift源码阅读
Open-source Swift: Booleans

Using CocoaPods in Xcode Playgrounds 🍩🎪
: 在Playground中使用CocoaPods

iOS开发之如何跳到系统设置里的各种设置界面

视频:

What the 55 Swift Standard Library Protocols Taught Me: 作者为raywenderlich长期教程作者,主要介绍了其从Swift标准库提供的protocol学到了哪些,推荐观看,需翻墙。

程序员的自我修养

作为一个程序员,进步完全取决于自己: 文章中说道,作为一个程序员要不断尝试学习新的知识,充实自己。不要在乎学的东西现在有没有用处,要让自己的大脑不断接触新的东西。

效率工具

Quiver: 记事本工具软件,记录代码可以有各种语言语法高亮,支持markdown, LaTeX;支持同步备份等功能。

How to update an Xcode plug-in for the latest version of Xcode: 解决更新Xcode后,插件无法使用的方法。注:示例上用的是XVim,把插件换成对应名称即可。

2015.12.07技术周报

感谢本期周报线索提供同学: 张萌, 桉远。

周报汇总 地址

周报博客 地址

开源代码:

最近Apple开源了其编程语言Swift,以下为桉远对Github上Swift开源项目一个导览,希望有对其中感兴趣的同学,可以直接找到对应的项目源码。

Swift Programming Language

  • 官网:swift.org
  • 文档:需要用安装Sphinx(easy_install -U Sphinx),安装后,在源码文件夹下docs 执行make, 将.rst格式转成.html文件,输出的文档在docs/_build/html, 然而并没有像README上说的那样有whitpaper/index.html, 也许是因为文档没有及时更新吧,不过没关系,可以根据自己想看的文档查看对应专题的网页文件。
  • 源码: 如果只想要阅读源码而不像修改,可以clone以下代码,
    • swift语言源码, 可以主要查看stdlib文件夹下的源码: git clone https://github.com/apple/swift.git swift
    • swift 编译器llvm代码: git clone https://github.com/apple/swift-llvm.git llvm
    • swift编译c相关编译器源码: git clone https://github.com/apple/swift-clang.git clang
      • lldb: git clone https://github.com/apple/swift-clang.git clang
      • swift包管理工具源码: git clone https://github.com/apple/swift-package-manager.git swiftpm
      • swift foundation源码,基于OC开源Foudation, NS*.swift源码:git clone https://github.com/apple/swift-corelibs-foundation.git
  • 想快速上首swift2.2的可以下载Xcode Swift 2.2 Snapshot, 经过安装后,可以在terminal中alias swift22="/Library/Developer/Toolchains/swift-latest.xctoolchain/usr/bin/swift", 不但可以启动REPL,还可以使用swift package manager。 注:只有Xcode 7.2可以使用swift 2.2.
  • swift package manager 相关示例代码:根据提示只要clone下示例工程,进入文件夹,运行swift build即可完成对应依赖工程的下载编译,非常方便,不过目前作者说还只是基础功能,目前还暂不支持iOS,watchOS,tvOS.

文章:

深入理解Kingfisher(上)

深入理解Kingfisher(下)

iOS同步对象性能对比

WWDC 2014 Session笔记 - iOS界面开发的大一统 :什么时候可以抛弃iOS 7了,好多UI实现都可以换了

初探 iOS8 中的 Size Class

程序员的自我修养

技术高手如何炼成

2015.11.30技术周报

感谢本期周报线索提供同学展歌,张萌, 桉远。

周报汇总 地址

周报博客 地址

WWDC Sessions:

iOS App Performance: Graphics and Animations

iOS App Performance: Memory

iOS App Performance: Responsiveness

文章:

详说CMDeviceMotion 来自NSHipster 的翻译文章,获取陀螺仪、加速器和磁力仪(罗盘)等传感器数据,get交互灵感

手把手教你如何分析 iOS 系统栈 crash

与调试器共舞 - LLDB 的华尔兹: Xcode LLDB 详解

使用LLDB调试程序

开源代码:

SlackTextViewController: A drop-in UIViewController subclass with a growing text input view and other useful messaging features.

AsyncMessagesViewController: A smooth, responsive and flexible messages UI library for iOS. Built on top of the awesome AsyncDisplayKit framework, it takes full advantage of asynchronous sizing, (non-auto) layout and text rendering to deliver a 5x fps (subject to increase) scrolling experience.

效率工具:

A quick reference for iOS devices.

程序员的自我修养

推荐两篇自己会经常拿出来反复看的文章:

teach yourself programming in ten years: Peter Norvig一篇如何学习编程。

how to be a hacker: how to be a hacker

关于TDD的一篇文章,可以看看:

Test-Driven Development is Stupid

以及Hacker News上的讨论

2015.11.23技术周报

感谢本期周报线索提供同学: 李展歌,桉远

周报汇总 地址

周报博客 地址

文章:

Lessons learned with 3D Touch: 详细介绍了3D touch 在instagram app中的应用。

AFNetworking 3.0迁移指南:为了迎合iOS新版本的升级,AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于NSURLSession的API的AFNetworking的版本。

iOS开发系列–让你的应用“动”起来:~讲解IOS 动画相关~博主的文笔和排版灰常赞~其系列博文值得一读

优化Facebook iOS app启动时间

探索iOS:

Spelunkhead:跟着博文作者一起探索iOS系统framework。

moby.sh: 下载所有framework head文件,并放入一个输出文件夹中,方便搜索查看API接口,新API等。

AsyncDisplayKit 专场

AsyncDisplayKit 文档

Introducing AsyncDisplayKit: For smooth and responsive apps on iOS

Building paper

Asynchronous UI

Effortless Responsiveness with AsyncDisplayKit

AsyncDisplayKit 2.0

开源代码:

REVERT: Reveal出品,一个项目教会你Swift的基本UI开发。配合reveal更加直观。

程序员的自我修养

ABC: Always be coding: 如何提(准)升(备)自(面)己(试)。

Baidu Hi iOS 技术周报-2015.11.16

感谢本期周报线索提供同学张萌, 桉远

周报汇总 地址

周报博客 地址

文章:

iOS 保持界面流畅的技巧

AFNetworking源码解析系列

开源代码:

YYKit:

YYKit 是一组庞大、功能丰富的 iOS 组件。

为了尽量复用代码,这个项目中的某些组件之间有比较强的依赖关系。为了方便其他开发者使用,我从中拆分出以下独立组件:

  • YYModel — 高性能的 iOS JSON 模型框架。
  • YYCache — 高性能的 iOS 缓存框架。
  • YYImage — 功能强大的 iOS 图像框架。
  • YYWebImage — 高性能的 iOS 异步图像加载框架。
  • YYText — 功能强大的 iOS 富文本框架。
    *
  • YYKeyboardManager — iOS 键盘监听管理工具。
  • YYDispatchQueuePool — iOS 全局并发队列管理工具。
  • YYAsyncLayer — iOS 异步绘制与显示的工具。
  • YYCategories — 功能丰富的 Category 类型工具库。