TechHui

Hawaiʻi's Technology Community

Finally, a way to code for the iPhone using a nicer language than Objective C...

MonoTouch allows developers to create C# and .NET based applications that run on Apple's iPhone and Apple's iPod Touch devices, while taking advantage of the iPhone APIs and reusing both code and libraries that have been built for .NET, as well as existing skills.

Thank you for the link Stephen!

Views: 127

Replies to This Discussion

Adobe has also released a toolkit to take Flash CS5-based (and ActionScript 3 based) programs and put them on the iPhone (as stand-alone apps).

Both seem like bad ideas to me. Oh, I'm sure they work, but the native API on the iPhone is CocoaTouch via Objective-C (and C).

Reasons that you don’t want to go down these 'alternative' paths:

Bugs. It’s tough enough bug testing Objective-C natively, let alone through some black-box made by Adobe and Microsoft/Novell.

SDK changes. Apple moves at the rate of Apple. Keeping up with their SDK changes is vital and waiting for Adobe (or anyone other than you) to address these changes is not a smart strategy.

Busted HIG. It doesn’t look like you get access to UIKit. If not, you can’t use any of Apple’s interface controls. So you get whatever convoluted mess of a UI the developer wants to cobble together in Flash. I’ll let you think about that for a moment. Then I'll let you contemplate the likelihood of this type of crapfest making it past Apple's 'review' process.

Ability. You don’t even get the whole SDK. Just what Adobe or Novell feel like supporting. If you get knee deep in a project and realize that you need access to an Apple API that you can’t get to, you're likely out of luck.

All those things add up to a non-reliable entity becoming your single point of failure. Nor is Adobe's track-record with Objective-C and the APIs on MacOS X great. Novell's is non-existent.

Nor is C# "nicer" than Objective-C (which is really just 'C'). The last thing the App Store needs are the hordes of one-star programmers in IT shops round the world currently writing their CrudScreens in Java and C# deciding to implement their idea of an iFart app.
Aloha Jim,

> Adobe has also released a toolkit to take Flash CS5-based (and ActionScript 3 based)
> programs and put them on the iPhone (as stand-alone apps).

Yep. I posted about this yesterday noting, as you did, that its not clear if they are providing access to UIKit (I assume no) or any other native APIs. Without this, I'm not sure how useful it will be.

MonoTouch, on the other hand, provides access to native APIs. It basically provides a CIL/Objective-C binding along with a subset of the CRL that is mapped to Cocoa Touch APIs. It provides full access to UIKit.

> Bugs. It’s tough enough bug testing Objective-C natively

This is a valid point. I won't know until I give it a spin, but its certainly a concern.

> SDK changes. Apple moves at the rate of Apple.

Also a valid concern. Currently, the MonoTouch people seem to be tracking it pretty closely. Note that this is not from Microsoft.

> Busted HIG. It doesn’t look like you get access to UIKit.

Not true. MonoTouch has full bindings for UIKit.

> Ability. You don’t even get the whole SDK.

Its pretty complete. They support UIKit, StoreKit, GameKit, MediaPlayer, CoreGraphics/Quartz, etc.

> Nor is C# "nicer" than Objective-C (which is really just 'C').

I don't want to get into a language war, but do you have any experience with C# on which to base a comparison? Objective C was designed almost 30 years ago, and isn't particularly elegant or expressive by modern standards. C# has language level constructs to support common design patterns along with fully integrated language level query capabilities (LINQ). Here is what configuration and event wiring looks like in MonoTouch:

var slider = new UISlider (new RectangleF (174f, 12f, 120f, 7f)) {
    BackgroundColor = UIColor.Clear,
    MinValue = 0f,
    MaxValue = 100f,
    Continuous = true,
    Value = 50f,
    Tag = kViewTag
};
slider.ValueChanged += delegate {
    Console.WriteLine ("New value {0}", slider.Value);
};

> The last thing the App Store
> needs are the hordes of one-star programmers in IT shops round the world currently writing
> their CrudScreens in Java and C# deciding to implement their idea of an iFart app.

Ad hominem attacks (e.g. one-star programmers) are never productive in technical discussions. The idea that people who want to use languages that provide greater productivity by, in some cases, being a couple steps farther from the metal are "one-star programmers" is very dated. C# biggest fan, its inventor, is an accomplished computer scientist as are many other C# and Java programmers I work with on a daily basis.

RSS

Sponsors

web design, web development, localization

© 2024   Created by Daniel Leuck.   Powered by

Badges  |  Report an Issue  |  Terms of Service