You have a great idea for a smartphone app. What is the process of putting it together? How tech savvy do you have to be? And then what is the process to get the app into an app store?
Aside from client work, we've got several successful websites we've built independently. One of them, and my favorite, is Rainy Cafe. Lifehacker described it as, "a simple little site that plays both the bustle of a coffee shop and the soothing sound of gradually increasing rainfall." It's essentially a white noise generator. The site gets around 100K visitors per month. We decided it would be the perfect site to translate in to an iOS app.
Rainy Cafe: Ambient Noise to Soothe and Boost Productivity
We applied for a developer account with Apple. To prove the legitimacy of a business, Apple requires a Dunn & Bradstreet number. This was our first stumbling block. It takes weeks to be verified by Dunn & Bradstreet, and strangely, it takes weeks for Dunn & Bradstreet to update their database with Apple. Just getting our developer account took over a month because of that. During that time, we put the app together. We used PhoneGap to translate our existing web assets in to an iPhone app. It was remarkably simple, within an hour we had a working app. That's spectacular since we previously had no iOS development experience. Adding native features like background audio support wasn't difficult either. PhoneGap community's support is excellent. Any question we had during development was just a Google search away.
Once we had the app built, we needed to test it. While we knew the app worked in Apple's software simulator, we wanted to be certain it worked in the real world. That's where having an approved Apple developer account becomes a necessity. To load an app on to an actual iOS device, the device must first be "provisioned" by Apple. It's a straight forward process of getting the device recognized by Apple, "code signing" the test app, and then launching the app on your own device. It's necessary, not just important, to test on real devices. The iOS simulator is great but imperfect. We have noticed some idiosyncrasies between the two environments.
Since our app was simple, we didn't have any snags when testing, and we're ready to submit our app for review by Apple. It took five days for them to our review app... and reject it. They found that our Rainy Cafe app provides "a very limited amount of content and a very limited set of features" specifically because it "only contains two ambient noises."
Since our app had exactly the right amount of features to accomplish its goal, we opted to suspend development on the iOS app. When we can think of new features that make sense, then we'll resume development. Even if we did, it would still be a gamble. What if we add a sleep timer? Or a new selection of sounds? Would those things really add to the user experience? Would Apple approve the app then? Ultimately, Apple is the gatekeeper to an app's success, which makes building an app a gamble.