I was ready to ship FastFigures Finance Calculator version 2.0 to Apple a week ago. The day before I submitted, Apple announced that all new submissions need to be compatible with their latest developments, but I knew we were not. I had a couple of customers report to me that the calculator and table editor weren’t operational any more.
I knew what the problem was. They were built using standard UI widgets from Apple, but they were standard widgets that were meant to do something else. In other words, I hacked them and just knew eventually Apple would break it. Thought I’d at least get more than three months out of it, though.
I didn’t have enough experience at the time to build my own. I do now. I re-built the text area, blinking blue cursor and was lucky enough to find some loupe (magnifier) code to use for enlarging the area where I’m selecting. It took me two weeks — including an intensive 40 hours over Friday and Saturday and a little of Sunday to get the cursor and loupe integrated and then we all spent countless hours testing.
There are real benefits for writing our own. I can do text substitution now (i.e., insert thousand’s separators) and entry monitoring to make sure the user isn’t entering something incorrectly (neither of which will be in this release). But, to be honest, I’d rather not have done any of it.
I did come to a conclusion, though. If Apple wants us to be compatible with a new developments, they should at least have the courtesy of sending to us a final or near-final version first, either the version they think they are shipping or the one they will. First, my entire endeavor might have been avoided if they fixed the thing that broke my hack.
Second, I found countless bugs (and reported them to Apple) in the beta version — which is by definition full of bugs. How do I know which ones I need to hack around and which ones they will fix? With a final release (or close to it) I will know. I can do a much better job and waste a lot less time if Apple — and any other OS vendor — would help me out. I also have the twin worry of my app being rejected because of bugs in the new development. Do we wait? Do we ship? We opted for ship and pray.
We are all learning together. I hope this goes much smoother in the future.