Issue 99
Jan 25, 2022

The pain of an unfinished journey.

A few issues back, I told you about the start of my journey in migrating RocketSim away from the Mac App Store. Since then, I have integrated Sparkle for updates, and I'm close to finishing the integration of Paddle.

All good, you would say. Yet, I'm already many hours in, and I'm far from close to the confidence I need to release this major update of RocketSim.

RocketSim is a side project, and my time is only limited. Especially with all SwiftLee related things included, I can't afford to spend much time every week on RocketSim (unfortunately).

When I started the migration, I expected to end up in a better place:
- Bye, bye, Sandbox restrictions
- No more 30% cut towards Apple
- Easier onboarding by no longer needing screen recording permissions
- Being able to offer better pricing options, like buying a license key with one year of updates

The journey itself seemed doable too, yet, I'm realizing now what it means to do such migration for just a side project:

- App Store purchases need to be migrated
- The above point requires me to create a custom licensing integration
- Tools like Paddle don't support one-year-updates licenses, requiring to create a custom backend
- Licence purchasing needs to happen at rocketsim.app
- Potentially, much more support requests related to licensing keys

If you remember, I started this all after getting some negative feedback on Reddit. Yet, this week, I received a lot of positive feedback after receiving multiple emails with positive notes. On top of that: Monthly recurring revenue is growing steadily, so there's not much wrong with my pricing. (Sure, there are always customers that like different pricing).

On top of that: many of the advantages I expected from not having sandbox restrictions turned out to be wrong. I still need screen recording permissions to determine the active Simulator, unfortunately.

Long story short: I decided to postpone the migration and focus on improving the App Store version instead. In the end, it's just a side project, and time is only limited. I did not throw away the code (which is a lot of code changes already), so I'm always able to revisit this later if needed. My learning: don't feel bad to change direction, even after spending much time already, as long as the new direction is the right direction.

I want to end this intro with a fun fact: I wrote this week's article and realized at the very end that I already wrote about the same topic in 2019, haha! I decided to merge both pieces into a new article containing even more quality for you.

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

When working in a team of developers, readability of your code is important. Documentation can be a great tool to help in this case, but only if it actually adds value. Being able to write self-documenting code is an important skill to own and can speed up the development inside your projects.

SPONSORED

Increase your application's performance with rich context about errors and slowdowns in your iOS applications. Get started with 2 free months of Sentry’s Business Plan (the best one) with code: SWIFTLEE

MONTHLY GIVEAWAY

So far, this has been the most popular giveaway! It’s also not a surprise since it’s a great book to win with lots of content from the recently released concurrency framework. I was allowed to pick five winners this time, and I’m happy to announce the following winners: 
  • Francesco Deliro
  • Andrei Vidrasco
  • Orsolya Bardi
  • Norton Pigozzo 
  • Raphael Braun. 
Thanks a lot for joining this giveaway, and stay tuned till SwiftLee Weekly issue 100 arrives in a week with a significant new giveaway!

CURATED FROM THE COMMUNITY

CODE

When you see a new release by the Point-Free team, you know you’re in for a treat. This time, a new parsing framework allows creating readable custom parsers for potentially complex parsing solutions.
Core Data and optionals can lead to surprises. Tom "Tom" Harrington tells us why and explains how you can work around a typical case when working with optionals.
Since I’ve been developing a new SwiftUI app lately, I was happy to see this article by Rudrank Riyam since I was seeking such a solution. It demonstrates a view presentation technique often used in apps from Apple. Rudrank mentions the Apple Music app with an example, but I’ve seen this being used in the App Store app a lot.
I’m thanking Pol Piella for reaching out on Twitter and share me this article. Since his RSS wasn’t listed at iOS Dev Directory, I wouldn’t have found it myself (hint: this is a tip for you if you own a blog as well!). I’m very much looking forward to the extensible build tools release for Swift Package Manager. Being able to run SwiftLint and SwiftFormat on SPM packages without the need for a build phase is essential, in my opinion. Pol takes us through how this will look in Swift 5.6.
An excellent performance improvement is coming to Swift, and Marin Todorov decided to look. Using yield, we can lower the memory footprint of our apps and improve performance accordingly.
I’ve never needed to dive into local authentication myself, so it was a pleasure to read this article by Natascha Fadeeva. I also didn’t know about the Simulator testing capabilities in this regard!

OPTIMISATION

Flo Writes Code invited many other great developers and me from the community to share a tip for iOS developers. The result is a video full of diverse and valuable information that you might like!
Enabling grammar checks in Xcode is a tip that is often mentioned, yet, I feel like many developers aren’t aware this option exists. Feli explains how it works and how you can prevent yourself from committing grammar mistakes in your documentation (and code!)
If you’re using Xcode Source Extensions, you might enjoy this article by Marco Eidinger on how you can use key bindings accordingly.
An exciting tip by Filip Nemecek for testing out your App Icon on an actual device. Using his App Icon Preview, you can generate a URL that you can add to your iPhone home screen. If that’s not ideal for you, another tool mentioned can be a suitable alternative.

SWIFTLEE JOBS

Post your company's job positions for free

Make sure to post your company's open job positions for free at SwiftLee Jobs and reach thousands of developers.
For our Chat SDK team we are seeking an iOS SDK Developer to work on our native iOS SDK libraries. This role is open in our Boulder office and is...
With tens of millions of active users, we’re among Europe’s leading iOS app developers. Our team of iOS engineers has been a driving force in our ascent so far. We...