In about four months, Apple will have its annual WWDC event for developers. Some new technology and products will be announced. Some changes will be good, some will be meh. Apple will release new operating systems with some new features, and developers like me will whine about how they should slow down the pace and fix old bugs instead. It’s all predictable, and routine. What are you most excited…
Happy 2025. I thought I’d do a small audit of my online presence for the end of the year. What sites do I use to publish things about myself? For what purpose? How has this evolved over time? The trigger for this was me reviewing my personal expenses. For the longest time, I’ve been paying for Flickr Pro to host my photos. I paid once a year and for the past few years, I kept asking myself… why am…
Apple platforms have always supported localizing your apps. String Catalogs are a new addition to the toolkit that were released at WWDC 23 with Xcode 15. They compile down to good old strings files, but the frontend is nicer. I was curious how to use the new string catalogs in a modularized project that has all its features, including UI, split into different Swift Package modules, that seems to…
Saadaval ka eesti keeles. I had a fun weekend in Vilnius with my fellas. This week, NATO Summit is happening in Vilnius. I was not invited there. The weekend before that, there was NAFO Summit at the same place. I was very much invited there, and took part. As result of our collective fun and games over the weekend, both the spokesperson of russian imperialist barbarian federation ministry of…
swift-snapshot-testing by Point-Free is an excellent modern approach to Swift snapshot (screenshot) testing. It doesn’t work out of the box with Xcode Cloud. This post is about how I made it work correctly with Xcode Cloud. TL;DR: gist with the code. Background snapshot-testing default behavior assumes that the environment running the tests has access to the source repository where the reference…
I released Canopy : a library that helps you isolate CloudKit dependency and write testable code using CloudKit. Canopy is the portion of Tact code that interacts with CloudKit, to transfer the content to and from the cloud. I’ve been working on Tact using CloudKit for a few years now, and accumulated a lot of insights and opinions on the way. A while ago, I had the idea to extract the CloudKit…
I’m not much of a “server person”. But there’s no escaping servers and cloud if you are serious about working in technology. Applications and data live in the cloud, and it’s always good to have understanding of how it works, even if you mostly work on the client side. Recent surge of interest in Mastodon took me to setting up some instances and helping to operate them–some on my own, and some as…
Tact is now available in the iOS and macOS App Stores. Read our official announcement. Get it here. With this release, one chapter in the history of Tact ends, and another one begins. It goes from a silly little idea, to a real app in the store. While still being quite small, and possibly silly. Looking back I’ve written quite a bit about Tact over the past few years. About why we made it, and how…
Hi, new followers. I’m Jaanus. Welcome to my personal social media accounts. These days, I’m mainly active on Twitter. My goal with this editorial statement is to outline who I am, why I post what I post, and what you can and can’t expect when following me. Russia attacked Ukraine on Feb 24, 2022 (which also happens to be Estonian Independence Day). Russia’s war of aggression is also being waged…
I visited Kyiv with some friends a few years ago. The most remarkable part of the trip for me was our day tour to Chernobyl. I wasn’t aware of this, but turns out you can visit the area, and it is perfectly safe if you follow the instructions and precautions. There are organized day trips which we took. Now with the war, currently there is no tourism to Ukraine, and the status of the Chernobyl…
I just finished modernizing a 5-year-old UIKit app, bringing it into the SwiftUI world and making other adjustments. It’s a simple content blocker app for Estonian media , and the new version is now available in the App Store. There’s not that much visible change to the user. There’s a UI refresh, but otherwise, everything behaves pretty much the same. Internally and maintenance-wise, though, it’s…
It is the year 2035. We all use Xcode 25 (VR) on our Apple Glasses and iPad to develop new Magic Reality experiences and ship them to the Magic Store for billions of people to download. Everything is smooth and shiny. Except once in a while, when preparing your app, you get the error: Code signing error > Requires provisioning profile Nobody knows what this means exactly, or why it appears. Nobody…
I took a closer look at LPLinkMetadata and LPLinkView . These are part of Apple’s official SDK on all Apple platforms. They let us fetch web content metadata and use an Apple-provided UI, or draw our own UI. I wanted to understand what kind of metadata is available, and understand the tradeoffs of using Apple’s own view, vs drawing something custom in SwiftUI. To explore all these things, I built…
My hobby project Tact is now available as public beta. tl;dr Get Tact for iOS, iPadOS or macOS Read our public beta announcement post https://twitter.com/justtact justtact.com Public discussions and bug reports: github.com/tact/public Connect with us on Tact: Jaanus or Priidu Read my thoughts on Tact from earlier this year Tell me more This was all the “official” info and links you need to get…
I did an investigation of Universal Links. They’re supposedly this great technology that allows HTTPS links to be opened automatically in your iOS or macOS app if all the conditions are right, and thus to provide deep links to your content straight in your app. TL;DR: I could not get two key pieces of the technology to work: the developer mode, and onOpenURL when using macOS with SwiftUI. Although…
Apple’s annual developer conference WWDC happened this week. The conference keynote session is aimed at the public. The rest is a developer-oriented event where the Apple developer community learns of Apple software platform changes and updates for the coming year. I don’t have much to say about the content that’s not already been said elsewhere. I posted my notes for Keynote and Platforms State…
I recently finished playing Return of the Obra Dinn. I don’t post about games very often any more. First of all, I don’t get to play them all that much. And even if I do, there’s not much interesting to say about most of them. Obra Dinn is an incredible independent game, designed and developed by just one person, Lucas Pope (with of course help for various aspects of the production, but the…
Dear Internet, I would like to introduce you to a hobby project that me and Priidu Zilmer have been working on for a while, and I invite you along to the journey. Tact is a simple chat app for families, friends and small circles, designed for Apple platforms. tl;dr: I’m looking for these kinds of people: Apple platform engineers. Come help me build. Details in this post. Private beta testers. If…
Updated Nov 8: I did further testing and realized that registering for remote notifications works in production environment on Big Sur, but not in development environment. The original version of this post stated that it doesn’t work at all on Big Sur, which would be a big deal. Not working in development environment is obviously annoying to developers, but has no real user impact. I’ve edited…
Today, I‘d like to recommend a design book to you—even (especially!) if you don’t identify as a “designer.” The book is “How Design Makes The World” by Scott Berkun. And it has a cool trailer. It will give you a new, human-centered lens to look at the world around us, including your own work and daily life. Everything we make and do impacts somebody else, and the book gives you many…