It has taken over three years, but my first app Eyes-Free Fitness has gone live in the app store! I wrote it in RubyMotion. The project involves a team of people. Apple has given us quite a Thanksgiving present.
In June of 2014 I attended a tech event at the Associated Services for the Blind. A woman named Lynne Maleeff who works for Apple though not in this capacity battled an unruly crowd and discussed Apple technology. I remember sizing up the situation and trying to play defense, helping a few random users in the back with their problems so she wouldn’t have to. A few of us went out for lunch afterward, and Lynne introduced me to her friend Mel.
Mel Scott started BlindAlive to produce accessible audio workouts for the blind. She noticed that even if workout apps had VoiceOver accessibility, they assumed that the user could see the video. At the time I had given several speeches about RubyMotion, and planned to write an app, but hadn’t started on one yet. I agreed to write her app on the spot.
Mel and I began conversing. This happened in June of 2014. We threw ourselves headlong into the project. I met Chris Cox and Lisa Salinger. Chris writes the web site and the API which the app uses to get data. Lisa does customer support. A few others worked in the background, but the four of us had weekly Skype meetings, and slowly but surely the app came into existence.
I could never have written the app if not for RubyMotion. I have blogged and spoken about it a lot, and for good reason. I find Ruby a more expressive language than Objective C or Swift, and perhaps more importantly I far prefer using Emacs to Xcode. If you check Xcode’s reviews you’ll see why. Had I not discovered RubyMotion I would have probably decided to devote my efforts to other activities. Recently, Amir Rajan has taken over development, and I have good hopes about this. He has already proven himself by writing the extremely popular game A Dark Room, which has first class accessibility.
Writing an app doesn’t just mean writing code, it also means dealing with Apple’s way of doing things.
Fastlane helped with some additional tasks, but I still spent far too much time battling with Apple’s developer portal and iTunes Connect. Sometimes it came down to accessibility issues, and a few times they even fixed them upon request. Other times it simply came down to Apple making things difficult for developers. I’ve begun to understand why many prefer Android development, but I also understand the reason for Apple’s curated approach. In either case you can’t do anything but accept it. I do feel I have some special cause to complain - if sighted developers find it confusing, try closing your eyes and using VoiceOver!
At times the project never seemed to end. I cleared hurdle after hurdle. We brought on testers using TestFlight. In time the app began to fill out and have the same features as the web site. Finally we decided to submit it for review to Apple. They rejected it.
It turns out that Apple requires IPV6 compatibility for any external services. I have no control over this, Chris does. It required him moving a lot of things around. We submitted it again. They rejected it.
They said that the app had in app purchases, but did not provide a way to restore all purchases. This confused me. I pointed out the exact steps to do just this.
- Tap the button that reads Get Workouts
- Tap the button that reads Restore All Purchases
They thanked me for the clarification. The app’s status changed to In Review. We waited…
I woke on Thanksgiving feeling a mixture of emotions. The holidays always make me feel a little cranky, but I also felt happy because of the Mystery Science Theater 3000 Turkey Day marathon. I have fond memories of that going back to high school. I meditated. I’ve begun writing a meditation app. The meditation helped, and my crankiness began to lift. I had some stupid notifications on my iPhone. I ended the meditation in my app, then checked my notifications. The app’s status had changed to For Sale! Apple had approved the app on Thanksgiving!
In shock I searched the App Store and sure enough I saw it: Eyes Free Fitness. It felt surreal after all this time. Mel and I had an excited chat amid our holiday gatherings. MST3K played in the background. Then it hit me. I did it. I had created something from nothing. I had my first app in the App Store. I felt thankful.