Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Novell Programming Technology

iPhone Gets .Net App Development 327

snydeq writes "Novell has announced MonoTouch 1.0, a commercial SDK that allows developers to build iPhone apps using Microsoft's .Net Framework instead of the Apple-designated C or Objective-C languages. The SDK leverages Novell's Mono runtime for running Windows apps on non-Windows systems, allowing developers to utilize code and libraries written for .Net and programming languages like C#. With MonoTouch, the Mono runtime provides such developer services as garbage collection, thread management, type safety, and Web services, said Mono leader Miguel de Icaza."
This discussion has been archived. No new comments can be posted.

iPhone Gets .Net App Development

Comments Filter:
  • Re:Launch Times? (Score:4, Insightful)

    by palegray.net ( 1195047 ) <philip DOT paradis AT palegray DOT net> on Monday September 14, 2009 @05:31PM (#29419463) Homepage Journal
    My guess is approximately zero seconds, as Apple is sure to kill this.
  • by pavon ( 30274 ) on Monday September 14, 2009 @05:31PM (#29419465)
    MonoTouch compiles the code into a native executable, rather than shipping with a VM. Apple has no reason to disallow that.
  • Re:Launch Times? (Score:5, Insightful)

    by thetoadwarrior ( 1268702 ) on Monday September 14, 2009 @05:34PM (#29419493) Homepage
    Like MS will ever allow that to happen. If .Net and Mono were completely compatible then it would be much easier to port apps to Linux and therefore remove the need for Windows.
  • by kalirion ( 728907 ) on Monday September 14, 2009 @05:35PM (#29419503)

    Since when has it needed a reason?

  • by TejWC ( 758299 ) on Monday September 14, 2009 @05:35PM (#29419515)

    I am pretty sure that adding your own runtime violates the developer agreement. The article didn't say if this "app" ever got approved but I highly doubt it would (this would also raise concern about the lack of Java on the iPhone).

    Also, using C# is not THAT much better than the native objective-c. According to the article, it seems that "mono-touch" is really just C# bindings for cocoa-touch and I have had very bad experience using C# bindings for just about any kind of C code (allocated memory not getting garbage collected, bindings/function names being outdated, unmanged heap space limits, etc.). It sounds fun to play around with but I definitely wouldn't invest a large amount of time/money on it yet.

  • Re:Launch Times? (Score:5, Insightful)

    by poetmatt ( 793785 ) on Monday September 14, 2009 @05:39PM (#29419573) Journal

    It's no magic that Mono is always a version behind .net or more. It's just that lots of people are not realizing this yet, or the same with silverlight. It's stupid because if it was complete compatible then people would actually have more interest in windows, too.

  • Re:Launch Times? (Score:1, Insightful)

    by Anonymous Coward on Monday September 14, 2009 @05:42PM (#29419601)

    I don't think we have to worry about people developing for Silverlight. Anyone who knows anything about Microsoft's history with the Web knows to stay far away from that technology. I say this as a developer paid to build .NET applications.

  • Re:Launch Times? (Score:2, Insightful)

    by Jon Pryor ( 118031 ) on Monday September 14, 2009 @05:45PM (#29419631) Homepage

    My guess is approximately zero seconds, as Apple is sure to kill this.

    Why would Apple want to kill this?

    MonoTouch is not significantly different from Unity 3D [unity3d.com], which has been used to create over 40 games for iPhone [tirania.org] already.

    The primary difference is, instead of needing to create user interfaces purely atop GL, you can use the CocoaTouch libraries and get native buttons, frames, html controls, etc.

  • Re:Launch Times? (Score:2, Insightful)

    by Anonymous Coward on Monday September 14, 2009 @05:51PM (#29419703)

    and the ToS explicitly forbids apps that execute external code.

    Actually, the ToS explicitly forbids apps that execute external code from running on the iPhone

    This is an 'app' that runs on your workstation, used to compile code into an executable. The resulting executable, which would not execute any external code just like all the apps out there now, would be perfectly fine to put on the iPhone.

    It's an SDK, not an interpreter.

  • by Xtravar ( 725372 ) on Monday September 14, 2009 @05:56PM (#29419777) Homepage Journal

    Because they don't just want crappy ports of crappy applications. They want stylish applications designed specifically with the iPhone in mind. And guess what? It's working!

  • by CodeBuster ( 516420 ) on Monday September 14, 2009 @06:03PM (#29419849)

    Also, using C# is not THAT much better than the native objective-c

    Excuse me? C# and .NET take the same approach as Java which is to provide the most powerful general purpose programming language + massive class library of common functionality possible (C# and .NET which allows any language to compile to the CLI assembly are arguably even more powerful than Java right now). C# and .NET are definitely MORE powerful than objective C in a general purpose sort of way (objective C might have more depth in specific targeted areas like GUI widgets, but the breadth of massive frameworks like C# and Java is truly vast). As for the memory management in C# and .net languages, you have to know a bit about garbage collection, finalization, and the IDisposable [microsoft.com] interface (which enables the "using" keyword syntax) when dealing with "unmanaged" resources (which require manual destruction, usually because they are outside the managed heap maintained by the .NET framework).

  • Re:Launch Times? (Score:5, Insightful)

    by tyrione ( 134248 ) on Monday September 14, 2009 @06:30PM (#29420103) Homepage

    Because a secret agenda of theirs is to make you use XCode to develop apps. This was made quite clear to my former company on a project. That's why you won't see Java nor Flash any time soon, and the ToS explicitly forbids apps that execute external code. I theorize that by doing this they 1) want control and 2)hope that the iPhone development activity propagates into OS X development activity.

    Yes. Use our Development Tools on our Platform. Truly it is a secretive agenda. Get real.

  • by daBass ( 56811 ) on Monday September 14, 2009 @06:38PM (#29420177)

    Just because a platform has a greater number of frameworks doesn't mean it is more powerful. You could even turn it around and say that the number of 3rd party frameworks being developed indicates the language is missing some important stuff and everybody is trying to solve it in their own way, with lots of redundant, very similar frameworks.

    You are probably comparing your desktop/server experience wth those languages to a mobile platform. I program Java and .Net for server apps every day and iPhone by night. The two are a completely different world. In my dayjob I am using all the frameworks and libraries that make me more productive. For the iPhone I don't even go looking for them because everything I need is right there. (The only exception to that I could see is 2D/3D animtaion and games, for which there are several great frameworks for iPhone. But that is not something I Do.)

    Fifty thousand apps in just over a year on a niche mobile platform can't be argued with. The Objective-C/Cocoa Touch platform is inmensly powerful.

    Ask any mobile developer that has done Windows Mobile in .Net, Java ME or Android and see which platform they create their best looking, best function, most reliable apps on and which one is the fastest to develop for. Yes, that would be iPhone.

    Maybe Mono Touch will bring that kind of quality and productivity using C# to the iPhone platform, but I am sceptical.

    There is a reason why there is so much quality software for iPhone - and for the Mac platform for that matter - and that reason are the Apple SDKs and Objective-C.

  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Monday September 14, 2009 @07:02PM (#29420345)
    Comment removed based on user account deletion
  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Monday September 14, 2009 @07:06PM (#29420385)
    Comment removed based on user account deletion
  • Re:Launch Times? (Score:3, Insightful)

    by Em Ellel ( 523581 ) on Monday September 14, 2009 @07:39PM (#29420643)

    Apple cares as much about control over the application development platform as they do about the number of apps in their store. Look, I don't hate Apple or anything (hell, I'm posting this from a new MacBook Pro), but the truth is the truth.

    I call BS.

    Apple cares far more about control than about number of apps. These are the people who for a year after launch of the SDK forbidden posting of any sample code in public!!! Number of apps is not a priority to Apple - otherwise it would take less than a month it takes now to get an app even looked at, let alone approved and they would not reject applications just because they did not like the loading splash screen. (they objected to one of my submissions because splash screen was a logo instead of a fake screenshot of an application - even though half the apps in the app store use logos or things like that)

    Apple is all about control. Absolute control. If they figure out how, this thing will be dead before the first app is submitted.

    -Em

  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Monday September 14, 2009 @08:19PM (#29420993)
    Comment removed based on user account deletion
  • Comment removed (Score:3, Insightful)

    by account_deleted ( 4530225 ) on Monday September 14, 2009 @10:23PM (#29421749)
    Comment removed based on user account deletion
  • Not more extensive (Score:3, Insightful)

    by SuperKendall ( 25149 ) on Monday September 14, 2009 @11:12PM (#29422077)

    Excuse me? C# and .NET take the same approach as Java which is to provide the most powerful general purpose programming language + massive class library of common functionality possible

    NeXT was taking that same approach probably before you were even programming.

    The Objective-C language itself is not quite as modern as newer languages (though I personally think with blocks and GC it's pretty much there, though those will take a bit to translate over to the iPhone). But Objective-C has a huge set of libraries as well.

    I've done extensive Java development prior to switching to iPhone development full time. Really there's not anything missing when you look across the NS and CF class libraries - rich collection classes, string handling with deep unicode support, internationalization, complex date/time formatting, good tools for introspection, RegEx support, etc. etc. etc.

    A few of the Mac frameworks are curiously missing for the iPhone (the most curious to me being the one supporting SOAP) but there are good quality third party wrappers that fill those gaps.

    And then of course, Objective-C has really useful frameworks like CoreData, and CoreAnimation which are richer than what you can get with other platforms (party because CoreData does not make the pretense at being an OR mapper, just a tool for managing object graphs that happens to support a database as one kind of store). I would say the existence of some of these frameworks especially makes it more useful and productive for application development than either C# or Java currently - especially since after using decades of different UI coding models, Interface Builder is the first IDE GUI development tool it makes sense to use over hand coding elements.

  • Re:Launch Times? (Score:3, Insightful)

    by shutdown -p now ( 807394 ) on Monday September 14, 2009 @11:20PM (#29422141) Journal

    lets you drop abstractions.... i am not sure for which language this is making a point.....

    We're talking about directly invoking functions from native shared libraries. Regardless of abstractions, this scenario is inherently unsafe - since anything can happen in native code - so it doesn't matter if you represent a pointer as an int, the function that you're calling will SIGSEGV on a null value anyway, and may quietly corrupt memory if you give it a wrong non-null value.

    An abstraction level here doesn't really buy you any safety, and only serves to map native constructs (such as pointers) to the limited subset of those constructs that the language/runtime in question supports. C# supports a larger subset - in effect, it has direct representation of everything in standard C: unsigned integral types, raw pointers, fixed-size non-bounds-checked arrays, stack-allocated arrays and structs, unions, function pointers; and with Microsoft __arglist language extension (which Mono supports), non-boxed varargs.

    Of course, this is all strictly opt-in. You don't have to deal with these things if you don't deal with native APIs (and, in many cases, you can avoid dealing with them even if you do), and the language requires you to be very explicit about your intentions when using "unsafe" features - pointers and pointer arithmetic can only be used inside unsafe { ... } blocks, for example, and the compiler will also demand "/unsafe" command line switch when compiling such code. I really don't see how one would reasonably argue against such things, unless we're talking about a language specifically dumbed down to the point where you can't "shoot yourself in the foot" - which is something, the attraction of which I never understood.

    Even Pascal had reinterpret_cast...

  • by yabos ( 719499 ) on Tuesday September 15, 2009 @09:52AM (#29425655)
    Programming Objective-C is not difficult. If you can program in any other language you can program in Objective-C. The hardest part about it is learning which frameworks and APIs are required to write your app.
  • Re: Why not? (Score:3, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Tuesday September 15, 2009 @03:25PM (#29429973) Journal

    Then we'll have to agree to disagree.

    Back when I had a Mac, I much preferred having NeoOffice to having nothing but TextEdit. That's kind of a no-brainer.

  • Re: Why not? (Score:3, Insightful)

    by SanityInAnarchy ( 655584 ) <ninja@slaphack.com> on Tuesday September 15, 2009 @08:58PM (#29434479) Journal

    Taste isn't for everybody.

    Nor is common courtesy, obviously.

    There has never been a time when those were your only two options.

    What would you suggest?

I've noticed several design suggestions in your code.

Working...