Coffeehouse Thread

7 posts

Forum Read Only

This forum has been made read only by the site admins. No new threads or comments can be added.

Mono on iPhone

Back to Forum: Coffeehouse
  • User profile image
    KevinB

    Hey,

    Thought some of you might be interested in this post over on Miguel de Icaza's blog about Mono running on non-Jailbroken iPhones. I think this sounds like a really great way to get started developing on the phone, and hopefully without needing to invest the money in a Mac or the time in Obj-C.

    http://tirania.org/blog/archive/2009/Jun-29.html

  • User profile image
    rhm

    You'll still need a jailbroken device or a Mac and iPhone developer licence. The only way Mono could run on a non-jailbroken device is if it's signed by an official developer and then distributed either through the AppStore or via ad-hoc distribution. Either way, it's not as simple as installing Mono on your iPhone and then being able to run your .NET app on it because of the way the iPhone OS works. It will only mark as executable, code pages that are loaded from the signed program image. Thus, things like JITs don't work on the iPhone. When people like Unity use Mono on the iPhone, the code has to be ahead-of-time compiled. And to do that for a non-jailbreak device - you need Mac+developer licence.

  • User profile image
    AndyC

    rhm said:

    You'll still need a jailbroken device or a Mac and iPhone developer licence. The only way Mono could run on a non-jailbroken device is if it's signed by an official developer and then distributed either through the AppStore or via ad-hoc distribution. Either way, it's not as simple as installing Mono on your iPhone and then being able to run your .NET app on it because of the way the iPhone OS works. It will only mark as executable, code pages that are loaded from the signed program image. Thus, things like JITs don't work on the iPhone. When people like Unity use Mono on the iPhone, the code has to be ahead-of-time compiled. And to do that for a non-jailbreak device - you need Mac+developer licence.

    Mono for the iPhone compiles everything to a single executable, there is no JITing involved. It sounds like some seriously impressive work went into making that possible.

  • User profile image
    Turbodad

    You may think it is great to be able to use Mono for iPhone development, but I think it is completely backwards. A non-native toolset will always lag behind (hint: Mono vs. .NET, Moonlight vs. Silverlight). If you can't be bothered to learn Objective-C, a very simple and elegant language; Cocoa Touch, which, as far as frameworks go, is much nicer than .NET; and Interface Builder, which is leaps ahead of Microsoft's way of designing UIs (just IMHO), you are bound to produce crappy bloated apps no one wants to use. Sure, it is interesting--as a proof of concept and a curiousity, but no more than that. Just because you can use C# and Mono to program iPhone, doesn't mean you should.

  • User profile image
    KevinB

    Turbodad said:

    You may think it is great to be able to use Mono for iPhone development, but I think it is completely backwards. A non-native toolset will always lag behind (hint: Mono vs. .NET, Moonlight vs. Silverlight). If you can't be bothered to learn Objective-C, a very simple and elegant language; Cocoa Touch, which, as far as frameworks go, is much nicer than .NET; and Interface Builder, which is leaps ahead of Microsoft's way of designing UIs (just IMHO), you are bound to produce crappy bloated apps no one wants to use. Sure, it is interesting--as a proof of concept and a curiousity, but no more than that. Just because you can use C# and Mono to program iPhone, doesn't mean you should.

    I disagree. It depends on the application IMO.

    Take for example the C9 iPhone app that is being discussed at the minute in another thread. To do that, the person had to go and learn Obj-C, if you could do it in C#, it would look every bit as good as it is only using a few standard controls and wouldn't have required new learning.

    Now, I am not saying that if you are serious about iPhone dev that you shouldn't learn Obj-C and Cocoa etc, but for quick apps, things like the tip calculater for example, it seems ideal.

  • User profile image
    rhm

    AndyC said:
    rhm said:
    *snip*

    Mono for the iPhone compiles everything to a single executable, there is no JITing involved. It sounds like some seriously impressive work went into making that possible.

    Did you read what I said? I know that there's no JITing. And my point is: the implication is that you can't have a general purpose Mono 'app' that can run arbitrary .NET code on non-jailbroken iPhones.

  • User profile image
    Lee_Dale

    Turbodad said:

    You may think it is great to be able to use Mono for iPhone development, but I think it is completely backwards. A non-native toolset will always lag behind (hint: Mono vs. .NET, Moonlight vs. Silverlight). If you can't be bothered to learn Objective-C, a very simple and elegant language; Cocoa Touch, which, as far as frameworks go, is much nicer than .NET; and Interface Builder, which is leaps ahead of Microsoft's way of designing UIs (just IMHO), you are bound to produce crappy bloated apps no one wants to use. Sure, it is interesting--as a proof of concept and a curiousity, but no more than that. Just because you can use C# and Mono to program iPhone, doesn't mean you should.

    Hmmm Cocoa Touch much nicer than .Net?

    I'm building iPhone apps at the moment and although i like Objective-C, I'm finding alot of things lacking in the Cocoa Framework such as decent XML support and WS* web service support for examples.

    I do like interface builder though and using proper design patterns such as MVC built into Xcode templates, but I think saying Cocoa Touch is better than .Net is a pretty blinkered view or at best an opinion.

    And as for learning Objective-C it really isn't that hard if your already an OO developer, in fact it's a pretty simple language.  The hardest part is reading through the documentation and getting to know the Cocoa framework libraries.  Apple provide very good documentation for this IMO which is all easily downloadable as PDF's

    Your going to have to learn the UI framework and design patterns whether your using native Cocoa or Mono, yeah it would be nice to maybe use C# and a first class language against different frameworks i.e. Cocoa Touch but that a nirvana that's not gonna happen.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.