iLuna and New Versions of iOS and Android
With all the previous updates to the mobile platform, from iPhone SDK 2.0 to iOS 7, from Android 1.0 to Android KitKat 4.4.4, iLuna just kept working. It was good, because all those thousands of users could rely on the app. But it also gave me an opportunity to delay the updates. Some of those updates were requested by users long time ago, like, for example, the possibility of exporting information from iLuna into a calendar. The app wasn't even updated for the bigger iPhone 5 screen, so it wasn't using the whole screen on the newer devices.
The year 2014 changed all that. It created a lot of disruption, but it also shifted my attention back to iLuna and its further development.
It all began with iOS users. Those who updated to the new iOS 8 started reporting that iLuna doesn't work for them anymore. Well, it did work, mostly, but tapping on the i button, which would usually display a description for a phase or a sign, produced no result on iOS 8. People were writing that they were using iLuna all the time, and that this problem made them unhappy. I felt ashamed that I didn't test iLuna with the new version of iOS. I had a few months to do that, but those were very busy months: I travelled a lot, and I worked a lot. Besides, iLuna just kept working with all those previous iOS updates!
I decided that this is the time for me to update iLuna properly, and to add to it new functionality. However, the creation of an entirely new version of the app would require a substantial amount of time and effort, because the original user interface was very rigid. It didn't leave any space for new content and new functionality, so I had to come up with something different. At the same time, the complaints from the users kept coming, so I decided that I would quickly fix the old app, so that it worked on iOS 8, and then would concentrate on the new version.
So I took the old code of iLuna and tried to simply run it with the latest version of development tools. Unfortunately, too many things have changed on the iOS platform since the time I was running that code last time. There were mysterious error messages here and there, the mended version of the app looked a bit ugly, but I did manage to make it working – or I thought so. The process of submission to Apple of such an old code was long and painful, I was forced to do a few changes, to be able to jump through all the hoops, hoping that everything will still be working... But when the fixed version of the app was released, it was a disaster. Only the Now view was available. Tapping on either Day or Month tabs produced no result, and those are the important sections of the app. Worst of all, I wasn't careful enough, so my "fix" became available not only to the users who updated to iOS 8, but to all the other users as well, including those who were happily running the old version of iLuna. That was bad.
The next decision was to create a new version of the app from scratch, so that it worked and looked right on different devices with various screen sizes, and in addition was flexible enough for adding new content and functionality in the future. However, to reduce time to market, I decided to delay adding those new features until later. Right now, it was essential to simply restore the normal work of the app, offering the old content and functionality. So I mobilised myself and worked very hard for several weeks, doing my daily job for the whole day, then spending most of my time re-creating iLuna in the evenings and on the weekends. To make sure the app adjusted to different screen sizes, I used auto layout - the feature of iOS that became available in version 7. My mistake this time was that I made that auto layout very, very complex when working on the Month view, and that I only tested the new version of the app on devices with iOS 8.
When the new 2.0 version of iLuna was finally released, I was delighted to get a few emails from iOS 8 users who were very happy about the app. However, after that I got a number of emails from those people who had old devices, like iPhone 4 or iPhone 4s, and who were still running iOS 7 (because iPhone 4 simply cannot be updated to iOS 8, and iPhone 4s's performance with iOS 8 is very bad, so people prefer not to update). Those users complained that the new version of the app freezes and doesn't work for them at all. When I investigated the problem, I realised that the culprit was that very, very complex auto layout in the Month view. Auto layout is much slower on iOS 7, and especially on older devices. In the case of iLuna 2.0, it was so horribly slow that could take several minutes for the Month view to get laid out. The app was frozen for all those minutes, so the users said it didn't work. Well, technically speaking, it did work, but it was atrociously, unusably slow in the Month view. So more work was needed.
I returned to the Month view and deleted from it all the complex auto layout. I then had to figure out how to manually configure the calendar for different screen sizes. It required quite a bit of code, and a substantial amount of time, but I did it. Finally, iLuna 2 worked on all the devices, with both iOS 7 and iOS 8, and I could relax a little bit. The app still offered no new information and no new features, but some of those were planned for the very next update.
At that point, however, Android 5 Lollipop reached some of the users of iLuna for Android. Again, the preview version of Lollipop was available for several months, and I could have tested the app with it, but, first, iLuna just kept working through all the previous Android releases, so I didn't expect any problems, and second, I was quite busy with iLuna for iPhone, as you can see.
So one day, when I thought when iLuna troubles are over and I can have evenings and weekends for myself, I started receiving emails from Android users saying that iLuna doesn't work on Android 5 at all. It just crashes on startup. More work was ahead. As a result, there is a new version of iLuna for Android that works on the new platforms, (Android 4.0 and newer) while those running the older versions of Android can still get the old version of the app.
I will tell you about my on-going work and my plans for both versions of iLuna in the next post. For now, here are the links to the updated apps:
iLuna for iPhone
iLuna for Android