Published on

Indie Dev Weekly #23

Authors

2023,0717-0723

I caught a cold last weekend. This week I started having a cold with all the symptoms except fever: stuffy nose, runny nose, cough, phlegm, headache, low energy, body aches, poor appetite. But I didn't take any medicine and got better anyway.

Minimal Diary App Store

This week I fixed many bugs:

  • Drafts not saving completely
  • Some images not showing in calendar
  • Image order in diary
  • After four weeks, I finally submitted version 1.7.6, but ran into an unexpected issue before submitting.

On Friday morning when preparing to submit, a tester reported a calendar bug which I estimated would take at least a day to fix, but unexpectedly fixed in the afternoon. So I planned to submit in the evening, but found the new entities weren't synced to the CloudKit schema in the CloudKit Dashboard.

On Saturday morning the entities still weren't synced. I spent the whole morning only getting one Asset entity synced, but the Draft entity still wasn't synced. I reread all of fatbobman's articles about Core Data with CloudKit, and the logging section of Core Data with CloudKit Part 4 - Debugging, Testing, Migration and More inspired me. I looked at my project settings and sure enough, Core Data logging was disabled. After enabling logging, I slowly discovered the reason for the schema not syncing was that my iCloud storage was full. After freeing up iCloud storage, Draft finally appeared in the CloudKit schema.

coredata-log

At first I performed CRUD operations on Draft, then long passages of logs appeared in Xcode's console, which was too difficult to glean anything from, so I copied all the logs into Claude for analysis.

claude-debug1

The first analysis didn't uncover the reason for the CloudKit schema not syncing, but after several rounds of analysis on more logs, I finally discovered the cause - insufficient iCloud storage space. After freeing up iCloud storage, Draft finally appeared in the CloudKit schema.

claude-debug2

Xcode

I encountered a very strange and annoying bug in Xcode 15 beta 4 this week. Xcode 15 prompts "iOS 17.0 Not Installed" every period of time (uncertain duration, sometimes after a meal or sleeping), and strangest of all, even after clicking GET to download, it still showed as not installed. Reinstalling Xcode 15 beta 4 didn't solve this. The only solution is deleting the downloaded iOS 17.0 beta 3 in Platforms, then redownloading. This allows using it again for a period of time.

xcode15
ios17

Because my test device was already on iOS 17 beta, I had been developing and debugging with Xcode 15 beta. But this week I was working on releasing the official version of Minimal Diary, so in order to run the app from Xcode 14 to my test device, I found this solution, which perfectly resolved the problem.

New Keyboard

I have a strong interest and longing for ergonomic keyboards, especially split mechanical keyboards. I just bought a new keyboard last week, so I'll introduce the few I've used before.

Microsoft Ergonomic Keyboard 4000

A keyboard I bought 10 years ago. From an ergonomic perspective, I think this is the most comfortable for hand position, but the disadvantages are:

  • The switch keys feel a bit off, some even quite hard.
  • It's too large, taking up lots of desk space.
  • Poor support for Mac shortcuts.
Microsoft

Ergodox

I was obsessed with this keyboard at the time, almost bought an ergodox-ez finished product. It happened to be around Chinese New Year then, and the ergodox-ez factory was in Taiwan so shipping would be delayed 4 weeks, so I gave up. While browsing second-hand goods I found a seller with a very familiar ID - it turned out to be my college dormmate! He gifted me a kit and I was overjoyed. I tinkered with it every day, doing minor repairs and modifications. Through this keyboard I got into the custom community following my classmate.

The disadvantage is also that it's too large, many keys are inconvenient to press, increasing cognitive load. Also the switches are soldered so can't be hot swapped. Also after a long time the power connector came loose and some keys would register multiple presses.

ergodox

Corne

A keyboard I built based on online tutorials and open source plans. I experienced ordering the wrong PCB, also buying wrong parts, before finally succeeding after completely ruining my first attempt. There were still flaws though, like the LEDs refusing to light for some reason, but it didn't affect use. I built two of these - gave one to the dormmate who gifted me the Ergodox, and one to a designer friend.

corne

Feker Alice 80

My first Alice layout keyboard purchase. This keyboard slopes from the middle to the sides, like the Microsoft Ergonomic Keyboard 4000 which I really like. It also has two big advantages - gasket mount and a huge 8000 mAh battery.

But the disadvantages were also obvious, causing me to sell it:

  • The left Cmd key was on the right of the left spacebar instead of the left.
  • The rotary knob had to be pressed every time on wake for proper functioning.
  • Poor VIA support, bottom row buttons couldn't be remapped.
feker

Keychron V10

The keyboard I just bought last week. I've also been eyeing Keychron, especially the Q8 and Q10 Alice layout keyboards, but their prices are too high. Don't know why Keychron's Alice layout keyboards are all wired. After comparison I ultimately chose the lower priced V10.

This keyboard has the currently popular rotary knob in the top left, and a column of custom macro function keys on the left, making the left and right more balanced than the Feker. Also Keychron has the best Mac support among domestic brands, very satisfied with it so far. The only downside is it's wired, occupying one of my MacBook Pro's USB-C ports. If Keychron releases a wireless Alice keyboard someday, I'll buy it immediately.

keychron

References:

Core Data with CloudKit Part 4 - Debugging, Testing, Migration and More, https://www.fatbobman.com/posts/coreDataWithCloudKit-4

How to run on iOS 17 Device using Xcode 14, https://stackoverflow.com/questions/76412754/how-to-run-on-ios-17-device-using-xcode-14