Swift For Complete Beginners Part 1: Hello, Xcode!

May 8, 2018 | Swift, Beginner

You've decided you want to learn programming. Maybe you have an idea for an app, maybe you're looking to change careers, or maybe you just think it's something you would enjoy doing. Whatever the reason, welcome!

Swift 4.1 Conditional Conformance in Unit Tests

April 24, 2018 | Swift, Generics, Architecture, iOS, macOS, tvOS, watchOS

In this tutorial, we'll look at a case study of using conditional conformance in unit tests. The problem we'll be solving is a common one. You have a set of stubbed JSON responses and you want to test that they are serialized correctly into Swift model types. Some responses return a single model resource while others return a collection.

Working With Private CocoaPods

March 6, 2018 | Swift, Dependency Management, Architecture, iOS, macOS, tvOS, watchOS

In the last tutorial, we built a cross-platform Swift framework. If you want to reuse your frameworks in other projects, the next step is to support dependency managers. The three most popular right now are CocoaPods, Carthage, and Apple's Swift Package Manager.

Making A Cross-Platform Swift Framework

February 20, 2018 | Swift, Dependency Management, Architecture, 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 each platform while reusing a lot of the app logic we've already written.

Sharing Localizations In A Reusable Framework

February 6, 2018 | Swift, Localization, iOS, macOS, tvOS, watchOS

Localization is a great way to expand the potential customer base of your apps. Xcode makes it easy to add localization to an app, but what if you want to provide reusable localizations in a framework? You may be using the same strings in multiple apps or on multiple platforms, or you may be writing an open-source framework . . .