Last month Koby gave an “Intro to iPhone development” at the Houston Open Dev User Group (you can watch it here). This month Koby was back to show how to write the same “Twitter search” app using MonoTouch. You can watch his presentation here:
iPhone Development with MonoTouch, by Michael Koby
While it’s sort of nice to write C# code instead of Objective-C, the big thing about using MonoTouch is that one can reuse a lot of the code (such as business logic) between iOS and Android applications.
Besides Koby’s presentations, you may also want to check out these two articles that show you how to build a “Twitter search” app, both for iOS and Android:
#1 by Alper on December 6, 2011 - 8:36 am
Another option would be to write business logic in C# and expose services that return JSON. Both iOS and Android apps should be able utilize those services. Is that correct?
On the other hand building a native app to search twitter on multiple platforms sounds like too much work. I’d rather build a mobile website or a phonegap/sencha touch etc. app if a mobile app is required.
Of course, as always it depends on your situation. I generally would like to avoid maintaining a code base per platform for the same app.
#2 by claudiolassala on December 6, 2011 - 9:37 am
Yes, both iOS and Android apps can consume API’s that serve up JSON. In fact, I’m doing that in my current project. However, there’s still certain logic that resides on the device (simple validation, navigation, and such), in which case it makes sense to try and minimize/reuse the codebase.
Of course, a “twitter search” app here just happens to be the type of app chosen for the example built, so yes, each situation may call for a different approach. 🙂
#3 by Rca ieftin on January 5, 2012 - 3:09 am
MonoTouch may be OK.
It seems like Apple’s motive is to discourage technologies that abstract away phone specific API’s and make it easy for developers to write once and compile/deploy on multiple smart phones. It makes sense for Apple to do this since iPhone is the market leader, and most apps would need to target iPhone first before other smart phones, so why make it easy for them to be ported to other smart phones, and thus eroding Apple’s huge lead in the number of apps?
Adobe’s Flash is such technology, but MonoTouch, as I understand, is not so much an abstraction but a C# wrapper around Cocoa Touch API’s; developers still need to learn Apple specific API’s. I suspect that Apple’s may be only targeting the write-once technologies, and different alternate development methods may get different treatments in terms of the enforcement of the rule.
#4 by CraigGaines on February 7, 2013 - 4:41 am
Mono is a free and open source project led by Xamarin to make an Ecma standard compliant .NET Framework-compatible set of tools including, among others, a C# compiler and a Common Language Runtime. MonoTouch allows developers to create C# and .NET based applications that run on the iPhone.