Skip to main content

The arrival of Xcode 16 betas prompted some of the changes in this update. First was a farewell to TransformerKit.

4.5

Enhancements

  • Formatters: The removal of TransformerKit led to simplification and extension of the Fx's: Meet the new KaseFx command StringTransformer.
  • Secure coding: Transformers in Core Data model are now more secure (based on NSSecureUnarchiveFromDataTransformer).
  • Inheritance: "Remove Inheritance": Now a Deck can "uninherit" (or be disinherited) from its super Deck.
    • Of course, that means data entries in inherited fields (from all super Decks) will be deleted, and all inheriting sub Decks will also have inherited field data (from that level up) removed. Kase will ask for confirmation before proceeding.
  • Import/Export: Many more async/awaits. Plus some speed-ups due to more efficient (less stupid) codes.

Fixes

  • CSV import with AutoFill could cause a crash. (fixed)

References:

4.4

New Features

  • new column-style Split View with updated Side Menu
    • much better for iPads and the large iPhones (e.g. the Max and Plus models)
  • In-app Store (iOS 17 required)
    • e.g. CE users can purchase upgrades from inside the app

Enhancements

  • Time Zones browser
    • Current/Closest Time Zone button
  • Units browser
    • Significant Digits setting
      • side-steps the rounding issue of "60" becoming “59.999”
    • Dynamic Discovery setting
  • Trash
    • more prominent "n days remaining" display (not just in the context menu)
  • separate WebNotice for TestFlights
  • faster start-up
    • main-thread workaround reimplemented

4.4.1

A rapid fix had to be released to address an AppleBug.

Fixes

  • In-app Store: Subscriptions did not appear. (fixed)
    • A StoreKit bug prevents subscriptions from showing up, rendering the in-app store almost pointless.
    • The worst part is, this bug only surfaces in "live" apps cleared for distribution in the App Store; it does not, even for the same build, surface during development, or in public TestFlights.
    • ref.: Subscription Unavailable - Strange Behavior with StoreKit

4.3

New Features

  • Recover from Trash
    • Now when you delete a Card, a Deck, or even an entire Box, they go into the Trash instead of getting deleted immediately.
    • You can open the Trash and recover the items (available in the Full Edition, not CE).
    • Items you leave in the Trash will be automatically deleted after 32 days (so you always have at least a month before they are permanently deleted.)
  • Flags for Entries
    • Similar to how you can Mark a Deck or a Card, now you can Flag any Entries.
    • Whether to mark imprecise, approximate values, or to just denote special Entries, now you have an additional tool to organize your data.

Enhancements

  • more consistent context menus
    • Look Up, Speak, etc.
  • more robust file operations
    • no more “don’t have pemission” errors with AccessSecuredURL

Fixes

  • Side-by-Side view: Multi-line text was not showing. (fixed)

updated 2024/03/15

"42!"

Kase 4.2 will be realizing a major part of my dream that started 10 years ago...

A number is usualy not just a number. It is often a quantity associated with a unit. Without the unit, it is a figure floating in a vague dimension. But when paired with a unit, the number becomes a measurement carrying a concrete value.

Kase 4.2 helps you keep track of numbers with units.

Open letter to all numbers

Here is an open letter to all numbers:

updated 2024/03/13
  • 2024/02/02
  • 2024/02/01

4 = 4.0 + 0.1

Kase 4.0 was a huge update. It was so big that compiling the list of changes was almost as big a task as making the app itself...

Inevitably, bugs got in. Especially when we are supporting three major releases of iOS/iPadOS (15, 16, and 17), and Apple likes changing things around with little to no documentations... (e.g. SF Symbols names, hi, what are you now?[^sfs])

4.1 is what 4.0 should have been, if i had more time...

4.1

But 4.1 is much more than bug fixes. It is a very important release on its own:

(2022/04/01: updated and expanded)

NSUserDefaults → UserDefaults

In the beginning, when Cocoa was hot (circa 2001), there was already NSUserDefaults, a thoughtful API for the seemingly simple task of persisting preference settings.

Swift (since 2014) gave it a cleaner name (UserDefaults, without the NS prefix), but it also created new expectations that the plain old class was not delivering:

  • strong type checking
  • easy value types usage
  • modern Swiftness, etc.

This is where Swiftified UsersDefaults libraries come in. Here we look at a few of them:

  1. SwiftyUserDefaults: "Modern Swift API for NSUserDefaults"
  2. Defaults: "Swifty and modern UserDefaults"
  3. Foil: "A lightweight property wrapper for UserDefaults done right"

(last updated: 2022/04/26)

Kase 3 was designed for iOS1 13, and it has been updated numerous times to work well with later releases of iOS 13 and 14.

Kase 4 will be the recommended version of Kase for iOS 15 and greater. This post will document how the older Kase 3 works under iOS 15.

Footnotes

  1. iOS here refers to both iOS and iPadOS,

updated: 2021/01/01 [^ⓤ]

var year = 2020 2021

🎄 Merry Christmas and Happy New Year! 🙏🇺🇸

This is the 2021 new design for WISD.com. It should be live at 2:30 PM (Pacific Time) on this very first day of 2021.

Please pardon any rough edges for the moment...