Machine Learning in Swift: Document Classification with Core ML

January 2, 2018 | Swift, Machine Learning, Core ML, iOS, macOS, tvOS, watchOS

It's an exciting time for Swift developers to get into machine learning. With Apple's new Core ML framework, support on all four platforms, and a growing library of models available for the framework, incorporating machine learning solutions in Swift apps has never been easier.

Downloading, Caching & Decoding Images Asynchronously with Alamofire: Part 2

December 18, 2016 | Swift, Alamofire, Networking, iOS, macOS

In Part 1 of this tutorial, I explained how to use the Alamofire and AlamofireImage libraries to asynchronously download and cache images to be displayed in a UICollectionView. At the end of that project, we still had a performance problem. UIImage by default waits until right before display to decode . . .

Serializing & Archiving Structs in Swift with Archiver

October 26, 2016 | Swift, Serialization, iOS, macOS

There are many options for persisting data between launches in Cocoa apps, including NSUserDefaults, NSKeyedArchiver / NSKeyedUnarchiver, Core Data, and a range of third-party frameworks. NSKeyedArchiver is a popular choice for projects that require more than the basic key-value storage . . .

Downloading, Caching & Decoding Images Asynchronously with Alamofire: Part 1

September 18, 2016 | Swift, Alamofire, Networking, iOS, macOS

Downloading and caching images are common tasks in iOS development, especially when using collection and table views. In this tutorial, we're going to use the popular Swift networking library Alamofire and its companion image library AlamofireImage to build an app that displays images of Glacier National Park.

Making Private, Cross-Platform Swift Frameworks With CocoaPods

July 10, 2016 | Swift, Dependency Management, CocoaPods, iOS, macOS, tvOS, watchOS

With technologies like handoff and continuity, a unified developer program, and many of the same system frameworks available on all four of its platforms, Apple has been moving over the past few years to more seamlessly integrate its ecosystem of devices. This presents a great opportunity for us to bring our apps to . . .