WWDC21 keynote review

A new year, a new WWDC with once again new iOS, iPadOS, macOS and watchOS releases. If you ask me, I think yearly releases are overkill and really not necessary; I’d rather have Apple split off features like Weather, Maps, Notes and more into...

read more

Mentee Question 5: What's the deal with coordinators?

A few weeks while ago in my how to get started article I mentioned coordinators in the “What architecture should I use?” section, and how they allow you to decouple your view controllers from one another, and improve the way you can test your code....

read more

Mentee Question 4: When to use PassthroughSubject and CurrentValueSubject?

That’s a great question! And actually one I asked myself too, when I just got started with Combine. Let’s first explain what PassthroughSubject and CurrentValueSubject are though. Subjects are a kind of publisher that you can subscribe to, but can...

read more

Mentee Question 3: How to know when multiple publishers completed?

In JavaScript-world, it's really easy to know when multiple promises completed: just use Promise.all. How do you do the same thing in Combine?

read more

Mentee Question 2: How to get started

Resources for learning Swift and UIKit, what to build first, opinions on Unit Testing, and more.

read more

Mentee Question 1: UIKit or SwiftUI

My take on the very common question "What should I learn or focus on? UIKit or SwiftUI?"

read more

Book review: Thinking in SwiftUI

A while ago I asked on Twitter which Swift-related book I should review next, and overwhelmingly Thinking in SwiftUI by the objc.io guys was chosen. An excellent choice!

read more

Exploring two-way databinding solutions in UIKit

With SwiftUI we have the `@Binding` property wrapper that makes it really easy to create a two-way databinding between a form field and a model, but in the UIKit world it's slightly less easy. Let's explore some solutions.

read more

Book review: Practical Combine

It's almost exactly 10 years since I wrote my last book review. Time flies! Also, it makes me realize that the way I've been learning has changed dramatically. I am much more guided by autocomplete and documentation within Xcode, and in-depth articles and videos about one particular topic, instead of reading books.

read more

WWDC20 review

A quick review of the keynote and State of the Union talks. Let's see which of my wishes have been fulfilled, and which SwiftUI problems have been solved.

read more

A review of SwiftUI problems

I've been working with SwiftUI for almost half a year now, and in that time I've learned a lot. I love a lot about it, but there are also so many bugs and issues that need workarounds that it's kind of maddening.

read more

WWDC20 wishlist

WWDC is just around the corner, and we're all waiting like little kids at Christmas to see what Apple is going to announce. Most of us also are hoping for specific changes, here are my top wishes.

read more

Connecting Storekit to Firestore via Cloud Functions and webhooks

I've recently added subscriptions to my Critical Notes iOS app, using Apple's StoreKit. Here is how I hooked it all up to Firestore including server-side receipt validation.

read more

Review roundup: iOS debug tools and inspectors

All of a sudden it seems there’s a big effort to create debugging tools for iOS developers. Some are free, they all have different features… Time for a comparison. PonyDebugger “Remote network and data debugging for your native iOS app using Chrome...

read more

iOS development: three years later

In April 2010 I started to work on my very first iPhone app. A new language, a new IDE, a completely new way of thinking about development (threads! memory! crashes!), it was very exciting. In these three years quite a lot has happened to us iOS...

read more

Apple's worst iOS framework: MediaPlayer

When I started to work on Last.fm’s Scrobbler for iOS, I though it would be quite an easy app to create. After all, it’s basically a couple of lists of artists, albums and tracks, and all actual music playback will be done using the MediaPlayer...

read more

MPVolumeView (Airplay button) on an UIBarButtonItem

In an app I’m currently building, the client wants an Airplay button in the navigation bar, with a nice background like so: After trying some things, the solution seems to be to loop over the subviews. It feels a bit hacky, but works perfectly:...

read more

My wishes for iOS 5

In June 2010 Apple finally added multitasking to the iPhone (the iPad had to wait ’til November to get iOS version 4) and with this resolved one of my biggest complaints about the operating system. And while I really enjoy iOS on the iPhone and the...

read more

My thoughts after having completed my first Appcelerator project

A while ago I set out to build my third mobile application. Only this time the client wanted not only an iPhone app, but one for Android too. So that’s why I turned to Appcelerator once again, after my failed first attempt. In case you don’t know...

read more

Once again I turn to Appcelerator

After I decided to create iPhone apps using just the iPhone SDK and the Objective-C language, I’ve created two iPhone apps that are available in the Dutch App Store. Development for app number three has started today, but no longer will I be using...

read more

Book review: Beginning iPhone 3 Development

My sixth book review, and the second one about iPhone development. The previous book was a great read, but since it only talked about the basics it left me wanting for (much) more. I needed more information about searchbars, core data, multitouch and the accelerometer. This time I actually read some reviews before buying a new book, and "Beginning iPhone 3 Development" seemed like a winner.

read more

Book review: Head First iPhone Development

In a previous blogentry I wrote about some great online resources I found to get started with iPhone development. I read the C and Objective-C introductions, watched the first 12 or so episodes of the Stanford courses and did the assignments that went along with it. Well, at least I tried to do all the assignments, but they were not easy with just the information from the taped lectures. There is a ton of information in them, but are kind of boring to watch, and you don't learn that well from slides.

read more

Getting started with iPhone app development

For a pretty long time I wanted to make an iPhone app, ever since the App Store opened really. But, I’ve never programmed for Mac OS, never done any C or C++ (let alone Objective-C). In fact, I’ve never created a desktop application, only working on...

read more