Development Musings for Health Notes 2.0 (Part 6)

Published on

Get weekly handpicked updates on Swift and SwiftUI!

The final stages of a project are often the most tedious.

In the past 10 or so days, my main tasks have been bug hunting, performance improvement, repeated testing of data stability, and the even more tedious work of preparing documentation.

Submitting to the App Store, however, went unexpectedly smoothly, with only one hiccup. Apple asked me to confirm that I wouldn’t misuse user data, and after a clear response that I wouldn’t, the submission was approved. This makes me think back to the end of last year when the launch of Health Notes 1.0 kept me busy for over 10 days.

StoreKit in XCode 12 is incredibly convenient for debugging in-app purchases. In the final stage of development, I divided the app into a basic and a professional version. The basic version actually meets most everyday needs. Thanks to StoreKit’s simulated environment, I managed to develop and debug the in-app purchases without any sandbox testing, and it also worked perfectly after launch. This greatly improved efficiency!

During this nearly two-month development process, I didn’t take many wrong turns. What really drained my energy was outwitting the bugs in iOS 14 and SwiftUI 2.0. Many strange issues only became evidently system-related after repeated checks of my own code, and then I had to figure out how to reproduce the issues with the least amount of code to confirm them. Since WWDC 20, I’ve submitted over ten pieces of feedback to Apple. More than half of these have been resolved in subsequent version updates.

Below are the third-party libraries I used in this development. I will soon provide detailed introductions to these libraries:

  • SwiftUIX
  • Charts
  • Introspect
  • ZIPFoundation
  • SwiftUIOverlayContainer
  • SwiftDate
  • MarkdownView

Adapting to the iPad was also more work than expected. Although SwiftUI provides great convenience, there’s still quite a bit of work to do to fully utilize the features of the iPad.

Localization was also a goal in this development. It wasn’t very difficult, but it was labor-intensive.

Explore weekly Swift highlights with developers worldwide

Buy me a if you found this article helpful