Hi Nic Thank you for the thorough answer - and I will survive the double post.. ;-)
We have an iPhone app developed in Objective-C (though I haven't been too much involved in that), and during this week I am shipping my first iPad MT app for "production" to the first customers of that specific app. So I have been using the last months developing with MonoTouch - and must say I'm not keen at going "back" to Objective-C. So I thank you for you offer to compile the app, but already have ipad, macbook and MT license so that should not pose a problem. I would prefer c# over Objective-C any day. Have not looked at MonoTouch.Dialog yet - but will do. The reason I thought up the idea of compiling a c# dll with MT was that someone (I think maybe you) have mentioned in another thread that Apple usually demands apps submitted to app store to be built with the latest SDK. As MT will never get there when we switch to IOS 5, I thought a IOS4 library built with MT could be utilized by a IOS5 Obj-C app, and that way reach AppStore as built with IOS5 SDK. Not a pretty solution, but I would really hate to have to do the business logic once again. To the argument of Android. I am sure we at sometime will have customer demand for an Android tablet version as well, and as Windows Phone/Windows 8 hits the tablets we will probably need to go there as well. So having to support all these platforms it is obvious that Xamarin would be the way to go. Right now it's just hard to convince management that Xamarin is stable, and doesn’t burn out like MT has just done. Somehow coding the app in Objective-C seems like the most sure bet. But I am also convinced that development time will be not only doubled as we need to implement the logic again. More looking at 3-4-5 times I would guess. Hopefully things are much clearer when my summer holidays are over - and the folks at Xamarin are getting ready to boot up a release party. For now, my bets are on MT/Xamarin - but I'm not sure management are convinced yet. Even though I'm sure it's the fastest path to market for the new app. Best regards /Anders -----Original Message----- From: Nic Wise [mailto:[email protected]] Sent: 29. juni 2011 11:20 To: Anders Kjærgaard Hansen Cc: [email protected] Subject: Re: [MonoTouch] Should I use MonoTouch, Xamarin or Objective-C for my next iPad project? All IMO (In My Opinion) of course: [damnit, I replied, not reply-all - sorry Anders for the double-up!] > My current situation is that we have a full C# winforms application that > has a pretty big Business Logic Layer and service interface with a > webserver. I need to port this application to iPad as well. So this is a large, "new" iOS app? Have you done any iOS stuff before? > Since I have this large codebase in c# MT seemed an obvious choice. I would > just need to create a new data and view layer. But, being unsure if MT will > ever make it to IOS5, and unsure if current MT will be able to build to IOS5 > (though some forum posts seems to indicate that it might will) I am not sure > MT would be the right way. You have a point there. Except if you pick MT, you can (so we are told, and I don't see why not) move to .NET for iPhone (ie XamarinTouch) with a recompile. So you choices are really Objective-C or .NET. MonoTouch is now effectively unsupported from Novell/Attachmate, so might as well be dead (tho they are still selling it, and if you buy it I'm told you CAN get a license). .NET for iPhone is "coming", but not released yet, tho once it is, I expect the usual fanatical level of support and product quality that Novell (ie, Miguel, Joseph, Geoff and all the others) gave for MT. Same people. Same attitude. > I probably need a prototype somewhere around september – so just wating for > Xamarin doesn’t seem valid either. Though development first will start in a > month or so. > OK, it's July now (almost), and I assume you've not started yet? If you have _no_ iOS experience, then you are also going to be learning the frameworks, which is not a trivial thing. A basic prototype by september - the end of september - might be reasonable... Oh, and depending on what you app does, consider using MonoTouch.Dialog - if you have lists (lots of lists), then you'll save literally WEEKS using it, rather than using the stock UITableView stuff. > Is it possible to take a C#/.Net dll, use MT 2.4.2 to compile this to an > Objective-C library that is then usable from an Xcode/Objective-C app? Yes, from what I know you can do this, however I can't find an example of it, so maybe I imagined it :( But why would you want to? You are then dependant on MonoTouch _anyway_, so you might as well do the rest of the app in it, as you are then working in a language and framework you know. > That way I might get best of both worlds as the state is right now. I will > be able to reuse my c# logic, but not be dependent on MonoTouch or Xamarin > to support IOS5 before my deadline. I suggest you do the following: 1. If you must, do a spike[1] and see if you can call C# from obj-c. If you can, and you really want to do this, do it. I dont recommend it, personally. Objective-C is a "nicer" language than it used to be, but it's not (IMO) as nice as c#, especially if are already familiar with C#! [1]: http://blog.agilebuddy.com/2009/11/what-is-a-spike-in-scrum.html 2. Get the MonoTouch 4.0.3 (latest) trial [ http://monotouch.net/DownloadTrial ] and the current iOS SDK (4.x, NOT 5.x). Start writing your app in the simulator. You will loose nothing by doing this, as the simulator is fine for everything except the final push to get the app "finished", and .NET for iPhone is designed to be 100% (or very very close) source-compatible with MonoTouch. 3. Read up on the iOS5 API changes you might need, and either do the bindings yourself, or just "learn" then (maybe write some obj-c code if you need to, so you know how to use the api's) 4. If you get to the point where you want to put your app on a device, email me or ask on the list. I'll happily take you code and the UDID of your iPad(s), compile it up for you, and send you over the compiled application. Not ideal, but it would get it on the device (obviously, all of it would be under NDA). If I can work out how to do it in a sane manner, I may even open up my Mac Mini to SSH, so you can log in, pull the code down, compile and take the .app yourself. Since I got an AppleTV, my Mac Mini (which used to be my media center) is feeling a little lonely. 5. Buy .NET for iPhone (from Xamarin) when they release it. and get on the betas. As Miguel pointed out yesterday [ http://tirania.org/blog/archive/2011/Jun-28.html ], they are making excellent progress on it, so having it _released_ by the end of summer, which is officially the end of August, sounds doable. It's already compiling complex apps (Tweetstation is not a trivial app), so it's well down the path. "There is still a lot of polish left to do. We are working as hard as we can to have Preview releases in your hands, but we feel confident that we will have a great product for sale by the end of the summer. We hope you will all max out your credit cards buying it." Either way, based on what he's said, I'd expect a beta / preview by the end of July for release in September. (That said, I don't work for Xamarin, not do I know anything outside of what's been said publicly, but I have been working with their product - and by extension, them - for 12 months, and they have been fantastic) As .NET for iPhone is targeting iOS5 from the start, they might have to wait until iOS 5 is RTM before they can actually start selling it (NDA and all that), but from what'd been said in public, I don't have any doubt they will be on track with it. Hope that makes some sense. N _______________________________________________ MonoTouch mailing list [email protected] http://lists.ximian.com/mailman/listinfo/monotouch
