Tim De Jong
banner
tjadejong.bsky.social
Tim De Jong
@tjadejong.bsky.social
Father, husband, data scientist, and free-time Apple developer. Is 🇳🇱, loves 🇨🇴. Technology and #lego enthousiast, aspiring entrepreneur. Occasionally plays the guitar 🎸 and the banjo 🪕.

Website: https://www.thinkpractice.nl
Reposted by Tim De Jong
Apple’s not the only one with a big upcoming release!

Transparent CloudKit synchronization is the product of many months, many pull requests, and issues and feedback from many beta testers.

We couldn’t be more excited to share it with everyone!

github.com/pointfreeco/...
September 9, 2025 at 6:35 PM
For those looking to test async code with swift testing and checking code called by closures here's a quick article on how to do that :)

#swift #swiftlang #iOSDev

thinkpractice.nl/post/capturi...
Capturing values in Swift Testing in strict concurrency mode
Migrating tests from before swift 6 into strict concurrency mode may need some changes. This article explains how to check values in closures using the #expect macro.
thinkpractice.nl
September 9, 2025 at 11:52 AM
Eliminated my favourite app idea using #EverythingButTheCode. Thanks @twostraws.bsky.social 😉 Now working or a (hopefully) more suitable idea. First I wasn't too enthousiastic about it, but now I'm getting excited. More on that later!

#shipathon #BuildInPublic
August 13, 2025 at 9:26 AM
Reposted by Tim De Jong
Search is a natural feature to add to an app once your user has stored a whole bunch of data. We will tackle the problem from the perspective of modern persistence using SQLite as your data store by adding search to our rewrite of Apple’s Reminders app.

👉 www.pointfree.co/episodes/ep3...
August 11, 2025 at 4:10 PM
Reposted by Tim De Jong
I’ve been exploring Core Spotlight APIs for showing content in Spotlight search and experimenting with using the same search index to power search inside the app. I wrote a detailed post on how to implement this in a SwiftUI app: nilcoalescing.com/blog/CoreSpo...
#iOSDev #SwiftLang #SwiftUI
Core Spotlight integration for Spotlight and internal app search
Use a shared Core Spotlight search index to make content discoverable in system Spotlight and support internal search within the app.
nilcoalescing.com
August 11, 2025 at 8:03 AM
Reposted by Tim De Jong
Swift Talk 459
Visual Node Editor (Part 1)

In a new series, we build a node editor to explore focus, selection, gestures, and accessibility.

This episode is free to watch, enjoy! 😊

talk.objc.io/episodes/S01...
July 18, 2025 at 5:23 PM
Reposted by Tim De Jong
June 25, 2025 at 11:27 AM
Reposted by Tim De Jong
🚨 New video!

Have you ever wondered how folks experiment with Swift features that aren't officially available yet?

In this week's video I explain how you can find and enable experimental features through proposals and flags in SPM: https://www.youtube.com/watch?v=nwXpBMgHHeI&ab_channel=donnywals
June 25, 2025 at 8:57 AM
Reposted by Tim De Jong
📆 Clear your calendars!

July 25th, 9am PDT (4pm GMT)

We are hosting a live stream where we will unveil seamless SQLite+CloudKit synchronization tools, and takes questions from our viewers (26 questions have already been submitted!).

www.pointfree.co/blog/posts/1...
Upcoming live stream: A vision for modern persistence
We are hosting a live stream on June 25th to unveil our vision for modern persistence. Learn how to seamlessly synchronize your app’s data across many devices, including sharing data with other iCloud...
www.pointfree.co
June 23, 2025 at 8:22 PM
Reposted by Tim De Jong
Starting with Swift 6.2 and iOS 26, we can use enumerated() in SwiftUI List and ForEach views without wrapping it in an array. I wrote a post with some examples and notes on when we should avoid using the offset as an index or id: nilcoalescing.com/blog/UsingEn...
#SwiftUI #SwiftLang
Using enumerated() with SwiftUI List and ForEach to show item numbers
Starting with Swift 6.2 and iOS 26, EnumeratedSequence conforms to RandomAccessCollection, allowing enumerated() to be used directly in ForEach and List views.
nilcoalescing.com
June 24, 2025 at 6:24 AM
I love the new swift testing framework but still a lot of my code uses XCTest. I wondered whether I could somehow automate the conversion. To read how I did this, check the following article:

