Around 6 years ago, I wrote about using Java for shell scripts. It was a hacky and fragile way to convert some Java code into a shebanged file containing the content of a Jar file. However, Java evolved quite a bit since that article, so it’s time to look at it again.
Read More

Xcode String Catalogs 101

 · 10 min
Localization, or l10n, is an important step for any app to reach a broader market and be more inclusive. With Xcode 15, the IDE gained a versatile and easy-to-use way of handling localization: String catalogs.
Read More
A new garbage collector was introduced in Java 11, a low latency/high scalability GC called ZGC. And now, with Java 21, it has evolved into a generational GChugo .
Read More
Pattern matching is a declarative and composable approach for more powerful and expressive code. Java 16 added pattern matching for the instanceof operator, and we looked at pattern matching for switch before. Let’s look at another new kind of pattern matching: Record Patterns.
Read More
Even though Java is one of the most backward-compatible languages and environments I’ve ever worked with, there’s always the possibility of feature deprecations and even removals.
Read More

Xcode Breakpoints 101

 · 12 min
Knowing how to debug a problem is essential in any project. But there’s way more to it than just stopping at a certain point with a breakpoint. From running custom code, over symbolic breakpoints, to sharing breakpoints via Git, Xcode has something for everyone.
Read More