tag:blogger.com,1999:blog-6621561.post5156154915430485820..comments2023-11-03T05:56:36.182-07:00Comments on ConceptDev (Craig Dunn's blog): MIX11... the mobile app collectionCraig Dunnhttp://www.blogger.com/profile/09377896535933926653noreply@blogger.comBlogger3125tag:blogger.com,1999:blog-6621561.post-52960904645177862422011-04-12T04:11:51.746-07:002011-04-12T04:11:51.746-07:00@CausticMango... yes, I wrote some of that Java in...@CausticMango... yes, I wrote some of that Java in the 90s. I like that you were reading so closely.<br /><br />As Chris pointed out, I think Mono[Touch|Droid|Mac]'s strength is that it embraces the target platform(s) rather than attempt to cover it up/abstract it away. For example:<br /><br />* The platform's <i>native</i> UI controls are bound, so that your app feels natural to users of that platform. No-one <i>ever</i> loved Java's 'common look' ;-) and in today's mobile app world, you should try to respect the look-and-feel of each platform since it might well be the reason your user <i>chose</i> that device.<br /><br />* The platform's <i>native</i> SDK is still accessible, so you can use the GPS, Camera, filesystem, whatever touch/gesture support is available, etc. (even the native IO and networking stack, if you'd like). There is no real 'abstraction' that hides/dumbs-down or otherwise interferes with your ability to take advantage of the platform (unlike Java's sandboxed approach to normalizing APIs and achieving interoperability via lowest-common-denominator).<br /><br />The beauty of Mono* is that it brings a familiar language and common infrastructure (ie. the .NET Framework: IO, WebClient, Xml, Linq, etc) to each platform. It adds many benefits without really incurring any penalty:<br /><br />- Without Mono* you need to learn <i>everything</i> from scratch (language syntax, memory management, networking, threading) for each platform, and if you wish to support them all you have to port/translate a lot of code as well. <br /><br />-WITH Mono* you already know the language syntax and framework (eg. how to access a web service, loading and saving files, processing Xml...) so you only have to learn a few UI idioms AND any non-UI code you write can be re-used across the other Mono* platforms and ALSO on your (maybe Microsoft-powered) .NET server and Windows Phone 7.<br /><br />I don't think Mono* today has much in common with the ill-fated marketing exercise that Java was. Mono* takes all the best parts of 'write once' and marries it with a realistic 'deploy anywhere with native hooks' byline. I can't think of a better way to reach all the major mobile platforms - particularly for existing .NET developers - and it's fun too with a great community around it.Craig Dunnhttps://www.blogger.com/profile/09377896535933926653noreply@blogger.comtag:blogger.com,1999:blog-6621561.post-54380381397629958102011-04-11T07:07:22.254-07:002011-04-11T07:07:22.254-07:00@CausticMango Wasn't the problem with "Pu...@CausticMango Wasn't the problem with "Pure Java" was that it was a write once, run everywhere sort of thing? (Please correct me if I am wrong. As you can see from Craig's post, he's had to think about the way the information is presented on each platform and modify the UI accordingly for it, using all the native UI-isms such as a tab bar or panorama control.<br /><br />Nice job Craig!ChrisNTRhttps://www.blogger.com/profile/02677440580354859677noreply@blogger.comtag:blogger.com,1999:blog-6621561.post-49218758675159488762011-04-11T05:51:16.688-07:002011-04-11T05:51:16.688-07:00Hmm, "Pure .NET". That gave me a chill; ...Hmm, "Pure .NET". That gave me a chill; sounds eerily like the "100% Pure Java" foolishness that infected Java back in the late 90's.<br /><br />:-(CausticMangohttps://www.blogger.com/profile/05251637393235732875noreply@blogger.com