Progress update

Slow progress

It’s been a period of slow progress here at Robosoul. When I first started producing apps, I was able to release a new one roughly every 3 or 4 months. I was also regularly adding new features with updates to existing apps.

Very little has been released lately, so what’s happened?

Partly this is a sign that things are going well. I’ve already released pretty much all the apps that I wanted to make for myself as a driving instructor. These apps are reasonably stable: they work well and bugs are few and far between. There are a few enhancements I would like to make to some of the apps, but in general I’m pleased with what I’ve made available so far. A major focus now is to maintain these apps in good working order for those who have bought them.

Having said that, there is still much to do, and progress will continue at a very slow rate. I now have 17 iPad apps and 7 iPhone apps to maintain. This is a lot of maintenance for one person, especially when Apple has a habit of releasing major software updates once a year which can have a serious impact on an apps’s ability to work properly.

Some apps need more maintenance than others. A couple are in the process of being completely rewritten as the original code has become outdated and unmanageable, even though only 2 or 3 years old! That’s how quickly things are advancing in the world of mobile software.

With so many apps available and a growing customer base, I also have a fair amount of customer service and technical support to take care of. I recently changed the text on my contact form to suggest that people think carefully before getting in touch. This is not because I don’t want to hear from my customers, but simply because I don’t have time to respond to a lot of emails, not if I’m going to have time to work on the apps as well. Not only does writing emails take up valuable time, it’s very effective at breaking the intense concentration that’s required to work on software programming.

Bugs, bugs, bugs

Prior to the release of iOS 7, I thought bug fixing was a nuisance. I hadn’t seen nothing yet!

iOS 7 brought such major changes that I had to spend the best part of a year tracking down bugs and adjusting the code in my apps so they would continue to work seamlessly.

iOS 8 brought further changes to how things work “under the hood”. More debugging was required, but fortunately not as much as was required for iOS 7. We’ll have to wait and see what iOS 9 is going to bring.

The learning curve

Another thing I’ve been spending a lot of time doing is learning more about programming for iOS. Apple recently introduced a whole new programming language, Swift, which appears to represent the future of iOS programming. This comes alongside a range of other new technologies which affect the way apps are built, and are going to be built in the future.

I feel it’s important for me to stay up with these new developments, even though it is difficult and time-consuming to learn about the changes and how to work with them.

I’m constantly aware of the importance of improving my knowledge of the fundamentals of app design. Most of my early apps were not terribly well designed in terms of how the code was structured. Even though the apps worked well, the process of enhancing these apps and adding new features was hampered by the fact that my original designs - the “foundations” of those apps - were not laid down with future development in mind. This was the result of my inexperience as a programmer, and also the need to just get on and solve an immediate problem without having time to think about what further problems might arise in the future.

This is a major reason why progress in so slow on certain updates to existing apps. I’m held back by design elements which were baked into the original app structure, but which are not well suited to the changes I want to make going forward. It takes time to completely re-write these apps from the ground up, while also maintaining compatibility with the current version so that when the app is updated it does not cause problems for existing users.

This is a common problem in the world of programming, and it is a very difficult thing to get right. I’m taking my time and trying to learn as much as possible before proceeding with major changes to important apps, apps which have become essential teaching tools for many ADIs all over Britain.

Growing pains

I’m also trying to allow time for technology to mature. Apple has introduced a lot of new ideas into iOS recently. While it’s tempting to rush to incorporate some of these new features into my apps as soon as possible, the sensible thing to do is wait until the kinks have been ironed out (and we know there can be a lot of kinks when Apple brings out something new!)

iCloud is a good example. While it’s tempting to start integrating iCloud syncing into some of my apps, the truth is that iCloud is just not good enough at the moment. First and foremost, I am conscious that my apps are used by professional driving instructors who expect to be in control of their saved data. You did not take the plunge and make the move from paper records to digital ones, only to see your valuable data evaporate in an (i)cloud of smoke. When iCloud is good enough, and when I feel I have learned enough about how it works to be able to make it work well for driving instructors, I hope to start integrating it into some apps, where appropriate. Until that time, the waiting and learning goes on.

What’s next?

As usual, I’m afraid I can’t say. I’m working on various things at the moment, none of which are definitely going to see the light of day. I’m exploring some ideas which I think are interesting and which I believe can help drive forward the use of cutting edge technology to improve the way people learn to drive, and to make safer roads for all.

As usual, as soon as I have something concrete to share, you’ll know about it. In the meantime, I will continue to update my existing apps as and when I can to fix bugs, add new functionality, and generally enhance the user experience.