Cryptical 4.0...and a look back
Today I released a new major version of Cryptical, my little password generator for iOS. Cryptical 4.0 (re-)adds1 the ability to exclude specific characters from selected character sets. I modernized the interface a bit, using a more consistent look over all screens that fit the current version of iOS, completely overhauled the Batch Generation screen and also replaced all of the icons with newer, better designed alternatives. Additionally there are plenty of other improvements and bug fixes. So all in all, it is a solid new version.
Cryptical is now over 10 years old. I released version 1.0 in August of 2010–today it is the oldest app of mine still available on the App Store. Of course it did not remain unchanged over time; it received plenty of updates. Back in 2010, “Lite” and “Pro” version were a common thing–there was a free “lite” version with a reduced feature set, and the paid-upfront “pro” version with all the features and without ads. For ads on the free version I initially used AdMob, but quickly replaced it when iAd2 became available. It was the early times in the App Store and business models were still sorted out. Cryptical featured a pixel-perfect custom interface, made by myself in Photoshop. This is what we did, back then, and honestly it did not look bad.
I quickly realized though that I was cannibalizing sales of the pro version with my own light version. The feature set of the light version was “good enough” for most users, and they did not seem to mind the ads. This left me with little choice. If I wanted to have any meaningful revenue with the version paid upfront, I had to remove the free version–which I did in 2011.
The app remained largely unchanged until 2015, when a bug occurring in iOS 8 forced me to either remove the app from sale, or supply an update. For some reason the launch screen animation did not start3, which meant users could not use the app at all on iOS 8. I received some angry emails about it. For a short time I thought about simply removing the app from sale, but I actually liked it. I loved the name, the concept and used it myself all the time. Browsing the App Store for competitors, I quickly realized that nothing like Cryptical existed–most of them were badly designed and/or lacked features. Given the age of the code base, however, just fixing the bug would have been impossible. I had to rewrite it. I just had switched to a new job, writing Swift full-time. And so I rewrote it in Swift. I redesigned the interface to get rid of the skeuomorphic design and matched the “flat” look of iOS. And since I no longer saw much of a point of charging for a small app like that, I made Cryptical free, with all its “pro” features.
Over the years Cryptical received a few more updates, mostly bug fixes and changes to adapt to new iOS devices. The last update was in 2018. And then, in December of 2020, I received an Email vom Apple:
“Action Needed: Your app’s compatibility with iOS and iPadOS - We noticed that your app, Cryptical, was built using the iOS 8.4 SDK or earlier. As a result, your app cannot be signed with our latest App Store code signing certificate, which will be required for apps to launch in upcoming releases of iOS 14 and iPadOS 14.”
Once again, this forced my hand. iOS now actively started to warn users when they launched the app, telling them in a system alert that “the developer” had to update the app, or it would no longer work with future versions of the OS. Over a very short period of time, I received many, many emails from concerned Cryptical users, all of them asking me to supply an update. As it turns out, Cryptical had quite a fan base, especially in the US. Without me noticing, it had accumulated 1120 5-Star-Reviews, a surprisingly large number for such a niche app. People who used Cryptical loved it. And so I once again checked out the source repository, and began work.
I first considered only building it with a newer SDK. There was a problem though: I was now using an M1 MacBook Pro, and the code base and most of its dependencies were written in Swift 3. Xcode 12 on macOS Big Sur could no longer convert this version of Swift to the current Swift version, and the last version which could - Xcode 10 - did not run on Big Sur (or my M1 Mac). I had to manually update the code and its dependencies to compile on the new machine. In the end, I rewrote large parts of the app, did a few interface refreshments and prepared Cryptical for future updates.
There is one more addition to Cryptical that I have not mentioned before: it now contains a Tip Jar. Over the years, people often asked me how they could support the development of the app, and I usually told them to buy my other apps. You can now do that directly, in Cryptical, if you wish. Tipping is optional, of course - all features remain free.
So what does the future hold for Cryptical? I have a few feature ideas in the pipeline. While it still remains a hobby project (do not expect weekly updates), I will not let it remain unchanged for two years anymore though. Promised.
It actually used to have this feature back in the first versions, but I removed it for some reason in a later rewrite of the app. ↩
The fact that Apple once had its own mobile advertising framework seems inconceivable in today’s world. Ads have the dirty stain of customer tracking and privacy violation, so it is not surprising that iAd shut down in 2016. ↩
It had a snazzy animation, because, well…that is how we rolled back in 2010. ↩