I haven’t been sitting on my tail during the last six months since T-Zero 2.0 shipped. I have three projects in the works. The first is a quick app I’m calling YachtSync. Like HeliHeadspeed, it will have a very narrow appeal to a very specific group of users. The other two apps are not ready for disclosure, but I expect at least one of them to drop before Christmas. Unless I get distracted. Again.
I thought it might be interesting to show you guys what goes into an app. Here’s my best recollection of YachtSync work since I started it a week ago, including testing:
- Core functionality: 15 minutes
- Productization (turning that functionality into something usable): 2 hours
- Polish coding (animations, appearance decisions, making sure everything feels right): 8 hours
- Media selection and modification (artwork, sounds, etc.): about 4 hours so far, and I still don’t have an icon typeface
- App store registration: 2 hours. Seriously. Most of that to find the web page to register a new bundle ID. And to figure out how to change the app name in the bundle, because Xcode locks you into a name the very minute you start work. But I’m not bitter.
Most users would not believe the mix of time spent on functionality, productization, and polish, but most developers probably recognize those ratios. Both of the other two apps I’m working on are fully functional, and have been for a while. All the work that remains is productization and polish, and in some cases, that’s hundreds or thousands of hours of work.
Speaking of typefaces, I spent over an hour last night looking through examples on-line. Obviously, for an app that probably won’t sell more than a thousand copies (over several years), I can’t spend hundreds or thousands of dollars to license a font from one of the big pro houses. One of the biggest problems holding me up is that a lot of amateur-made fonts are licensed as “free for personal use”, which means I have to pay for them.
Which I’m totally cool with, by the way.
But almost none of these guys have a way for me to pay them. And their contact information is a screen name, which has problems well beyond figuring out who they are. So I’m standing here with money in my hand and can’t figure out who to pay.
Please don’t do this to yourself.
Anyway, look out for YachtSync coming up soon. I guarantee it will probably be useless to you. But not everyone.
When running T-Zero on iOS 7 Beta, the keyboard cannot be dismissed when naming a timer. The only workaround is to force quit the app using the app switcher.
Again, this is a bug on iOS 7 only. Right now, because of the way Apple runs the whole beta thing, I cannot get a fix into the store yet. There will be a very narrow window before iOS 7 releases when I can submit a fully tested build to the App Store. Hopefully the app review gods will be smiling on me and you’ll never see the bug in real life.
I’ve been seeing reviews from users who are experiencing a bug which causes the timer to not update for a period of time, followed by it suddenly correcting itself. I’ve finally gotten a good description of the bug from a user and I know what’s going on.
To understand the bug, there’s something you need to know about how iOS launches apps.
When you quit an app, iOS takes a screenshot of that app’s screen and saves it. The next time you switch to the app, that screenshot is displayed while the app is loaded. Once the app has finished loading, it takes over and updates the screen.
I now have enough information to determine that for some reason, T-Zero is experiencing some extremely long load times. They are seeing the old screenshot being displayed by iOS and thinking that the app is displaying incorrect data. When the app finally loads, they suddenly see correct information.
There are several reasons why T-Zero users could be experiencing long load times. The primary one is that an app could be loading and configuring a lot of resources at once. T-Zero doesn’t doesn’t do this, at least not intentionally. It loads its interface, which is minimal, and then loads the user’s preferences and timer data, a small file that’s normally under 1 kilobyte.
So while I understand what’s happening, it’s going to take some research to find out the exact cause. Also, since haven’t been able to recreate the bug myself, it will be hard to determine if I’ve actually fixed it.
So, if you’re having this problem, be patient, it’s my top priority, at least as far as doing unpaid work is concerned. And if you’d like to help, send me an email. I could use a few beta testers.
Featuring iPad support. No more crappy 2x mode for iPad users!
Should be in the app store soon.
I just found out today that yalls crash logs are automatically sent to Apple, where I can pick them up and see whats causing crashes out there in Customerland. This is great!
Looking over the logs, most of the crashes (62%) are happening on start up, before my code is even running. The only cause I can think of for this is a corrupted file somewhere in the package. Deleting and downloading should fix those problems. If not, let me know.
Most of the other crashes were happening after loading the timer data, scrolling to the appropriate screen, and then loading a non-existent timer from the data. This code does not exists in the rewrite, and is in fact now handled completely differently. So that crash should be gone.
Im at the point in the rewrite where its just polish, polish, polish. Right now Im working VoiceOver support, which will allow sight-impaired user to use the app. In fact, my goal is to reach the point where a completely blind user can still use the app.
Still working on the re-write of T-Zero. Hopefully I can get it done in times for New Year’s Eve.
Also, I’ve gotten a Twitter account for the app, at @TZeroApp. The app’s official hash tag is #TZeroApp.
Total downloads: 680,605
Biggest day: 4,741 on November 25.
Some time yesterday, T-Zero passed a half-million downloads.
A few fixes…
First an iPhone 5 specific bug causes the Options table view to not resize to the bigger screen, leaving a white bar at the top of the display. This is been fixed and will be resubmitted soon.
Second, also on the options screen, the typo “Whan sharing” instead of “When sharing” has been fixed.
T-Zero 1.5 went live on the App Store on Thursday while I was away on travel. I’ve already seen a comment complaining that Facebook support is missing. In order to enable Facebook, Twitter, or Sina Weibo, you must enter your log on information in the Settings app on your device. (In order to enter your Sina Weibo info, you must have a Chinese keyboard enabled.)
Support for a 4″ screen is also enabled. I don’t have access to a 4″ device so I can’t confirm that it’s behaving appropriately in the real world. If somebody with an iPhone 5 could drop me a line and let me know how it’s working I’d appreciate it.
And in other news, the app is undergoing a complete re-write to take advantage of Storyboards, an iOS 5+ only feature. As part of this, I’ll also consider including iPad support. I will probably continue to support 5.x for at least 6 months or until 6.x adoption hits 90% or so. It’s already at 38% and increasing rapidly. I’m also thinking about a paid version with a killer new feature.
As always, thanks for your support.
I discovered a bug in T-Zero last night and had to resubmit this morning. That means T-Zero has lost its place in the approval queue and is now less likely to be ready when iOS 6.0 arrives.