Grand Central Dispatch (GCD) is a great technology provided by Apple. It provides an elegant level of abstraction to work with threads, queues, and locks. And it went through a much needed make-over in Swift 3. In this post, I would like to take this one step further using enums as a queue factory.
Swift initialization rules are there for very good reasons, but sometimes it can make things tedious. In this post, I will show how to avoid duplicating code across initializers while still obey Swift initialization rules. This pattern uses static functions, tuples, and typealiasing.
Less code and less memory while performing the same task at hand is truly where the art comes in. In this post, I’d like to highlight some of the various pitfalls that lead to memory leaks, which inevitably result in crashes. I will also cover some tools and remedies to resolve these issues.
Swift is a powerful and fun language. Its protocol-oriented nature allows you to do retroactive modeling and promotes composition over inheritance. In this series of posts, I will share Swift snippets that I’ve used across projects that I feel are really helpful in rapid development.
Working with the UITableView and UICollectionView is verbose and inconvenient; also the API’s are inconsistent with each other. In this post, I’d like to reconcile the two API’s and add some sugar to make it more pleasant to work with these commonly used controls.
Swift is a unique language that has some revolutionary ideas. One of which is protocol conformance extension. This concept allows you to take an existing type and force it to adopt another protocol it never knew it existed before.
In this post, I’d like to show you how to create a Swift framework for iOS, watchOS, and tvOS and get them distributed via Carthage and CocoaPods. It’s a technique I use to share frameworks across all my apps and with the community.
It is convenient to keep your settings or default values in a `.plist` file or settings bundle for your project. In this post, we will explore how to attach an extension off the NSBundle class this make it super easy to read those values.
Swift has a unique and elegant class inheritance system. In this post, I’d like to shed light on all the inheritance goodies in Swift, such as designated, convenience, failable, automatic, and required initializers. Not only are these powerful concepts, but they also enforce safe and intentful code.
Unit testing has a stigma of slowing you down while you’re trying to rock some code. The truth is unit testing doesn’t have to be so dry. Once you start flipping the script, unit testing can be an opportunity for refactoring, refreshing, and finding bugs. Besides, who wouldn’t want to see a bunch of green checkmarks next to their code?: A beauty […]