iOS Newsletter #6

Using protocol composition for dependency injection, implementing UI mixins in Swift & more.

Using protocol compositon for dependency injection

By Krzysztof Zabłocki (@merowing_)

Krzysztof discusses how constructor dependency injection is great and all, but can quickly become tiresome due to Xcode's lack of refactoring support. Solace from this insanity can be found by using protocols to compose dependencies, so Xcode refactoring-hell becomes a thing of the past (at least with regards to initializer arguments).

Read →

Swift Protocols with Default Implementations as UI Mixins

By Christian Tietze (@ctietze)

Christian offers an interesting example of how mixins can be achieved with Swift protocol extensions.

Read →

How the Zalando iOS App Abandoned CocoaPods and Reduced Build Time

Ah.. the eternal saga of dependency management on iOS. Zalando shakes things up by moving away from the usual suspects (CocoaPods, Carthage), in favor of Facebook's Buck. In the process, they manage to shave off a significant chunk of their compilation time, in addition to some savings in app startup time.

While intriguing, it does seem like a scary amount of work. Also note that Buck is effectively Objective-C only for the time being.

Read →

Swift Retention Cycle in Closures and Delegate

By Bob Lee (@bobleesj)

Bob Lee puts forward a foundational piece on the intricacies of [weak self], [unowned self] and weak var.

Read →

Integrating Xcode Bots and Crashlytics Beta

By Hector Zarate (@iOSCowboy)

Once you've stopped kicking yourself over spending too much time fixing Xcode Server issues, you may want to integrate it with Crashlytics. Hector has the summary.

Read →

Building native macOS applications with Rust

By Delisa Mason (@kattrali)

Ever wanted to write a Cocoa app using the Rust language? Sure you have! Delisa did some experiments and it works — for the most part. Although it's clear to me that it's suboptimal from a coding efficiency perspective, it's still a good read if you're dipping your toe into the world of Rust.

Read →

Nuts & Bolts

SwiftyBeaver

SwiftyBeaver is a promising logging framework for Swift. It comes with a bunch of flexibility and a Mac app for monitoring your apps in the wild.

Find on GitHub →

AFMActionSheet

If you're looking for a way to customize your action sheets beyond the defaults iOS provides, this little library might do the trick.

Find on GitHub →

Book: RxSwift, Reactive Programming with Swift

RxSwift is making waves in the iOS development community and the folks at RayWenderlich recently published their book about it.

Shop →

Videos

Git at Scale: Managing Swift/Obj-C Code & Coders

By Brett Koonce (@asparagui)

Brett wows us with the Git-fu he uses while maintaining open-source projects.

Watch →

Swift on Android: The Future of Cross-Platform Programming or White Whale?

By Eric Wing (@ewingfighter)

An honest account of the current state of Swift on Android, and what it'll take to make it happen for real.

Watch →

Misc

Cracks

By Joseph Gentle (@josephgentle)

A software development poem.

Read →