Smart.fm: Developing a Great Experience
Part of the Smart.fm iPhone App Story
Update: The app was just released. Download it from iTunes now.
When last we posted about the Smart.fm iPhone app the team had moved from design into development. In the few months since we have been hard at work bringing our ideas to life. The combined team, working across many time zones and many miles of ocean collaborated almost daily. We tackled issues on the server side. We tackled issues on the device. We tested scenarios and we tweaked the design when implementation revealed new ways to solve problems. During app development I’ve taken note of some themes that arose time and again. Here’s four that stood out.
A great experience is responsive
Software that looks good and works right will fail if it is not fast. With a mobile experience this is especially true. Mobile devices are inherently more resource constrained than PC’s. Users expect to dive into an app on their phone, complete a task and then get out. Seconds count. Heck, milliseconds count. In building the Smart.fm iPhone app the team likely spent more time on performance tuning than anything else. As an Internet connected service, the app is constantly downloading information over the network. We had to find techniques to download just what’s needed in the moment. API tuning improves download times and client-side caching reducing the amount of downloading needed. The final design for data synchronization results in the user seeing some shorts bursts of network activity while browsing around. Taking advantage of this pattern, the team came up with a clever “loading” animation. If we did our job well, the burden of waiting for a download will actually help to make the app feel even more fun!
A great experience is correct
The Smart.fm app is designed to work a lot like the iPod app. A user has numerous goals with many items. They select a goal and begin studying it with the learning game Alexa described earlier. If a user leaves the game, either by returning to browse goals or by quitting the ap
p then their state needs to be saved and resumed at a later time. In addition, the user’s study progress needs to be synced back to the Smart.fm web site so that they can continue learning on a PC. And wait! What if the user studied that same goal, or another one in the mean time… download that progress and figure out the user’s total progress across all goals. And wait! Since goals are “alive” other users might have added new items, so download them too.
What seems like a pretty simple app design on it’s surface reveals quit a bit of complexity during implementation. I think we all know of applications that offer plenty of utility are are unusable due to bugs. It goes without saying that errors in software are not a good experience. During the development of this app we worked diligently to test and remove bugs…. and test and test and test. The hope is that our users get an error-free experience that lets the fun shine though.
A great experience is choreographed
Brandon Schauer always talks about the cupcake. In fact, I find it hard to get him not to talk about it. And to be honest, I love the metaphor; it’s infectious. The concept is this: a cupcake, a birthday cake and a wedding cake are each perfect in their own scale. A cupcake may be smaller than a wedding cake, but it is no less delicious. You take a bite and are completely satisfied. The cake, the icing and the decoration on that cupcake is just right. Perhaps you’d like a second helping, but you don’t wish you were eating a slice of birthday cake. The cupcake is small, but complete.

During the development of this iPhone app the team had to cut some features due to time and resources. In deciding what to remove, and how deeply to cut, we need to ensure that the app was still tasty and satisfying. A Smart.fm app that didn’t allow a user to study would be incomplete for sure. But what about some of the social network aspects of the service? Could those be removed from the first version without it feeling lacking? What about multiple types of quiz games… do we need those too? What’s the cupcake of a Smart.fm iPhone app?
A great experience ships!
I’m happy to say that the iPhone app has been submitted to Apple and is very close to being in your hands. There is always a time at which a developer must decide that their work is refined enough for customers to use. The hope of course is that this time is not dictated such that the application is incomplete or full of bugs. Our team was able to work towards a ship date that allowed both the freedom to “do it right” and “just get it done”. Screenshots of the app are available at http://smart.fm/iphone. Early in November we anticipate seeing a smiling Smart.fm owl sitting in the iTunes app store. Thanks for all of your interest and patience!
On a personal note, I want to say that it has been a joy working with the Smart.fm team. Not only does the service live up to it’s name, but the folks who work behind the scenes are some of the brightest I’ve met

There are 10 comments on this idea.
This is awesome, I’m so excited. Can’t wait to try the app. :) Thanks to all of you for your hard work!
Hello from New York,
As a person with a subterranean commute, I would like to suggest that the app include an offline mode that could allow users to study during the substantial amount of time that some of us have with free hands, a free mind and no way of connecting to the internet with out iPhones. This would make a world of difference to me. Hope it can be a reality. Thanks for all of your hard work, and a great service.
Good news Devon, we designed the app to cache items for offline studying. Like you, I have a long commute with limited access to the network. I’ve been having fun studying my lists offline. We also anticipated users who are heading on a long flight and want to study in the air.
Wow, I can’t wait to download it!
Great piece, Dan, and interesting to see how you guys approached the whole iPhone app area. I’m currently doing usability testing for a local iPhone app company and we’re running into similar issues: speed, caching, auto-resuming, look-and-feel—and the user expectations associated with each. Definitely interesting stuff!
If you don’t mind my asking, how did you prioritize which persona to build for first? (i.e. the Commuter, the stay-at-homer, the driver, etc.)
I look forward to checking out Smart.fm, sounds pretty neat.
Felix: We started this project by defining the mobile context. The entire team spent a day workshopping the ideas that make a mobile experience different than the desktop. Once we had this complete, we applied the feature set of Smart.fm’s service to the mobile context. These two tasks brought about our design principles (more about it here). In a nutshell it boiled down to “studying on the go”. The design intended to let user’s who are already studying on the web site take their goals with them and study when there’s free time. New users are able to explore the large repository of goals and find new topics to study. Studying and exploring can happen quickly and supports interruption, a important reality on mobile. A small but important non-study task was the ability to create a new item. Since the phone is always with you, it’s an ideal way to capture photos and create text items for future study.
Seems like a great application. Hope to see it soon in the market.
If you and your team have some more idea, why don’t you take part in the Forum Nokia Developer Conference ’09 to be held in Bangalore this December. This year’s event promises to be very special with live demos, real-life mobile application stars with their mobile applications to win fame and fortune, and much more. http://www.nokiadevcon.in/index.php
Awesome work guys, the app looks worthy of smart.fm experience… motivated me to go out and purchase my first ipod ever (touch with OS v 3.1) This app will be my main use for the ipod. As soon as I get past the error “oops! no internet connection” upon attempting to log in… Any ideas how to fix this issue (ipod touch, full wifi signal strength, all attempts to log in result in either “no connection” or “couldn’t log in” messages)
Ire: offline mode. I don’t know but my smart.fm app keeps accessing the Internet on startup. Quite frustrating.
The app doesn’t seem to sync very well with new goals. It only shows the first goal I added via the web page, and nothing else. It would be really handy to have a manual sync button that I could push to force it to refresh all its content.
Add to the conversation.
Commenting is not available in this channel entry.