iCircuit: From Java to iPad in Two Months
One of the great things about building a developer platform is that you never know how people will use it. We’re always excited to hear a new story about the apps people are building with MonoTouch and Mono for Android.
This week we launched a new home page for MonoTouch, and we were super proud to include a short video of indie developer Frank Krueger talking about his experiences using our platform:
As a solo developer, Frank used MonoTouch to build an incredible app called iCircuit that has been very successful, sells like crazy, and was even featured on iPads in Apple Stores around the world.
Frank’s video turned out so well, and Frank is so passionate about MonoTouch, that some people even asked us if he’s a paid actor! (He’s not — though we’re going to at least send him a bottle of wine for spending a morning in front of a video camera. Thanks Frank!)
It’s hard to capture all the details of Frank’s story in two minutes. And so we decided to create a real, honest-to-goodness case study. We hope you enjoy it, show it to your boss, and use it as a reason to give MonoTouch a try.
If you have a story you want to share with us about using MonoTouch or Mono for Android, or you want to appear in a future video, please let us know!
Xamarin Hero: Frank Krueger and iCircuit
MonoTouch is not just for experienced C# and .NET developers. Windows Mobile developers can easily justify a decision to use Xamarin’s MonoTouch and MonoDevelop to move a Microsoft Windows Mobile or Windows Phone application to an Apple iPhone or iPad. But why would someone fluent in Objective C and the CocoaTouch framework want to travel that route? Frank Krueger, the developer of iCircuit, a digital and analog circuit simulator for the iPad, has an answer.
When the first iPhone was released in 2007, Krueger was taken with Apple’s new device. As soon as the company announced it would accept applications from third-parties, he knew he wanted to participate in what promised to be a fast growing mass market.
Krueger had always thought of himself as a C++ programmer, so that was the language he chose for his first iPhone apps. ”Objective C has this funny mode called C++ mode,” he recalls. “Though it seems stupid in retrospect, I was willing to learn to program the iPhone in C++, but not Objective C.“ He wrote three apps for the iPhone, but as they grew in size the programming became “torture,” Krueger says. And then MonoTouch came along.
MonoTouch Changes the iPhone and iPad Game
The release of MonoTouch completely changed his game, says Krueger. “It was love at first sight.” With MonoTouch, he could replace Objective C and C++ with the high level C# language and the rich class .NET framework libraries. MonoTouch also included C# bindings for all of the CocoaTouch APIs, which, along with MonoDevelop, a free, open source interactive development environment designed for C# and other .NET languages, gave Krueger the syntax checking, debugging, and API help that are familiar to anyone who’s used an IDE.
“C++ and Objective C are fine for doing UI (user interface) implementations, but when it comes to talking to a network or a database that’s where they fall down,” says Krueger. “The iPad and the iPhone are mobile devices. When you use them, all you want to do is talk to databases and the network.” With MonoTouch, he says, it is a breeze to do both thanks to core libraries such as System.XML and System.Net. Developers also get the benefit of C#’s modern language features, including memory management, reflection, type safety, the popular LINQ (Language Integrated Query) library, and most important of all “discoverability, ” the ability to explore the iPhone CocoaTouch APIs through an IDE without having to search Apple’s online documentation. “I realized I wasn’t as good an iPhone developer as I thought I was,” Krueger says. “It took MonoTouch to show me that.”
After creating several “two- to three-screen” iPhone programs for the Apple App Store with MonoTouch, Krueger decided it was time to try something bigger. With a master’s degree in electrical engineering, he had always been intrigued by the free Circuit Simulator Java applet, which its author, Paul Flastad, had written to help students explore the behavior of digital and analog circuits. Krueger wanted to make it work on the newly released iPad. He gave himself three months, the average time it took him to write one of his 99-cent apps.
Java Applet to iPad app in less than two months
Krueger licensed the Circuit Simulator engine from Flastad and then set about building what became iCircuit. He first translated the engine from Java to C#, and then built his UI. The completed application contained 8000 lines of code, split equally between its core logic and its UI. He was done in less than two months. “All thanks to C# and MonoTouch,” he says. “I can’t remember when I wrote such a large app in such a small amount of time. I was basically coding as fast as my fingers could type.”
Support from the MonoTouch team was “mind blowing, stellar,” he says. I think part of my love of MonoTouch is my love of that community.”
Krueger released iCircuit in August, 2010 to positive reviews. By then, the Apple app store contained more than 300,000 apps, but that fall, Apple featured iCircuit on its “Apple in Business” site and the Register named it one of its top 119 must-have apps for admins, coders and geeks.
Today, Krueger is at work on iCircuit versions for the Mac and for Android devices. For the Mac port, he uses MonoMac and for Android he uses Xamarin’s Mono for Android. “The three most popular platforms right now – iPhone and iPad, the Mac, and Android — all have solutions from Xamarin. You come up with a neat app idea, you write your app in a language you love, and then you sell it to people. It’s a great system.”