thinkpractice.nl/post/copilot...

#swift #testing #swiftlang #iOSDev #copilot #automatetheboringstuff
Using GitHub Copilot to rewrite your XCTest tests to use Swift Testing
Learn how to use GitHub Copilot to automate the conversion of XCTest tests to the new Swift Testing framework, enhancing your testing workflow and productivity.
thinkpractice.nl
June 18, 2025 at 10:14 AM
Want to learn how to develop an image classification app with swift and CoreML? In the fourth post in the series, we integrate a Vision classification model and build the first working version of the ZooScan app.

thinkpractice.nl/post/zooscan...

#swift #swiftlang #iOSDev #ML #coreml #Buildinpublic
ZooScan - Part 4: Using the Swift Vision Framework to Classify Animals
In this fourth part of the ZooScan series, we integrate the Swift Vision framework to classify animals based on images captured by the app. We define a protocol for image classification models and imp...
thinkpractice.nl
June 16, 2025 at 8:09 AM
Want to learn how to develop an image classification app with swift and CoreML?

In the third post in the series we finish a first version of the ZooScan UI and provide a basis for adding a ML classifier later.

thinkpractice.nl/post/zooscan...

#swift #swiftlang #iOSDev #Buildinpublic #ML #coreml
ZooScan – Part 3: Storing Our Scanned Animals and Finalizing the UI
In this third part of the ZooScan series, we implement the ViewModel and ScannedAnimal model, and create the Main and Detail views. This sets the stage for the machine learning classification in futur...
thinkpractice.nl
June 14, 2025 at 6:40 AM
Reposted by Tim De Jong
Finally got around to watching @alexozun.com‘s talk here. Truly fascinating stuff, and I learned something about non-Copyable types too!

youtu.be/qPHjDlqHsUQ?...
Typestate - the new Design Pattern in Swift 5.9 | Swift Heroes 2024 Talk
YouTube video by Swift Heroes
youtu.be
June 13, 2025 at 10:54 PM
Reposted by Tim De Jong
How does our SQL-based solution for persistence compare with modern Swift Data? We put things to the test by rebuilding our complex @FetchAll query using @Model and the @Query macro!

You are not going to want to miss this...

www.pointfree.co/episodes/ep3...
June 2, 2025 at 3:58 PM
Want to learn how to develop an image classification app with swift and CoreML?

In the second post of the series we are going to start implementing the ZooScan App's views:

thinkpractice.nl/post/zooscan...

#swift #swiftlang #iOSDev #Buildinpublic #ML #coreml
ZooScan - Part 2: Project Setup and the First Steps
In this second part of the ZooScan series, we set up the project, create the basic UI, and implement the initial screens of the app. Join us as we start building this exciting animal classification ap...
thinkpractice.nl
June 13, 2025 at 10:08 AM
More work on my website today!

Added auto-generation of all kinds of meta/opengraph tags to the Hugo template. Learning a lot of html/tailwind. Also added RSS feeds if you want to follow all updates. Here you can see the end result:

thinkpractice.nl/post/

#html #tailwindcss #buildInPublic
Posts
Smart apps for Apple devices
thinkpractice.nl
June 12, 2025 at 2:47 PM
I recently started a tech blog about swift and iOS development. I'm focusing mostly on the machine learning part of iOS development. I started a first series about developing an image classification app called ZooScan, check for an overview here:

thinkpractice.nl/courses/#ima...

#swiftlang #iOSDev
Courses
thinkpractice.nl
June 12, 2025 at 10:10 AM
Want to learn how to develop an image classification app with swift and CoreML? Then wait no longer:

thinkpractice.nl/post/zooscan/

This is the first post in a series that will develop an iOS app called ZooScan: the ultimate companion for your zoo visits!

#swift #swiftlang #iOSDev #coreml
ZooScan - Part 1: Building Zooscan - An App that Scans and Classifies Zoo Animals
thinkpractice.nl
June 12, 2025 at 10:08 AM