Some of the most engaging apps we use today are apps that require network connectivity of some kind. They communicate with an API somewhere to fetch and store data for example. Or they use an API to search through a huge amount of data. The point is, you don’t want your application to sit around […]
Read post
Subscribe to my newsletter and never miss a post
Recent articles
Jump to a random postWhenever I’m programming, I have a goal in mind, generally a problem to solve. I want my solutions to be simple, yet elegant and reliable. Thankfully, Swift is a great language for this. The language is safe, its syntax is beautiful with great readability. The way Swift handles nullability with Optional contributes greatly to its […]
Read postNo app is truly complete without some subtle shadows. Especially now that Google’s Material Design is showing us that shadows are cool again we need a way to properly add them in our apps. In my previous post I wrote about a way to create a custom UICollectionView layout. There was one problem with that post though, […]
Read postNote: This blog post has been updated for Xcode 11 and Swift 5 👍🏼 If you’re looking to learn more about the new collection view layout techniques that were introduced in iOS 13, this post should contain everything you need. If you’ve ever built an iOS app that uses some kind of grid layout or […]
Read postThere are times when you need to extract a subset of an array. For example, you might need to find all elements in an array at an odd index. Or maybe you need all items at an even index. In other words, you’re looking for every "other" element in an array. This might seem like […]
Read postIn 2015 Apple announced Protocol extensions at WWDC and went on to explain the idea of Protocol Oriented Programming (video here), I think every iOS developer got really exited when they saw this. The ability to add default implementations to protocol methods through extensions makes it seem like everything we will ever build can and […]
Read postIcon fonts vs. svg icons
Published on: April 16, 2015We can all agree that using png sprites for icons is not the most modern (or best) way to present icons on the web. Png is a rasterized format which means that if you try to make the image (or icon) larger, the quality will become worse. When browsers started properly supporting @font-face and svg […]
Read postHow to choose between rem and em
Published on: April 12, 2015A few days ago I found this article that argues for using rem units when defining font sizes. Generally speaking this is good advice. The rem comes with great predictable behavior, just like pixels do. But the rem also comes with accessibility advantages. When a user changes the font size in their browser settings, the rem and em […]
Read postMotivation is fun when it’s there but it fades quickly and it doesn’t help you get anything done long term. In this post I talk about my experience with setting up a system that aids in building a more consistent workflow to help me remain productive throughout the week.
Read postUsing Flexbox in the real world
Published on: April 1, 2015The Flexbox module for css was built with the intent to make a more robust, less hacky way to layout elements on pages. When you’re building a webpage you often don’t know how high or wide every element could or should be. This can cause problems in certain layouts which lead to ugly hacks. Flexbox […]
Read postExpand your learning with my books

Learn everything you need to know about Core Data and how you can use it in your projects with Practical Core Data. It contains:
- Twelve chapters worth of content.
- Sample projects for both SwiftUI and UIKit.
- Free updates for future iOS versions.
The book is available as a digital download for just $39.99!
Learn more