IOS
2019
2018
三个简单步骤让你测试使用系统单例的代码
·3 分钟
原文:Testing Swift code that uses system singletons in 3 easy steps
原作者 @johnsundell
大部分在 Apple 平台开发的 App 都会依赖基于单例的 API。从 UIScreen 到 UIApplication,再到 NSBundle,而 Foundation,UIKit 以及 AppKit 里到处充斥着静态的 API。
避免在 Swift 中使用单例
·5 分钟
原文:Avoiding singletons in Swift 原作者 & Copyright @johnsundell
“我知道单例不好,但是…”,这是开发者常常在讨论代码的时候会提到的。貌似社区大家有共识 ── 单例不好。但是同时,包括 Apple 和第三方的 Swift 开发者还是在 App 内部或者共享的 frameworks 里不断在用它们。
Swift 中几种不同的依赖注入方式
·5 分钟
原文:Different flavors of dependency injection in Swift
原作者 & Copyright @johnsundell
在之前的几篇博客中,我们已经了解了几种使用依赖注入方式使得某个 swift app 拥有一个更加解耦可测试的架构。比如在 在 Swift 中使用工厂模式进行依赖注入 中和工厂模式结合,以及在避免在 Swift 中使用单例中替换程序中的单例对象等方式进行依赖注入。
In App Purchase
对于在 App Store 中上架的应⽤来说,应⽤内购买(In-App Purchase,简称 IAP) 应该是一个避不开的话题,尤其是去年微信打赏和 Apple 之间的争执更让 IAP 火了一把,不仅仅大公司,作为个人开发者来讲,IAP 也是非常重要的,说不定就是你养家糊口的工具呢。
2017
在 Swift 中使用工厂模式进行依赖注入
·6 分钟
原文:Dependency injection using factories in Swift
原作者 & Copyright @johnsundell
依赖注入是一项使得代码更加可测试的关键工具。我们不需要持有某些对象,或者创建这些对象的自有依赖,或者通过单例来获取他们,而是尽可能使那些对象能够正常运转所必须的一切内容(其他对象)通过外界传入,这样做的好处在于,一方面能清晰的看得到某个对象的所有依赖项,另一方便也使得测试工作变得更为简单(因为我们可以模拟这些依赖项来捕获、验证状态以及值。)
模块化 Xcode 工程
·10 分钟
原文:Modular Xcode projects
原作者 & Copyright @pepibumur
翻译:@OgreMergO
使用 Xcode 构建模块化的工程就需要对工程结构以及其基础概念有很好的理解才行。
处理 Swift 中非可选的可选值类型
·5 分钟
原文:Handling non-optional optionals in Swift 原作者 & Copyright @johnsundell
可选值(optionals)无可争议的是 swift 语言中最重要的特性之一,也是和其他语言,例如 Objective-C 的最大区别。通过强制处理那些有可能出现 nil 的地方,我们就能写出更有预测性的以及更健壮的代码。
Capturing objects in Swift closures
·5 分钟
原文:Capturing objects in Swift closures 原作者 @johnsundell
自从 Block 在 iOS4 被引入 Objective-C 的世界之后就成为了 Apple 各平台上最时髦的 API 的重要组成部分了。当 Swift 语言出现的时候,blocks 的概念就摇身一变通过 closure 的形式引入,成为了目前我们可能每一天都在用的语言特性之一了。
@autoclosure && @escape
我们知道在 swift 中,闭包(closure)是一等公民,因此可以被当作参数传递,在学习 swift 的过程中经常会看到某些关键字修饰该闭包,@autoclosure, @escape 就是其中比较常见的两种关键字。
关于 iOS10 Notification 的那些事儿
·7 分钟
概览 # 推送通知我们大家都不陌生,可以说几乎每个使用智能手机的人每天都会被不同的通知 打扰 到,正式因为合适的推送是吸引用户注意力的利器,其成为了各 App 吸引用户,将用户带回到 App 本身,提升用户的活跃度的一种必要的方式。
2015
如何使用UIBezierPath实现一个弹性视图动画
原文:Elastic view animation, or how I built DGElasticPullToRefresh 原作者 @gontovnik
DGElasticPullToRefresh 展示了如何实现一个弹性效果。效果如下图所示:
开发环境: Xcode 7 Swift 2.0