{"id":369,"date":"2011-10-26T09:00:01","date_gmt":"2011-10-26T16:00:01","guid":{"rendered":"http:\/\/blog.xamarin.com\/?p=369"},"modified":"2019-05-15T12:18:37","modified_gmt":"2019-05-15T19:18:37","slug":"java-to-ipad-in-2-months","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/java-to-ipad-in-2-months\/","title":{"rendered":"iCircuit: From Java to iPad in Two Months"},"content":{"rendered":"<p>\t\t\t\tOne of the great things about building a developer platform is that you never know how people will use it. We&#8217;re always excited to hear a new story about the apps people are building with <a href=\"http:\/\/xamarin.com\/monotouch\">MonoTouch<\/a> and <a href=\"http:\/\/android.xamarin.com\">Mono for Android<\/a>.<\/p>\n<p>This week we launched a <a href=\"http:\/\/xamarin.com\/monotouch\">new home page for MonoTouch<\/a>, and we were super proud to include a short video of indie developer <a href=\"http:\/\/twitter.com\/#!\/praeclarum\">Frank Krueger<\/a> talking about his experiences using our platform:<\/p>\n<p><a href=\"http:\/\/xamarin.wistia.com\/m\/wb2P1z\" target=\"_blank\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-379\" title=\"Frank Krueger\" src=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/764734c6.png\" alt=\"\" width=\"448\" height=\"253\" \/><\/a><\/p>\n<p>As a solo developer, Frank used MonoTouch to build an incredible app called <a href=\"http:\/\/icircuitapp.com\">iCircuit<\/a> that has been very successful, sells like crazy, and was even featured on iPads in Apple Stores around the world.<\/p>\n<p>Frank&#8217;s\u00a0video turned out so well, and Frank is so passionate about MonoTouch, that some people even asked us if he&#8217;s a paid actor! (He&#8217;s not &#8212; though we&#8217;re going to at least send him a bottle of wine for spending a morning in front of a video camera. Thanks Frank!)<\/p>\n<p>It&#8217;s hard to capture all the details of Frank&#8217;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.<\/p>\n<p>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 <a href=\"mailto:hello@xamarin.com\">let us know<\/a>!<\/p>\n<h2>Xamarin Hero: Frank Krueger and iCircuit<\/h2>\n<p>MonoTouch is not just for experienced C# and .NET developers. Windows Mobile developers can easily justify a decision to use Xamarin\u2019s 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 <a href=\"http:\/\/icircuitapp.com\">iCircuit<\/a>, a digital and analog circuit simulator for the iPad, has an answer.<\/p>\n<p><a href=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0804.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-409\" title=\"img_0804\" src=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0804.png\" alt=\"\" width=\"320\" height=\"480\" \/><\/a><\/p>\n<p>When the first iPhone was released in 2007, Krueger was taken with Apple\u2019s 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.<\/p>\n<p>Krueger had always thought of himself as a C++ programmer, so that was the language he chose for his first iPhone apps. \u201dObjective C has this funny mode called C++ mode,\u201d he recalls. \u201cThough it seems stupid in retrospect, I was willing to learn to program the iPhone in C++, but not Objective C.\u201c He wrote three apps for the iPhone, but as they grew in size the programming became \u201ctorture,\u201d Krueger says. And then MonoTouch came along.<\/p>\n<h3>MonoTouch Changes the iPhone and iPad Game<\/h3>\n<p>The release of MonoTouch completely changed his game, says Krueger. \u201cIt was love at first sight.\u201d 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\u2019s used an IDE.<\/p>\n<p><a href=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0793.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-410\" title=\"img_0793\" src=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0793.png\" alt=\"\" width=\"320\" height=\"480\" \/><\/a><\/p>\n<p>\u201cC++ and Objective C are fine for doing UI (user interface) implementations, but when it comes to talking to a network or a database that\u2019s where they fall down,\u201d says Krueger. \u201cThe iPad and the iPhone are mobile devices. When you use them, all you want to do is talk to databases and the network.\u201d 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#\u2019s modern language features, including memory management, reflection, type safety, the popular LINQ (Language Integrated Query) library, and most important of all \u201cdiscoverability, \u201d the ability to explore the iPhone CocoaTouch APIs through an IDE without having to search Apple\u2019s online documentation. \u201cI realized I wasn\u2019t as good an iPhone developer as I thought I was,\u201d Krueger says. \u201cIt took MonoTouch to show me that.\u201d<\/p>\n<p>After creating several \u201ctwo- to three-screen\u201d iPhone programs for the Apple App Store with MonoTouch, Krueger decided it was time to try something bigger. With a master\u2019s 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.<\/p>\n<h3>Java Applet to iPad app in less than two months<\/h3>\n<p>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. \u201cAll thanks to C# and MonoTouch,\u201d he says. \u201cI can\u2019t 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.\u201d<\/p>\n<p style=\"text-align:center\"><a href=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0057.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-411\" title=\"img_0057\" src=\"\/wp-content\/uploads\/sites\/44\/2019\/04\/img_0057.png\" alt=\"\" width=\"538\" height=\"717\" \/><\/a><\/p>\n<p>Support from the MonoTouch team was \u201cmind blowing, stellar,\u201d he says. I think part of my love of MonoTouch is my love of that community.\u201d<\/p>\n<p>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 \u201cApple in Business\u201d site and the Register named it one of its top 119 must-have apps for admins, coders and geeks.<\/p>\n<p>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\u2019s Mono for Android. \u201cThe three most popular platforms right now \u2013 iPhone and iPad, the Mac, and Android &#8212; 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\u2019s a great system.\u201d\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the great things about building a developer platform is that you never know how people will use it. We&#8217;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 [&hellip;]<\/p>\n","protected":false},"author":800,"featured_media":39167,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[379,2],"tags":[9],"class_list":["post-369","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies","category-developers","tag-case-studies"],"acf":[],"blog_post_summary":"<p>One of the great things about building a developer platform is that you never know how people will use it. We&#8217;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 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/800"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=369"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/369\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/39167"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=369"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=369"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}