Mono - C# Development for Android!!! - Android Apps and Games

YES!!!
Mono for Android Could Bring More Windows Developers to Android
by Quentyn Kennemer on April 6th, 2011 at 1:00 pm
Novell has announced that Mono for Android is now available for C# and .NET developers to enjoy. If you don’t know, these languages are widely-used by Windows developers on the desktop and is the primary programming language for developing apps on Microsoft’s mobile devices.
With Mono, developers who swear up and down by C# and .NET can now bypass java and develop apps for Android in the language they love. It’s similar to what kept Mozilla from developing Firefox for Android – the Android SDK only had support for applications written in Java while Mozilla does everything in C++. The release of the NDK opened that opportunity and now Firefox is one of the most popular browsers on the market.
We’re not sure who exactly would want to or will be bringing these Windows-bred applications to Android so it’ll be interesting to see how well Mono takes off. It’s a pricey technology to pick up, though – you’ll have to pay $400 for the professional edition of the license and $999 if you’re developing for enterprise. Those who already paid for MonoTouch – which is Mono for iOS – can get 50% off of the Android version. [via ReadWriteWeb]
Click to expand...
Click to collapse
I use C# on a daily basis at my job and writing Android apps with C# would be awesome.
Hopefully this is news to others that might be as interested in this as I am.
Is anyone else excited about this? Or better yet, has anyone else tried it?
I'll be giving the trial a go this weekend.
I just wish it wasn't so expensive...

Would there be a performance impact?
Ideos X5 / Huawei U8800

Related

Job writing apps for iphone or windows mobile??

I'm looking for answers to this question because I'm at a cross-road with my career path. I'm attending college to get a computer science degree with the intent on writing software programs for mobile devices. I thought I would go with Windows Mobile platform, but now I'm wondering if I should go with the iphone. I know there are a lot of developers, etc on this forum that do this kind of work and would like anyone with any opinions, comments or hard earned experience to let me know what they would do if they were me.
with iphone or ipod touch you have to own a back to make offical apps
you have to pay app store some money to be able to summit apps for review
if they are suited for app store
the apps have to be written in objectC which is an alternativ to c++ as in
a ext to old ansi c to add object support so it's more pleasing then structs with function pointers
with wm you got 2 realistic paths
using .net compact framework this is the fast way to get something to show for
but is generaly much slower then
native win32 sdk apps where you have to write everything and have less gui IDE do make it
more user friendly for you
but native win32 which is in c++ is much faster
you could get a mac and use bootcamp to install windows then windows would run as native not emulated so it would not be slow
then you could do both asuming you had the time to get into both platforms
allso the sdk of objectC and cocoa for iphones i believe is free and got an IDE too
and with winmobile you have dl the sdk for wm and if you want an IDE you have to pay for visual studio as i dont believe that the free express version of visual studio works with mobile
but i could be wrong
but i believe that the compiler itself is free so if you got the sdk for wm you can compile using an console compiler which is free
I'm not a developer but I started computer science back when I was in school (C/O 07) and I would say that if your lookin for the money iphone apps and blackberry apps are the way to go. If you check out a thread in development and hacking it's about why there isn't a facebook app for windows mobile like there is for blackberry and iphone and a user made a good point iphone apps and blackberry apps are the bread an butter right now. But there is still some possiblities with Andriod recently coming out and also Windows releasing an App store when Windows Mobile 7 is released.
The good thing though is that with developing apps like for Apple you can pretty much do that as a side project and help you generate extra money and be like this guy http://www.cnn.com/2008/TECH/11/18/iphone.game.developer/index.html?iref=mpstoryview
So it's still a possiblity you could still branch out. I would say to develop for both. Look at the company Beejive. They developed a great messanger app for the blackberry and then for the iphone and now for windows mobile is still in the beta and probably soon one for andriod. But final words I would say don't limit yourself. If you really like and want to program and you think you have a good app that would be useful on all platforms then go for it.
Sorry to talk your head off.
Rudegar said:
with iphone or ipod touch you have to own a back to make offical apps
you have to pay app store some money to be able to summit apps for review
if they are suited for app store
the apps have to be written in objectC which is an alternativ to c++ as in
a ext to old ansi c to add object support so it's more pleasing then structs with function pointers
with wm you got 2 realistic paths
using .net compact framework this is the fast way to get something to show for
but is generaly much slower then
native win32 sdk apps where you have to write everything and have less gui IDE do make it
more user friendly for you
but native win32 which is in c++ is much faster
you could get a mac and use bootcamp to install windows then windows would run as native not emulated so it would not be slow
then you could do both asuming you had the time to get into both platforms
allso the sdk of objectC and cocoa for iphones i believe is free and got an IDE too
and with winmobile you have dl the sdk for wm and if you want an IDE you have to pay for visual studio as i dont believe that the free express version of visual studio works with mobile
but i could be wrong
but i believe that the compiler itself is free so if you got the sdk for wm you can compile using an console compiler which is free
Click to expand...
Click to collapse
Good point

Views sought on cross platform development

Hi
I work for a small research firm/IT consultancy. I'm attending a meeting in a few weeks time, the meeting is being held by the University of the West of England (a UK Uni) and various local business groups. The aim is to discuss the development of a GPS-based program to help encourage children to exercise. As I have a bit of knowledge about various GPS-based software programs and platforms, I have been asked by a contact of mine to attend.
I've been thinking that by far the most obvious platform to target is the mobile phone - every kid has one and most these days have either GPS built-in or can access a bluetooth GPS device. Now, there are five mobile phone platforms, Java, Nokia's Symbian, Apple's iPhone, Google's Android and Microsoft's Windows Mobile. If an app could be developed across all five platforms, it would be pretty much available to all kids.
As I have very limited experience of these platforms, I was wondering if anyone cared to give any views on the difficulties involved in developing for all five platforms (is it even possible to cross-develop across all these five platforms, or would each one be a separate project?) and any other views pertinent to GPS-based programs for mobile.
Also, if you know of any Android developers (companies) in the South West of England, preferably Bristol, that would also be great.
Rupert Plumridge
Senior Research and Commercial Manager
OTR-Group
www.otr-group.com
All depends of the language that you choose, but remember that mobile devices have some limitations.
Here are some lists of the Windows Mobile limitations: DevBuzz - Windows Mobile Limitations
Cheers for the reply, yeah, I guess language is most important - Java seems the most cross platform - not sure if the iPhone can handle that though.
For iPhone the better choice is Objective-C(CocoaTouch Framework), but you will need to have a Mac if you want to develop for it. This was because I didn't buy a iPhone to start developing for it, I don't have a Mac
For Windows Mobile I suggest you to use C#(.Net 3.5) with Visual Studio 2008 Professional. It's the most featured environment for WM development, or you can try CeGCC.
For Android the best choice will be Java with a very good knowledge of XML. A good link to start is How-To Develop Android Applications
And for Symbian, the best choice will be C++, also take a look at Getting started with Symbian development
Now you choose
You can use C++ on iPhone, WinMobile, Android and Symbian using Airplay SDK - the same compiled app will run on all of them too.
This is a magic bullet for cross platform dev, enjoy!
"For Android the best choice will be Java"
think you get more kernal power in their c++ tdk then java

[Q] Qt on WP7: Possible but why not?

Qt apps work on WinCE. If WP7 is built on top of WinCE, why would Qt apps not be allowed on Win7?
I'm just trying to make sense of it here. Is it an artificial Microsoft restriction for their platform?
Because third-party apps are managed in .NET compact framework. Qt is a C++ framework and thus unmanaged. This is a smart move by MS as it increases system stability and enhances user experience.
leonard2010 said:
Because third-party apps are managed in .NET compact framework. Qt is a C++ framework and thus unmanaged. This is a smart move by MS as it increases system stability and enhances user experience.
Click to expand...
Click to collapse
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
discourse said:
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
Click to expand...
Click to collapse
givin that one of the main reasons that windows mobile 6 and for that matter windows desktop can be unstable is poor quality 3rd party programs i think the move was a very good one, forcing programers to stick to strict controls means they have to develop good software, also givin MS got most of the flak for these crap programs i think it was a good move on their part
at the cost of lower performance and code easily being stolen. MS don't care about developers. Hacking a silverlight app onto CE and calling it a new OS was a terrible shortcut and will cost them in the long run.
It's a matter of time until Microsoft releases a Native Development Kit. In a recent interview Brad Watson from Windows Phone 7 Development team said:
Brad Watson said:
8) What about native SDK? Android got theirs later, should we expect Microsoft to provide a native SDK also, or just forget about it ?
BLW – if by native SDK, you are asking will we allow anyone to run C or C++ unmanaged code on the device, the answer is “not now.” Our primary concern is ensuring that there is a fantastic customer experience on the phone. We recently announced that we have satisfaction rates for the phone at 93%. That’s amazing. We attribute at least some of that to the fact that customers can buy apps that they don’t have to worry will trash their phones, and they don’t have to worry because of the managed platform.
Over time we will certainly relax certain restrictions on the phone, but we cannot compromise the integrity of the phone experience or the marketplace experience.
Click to expand...
Click to collapse
Microsoft has to release a NDK because the competition has a NDK. Hopefully the competition will have more and more NDK applications (Firefox, Skype) which would make them more appealing to the user.
When such a NDK will be present, Qt (at least lighthouse) will be ported to Windows Phone 7
indiekiduk said:
at the cost of lower performance and code easily being stolen. MS don't care about developers. Hacking a silverlight app onto CE and calling it a new OS was a terrible shortcut and will cost them in the long run.
Click to expand...
Click to collapse
While I agree it's far from the entirely new OS we were promised I very much doubt it will cost them in the long run. They have provided a OS experience that is second to none, this is all because of the limitations they have put in place.
I would expect the platform to open up somewhat for the next wave of [higher-end] devices giving existing users an iOS-like experience where you can certainly upgrade to utilize multitasking and all that jazz but it will cost you some of the current smoothness of the UX.
The fact that .Net assemblies are easily decompiled into fully working Visual Studio projects hasn't been a huge problem on the desktop and as obfuscating tools become better and better I see no reason why it should lead to a problem on the mobile platform either. Looking thru some of the recent marketplace apps they are all but decipherable for the average developer. Also, as more and more processing moves to the cloud it becomes less and less of a problem - most startups are neither willing not capable of mirroring your closed-source/protected backend services.
The missing NDK is not the sole reason. The OS IS different. As others have pointed out, quite some GDI stuff is just not there, or doesn't do anything. So, Qt would probably just not start. And as there will never be (as MS said) (official) OpenGL drivers on WP7 you can't switch the backend.
And there has to be already some kind of NDK, as e.g. Navigon Select is a semi-native application and it is not created by OEMs.
Hades32 said:
The missing NDK is not the sole reason. The OS IS different. As others have pointed out, quite some GDI stuff is just not there, or doesn't do anything. So, Qt would probably just not start. And as there will never be (as MS said) (official) OpenGL drivers on WP7 you can't switch the backend.
And there has to be already some kind of NDK, as e.g. Navigon Select is a semi-native application and it is not created by OEMs.
Click to expand...
Click to collapse
They say IE9 will have accelerated graphics support, which I presume is based on Direct3D. For WinPhone7 Qt needs a Direct3D backend, which should work on all WinPhone7 devices.
Qt should have the same capabilities of IE9, which AFAIK is not written in managed code.
Qt could also use Google's angleproject which should help in translating "OpenGL ES 2.0 API calls to DirectX 9 API calls".
Since this is a discussion thread, this is going in WP7 General.
~~Tito~~
It will simply not happen. It's that easy. (Not w/o homebrew that is)
By not allowing Qt on WP7, Microsoft and Nokia have just shot themselves in the foot. Instead of offering a smooth migration path for the millions of Nokia users and devs, they've basically alienated the entire community. WP7 is also losing out on thousands of high quality applications like Angry Birds for Symbian^3 and MeeGo that was developed using Nokia's Qt SDK. http://www.youtube.com/watch?v=mS1dwYmKMjs
discourse said:
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
Click to expand...
Click to collapse
Good luck hacking Qt into it.
Using .NET also increases Security.
WP7 doens't need Qt, and Microsoft should do whatever it can to stop Nokia from putting Qt in WP7.
Those reasons aren't lame, unless you're missing the portion of you brain that controls logic.
discourse said:
By not allowing Qt on WP7, Microsoft and Nokia have just shot themselves in the foot. Instead of offering a smooth migration path for the millions of Nokia users and devs, they've basically alienated the entire community. WP7 is also losing out on thousands of high quality applications like Angry Birds for Symbian^3 and MeeGo that was developed using Nokia's Qt SDK. http://www.youtube.com/watch?v=mS1dwYmKMjs
Click to expand...
Click to collapse
It's much easier to develop for WP7 than it is for Symbian/Qt. I don't think the developers will have much of an issue with it. They didn't shoot themselves in the foot, you people just AREN'T developers, and don't understand it.
You know you're talking to clueless people when Angry Birds is the epitome o fa high quality application to them.
Cause you cannot develop Angry Birds in XNA, and you seriously believe porting Angry Birds to WP7 will involve nothing other than a few code line changes and a recompilation?
Give me a break.
I wish Microsoft had partnered with SE or something. Nokia's fanbase are more bat**** crazy over these pet projects than the Android people.
Qt will continue to be the development framework for Symbian and Nokia will use Symbian for further devices; continuing to develop strategic applications in Qt for Symbian platform and encouraging application developers to do the same. With 200 million users worldwide and Nokia planning to sell around 150 million more Symbian devices, Symbian still offers unparalleled geographical scale for developers.
Extending the scope of Qt further will be our first MeeGo-related open source device, which we plan to ship later this year. Though our plans for MeeGo have been adapted in light of our planned partnership with Microsoft, that device will be compatible with applications developed within the Qt framework and so give Qt developers a further device to target.

A C# Based Android

There has been talk of Android shifting to C#, mainly due the Google-Oracle lawsuits over the use of Java. While there rumors haven't been confirmed, there is mono-based C# for Android at http://xamarin.com/monoforandroid but what interests me more is what's on this link: http://hexus.net/mobile/news/android/38789-google-android-ported-java-c-blazing/
At the bottom, of the link, they point to an ICS build of Android based on C#. Though the build isn't yet complete, the second link I've posted contains a comparison from which it can been that C# trumps java... Badly!
The C# build can be found at https://github.com/xamarin/XobotOS
It is called the XobotOS. Has anyone tried this? This is supposed to be a working build.
Here is a snippet of their description:
XobotOS project
===============
XobotOS is a Xamarin research project that explored porting Android
4.0 from Java/Dalvik to C# to explore the performance and memory
footprint benefits of C#.
XobotOS is a semi-automated port of the Android 4.0 source code from
Java to C#. The automated parts were ported using an improved version
of Sharpen that can compile more advanced Java constructs and supports
generics. Most of the manual bits of code fall in two categories (a)
code to integrate with the host operating system and (b) replace the
Java JNI code used to call into C, with the ECMA CLI P/Invoke
functionality.
Click to expand...
Click to collapse
switch
thatd take a lot of developing to switch after so much work has been done in java!
I wonder if is a good idea to move from an open to a closed and corporate environment. How about compatilibity and scalability?.
C#, though made by Microsoft, is supposed to be an open specification. And the mono framework provides an open source platform for C#.
Check this out from Slashgear:
The key difference between Java and the C# and .NET runtime is that the latter two are covered by ISO standards. That means there are legally binding commitments by Microsoft that prevent the software giant from suing implementers for patent infringement.
Click to expand...
Click to collapse
This looks very good: http://xamarin.com/monoforandroid
It's mono for Android. It runs on the current Android versions but it is based on C#. Though this is slightly different from a C# Android, this can provide a unified code base for Android, iPhone and WP7. However, this project isn't free except for evaluation.
I'm wondering if any dev's could try out this port on one of their devices.
yea, I remember mono a how it failed on linux... anyway looks interesting but Im sure is not promising
cpl.Bower said:
yea, I remember mono a how it failed on linux... anyway looks interesting but Im sure is not promising
Click to expand...
Click to collapse
I am no programmer, but I'm glad it failed. I can't imagine Google officially going to port the whole Android to C# and .NET. If they were going to do that, might as well transfer all their Android IP to Microsoft for free to avoid another case like SCO (funded by Microsoft) v Novell.
Anyway, on the recent Oracle v Google case the latter won overall except for a few minor offenses.
I wouldn't personally mind a switch from Java (read: Oracle), but that would be a huge switch for whole community, it might even split it in a way if Google went with this. What about Google Go? I've never used it nor I even know the state of it. Who knows, maybe Google has plans to use in for android in the long run already?
A switch from Oracle's Java to C# which I think is tied to Microsoft wouldn't be a wise thing to do IMO.
The switch to a C# based android would mean better performance and battery life if what they say is true. However doing so is largely impractical and would be a decent alternative only if Google was forced to switch from Java.
As far as the Mono platform goes, it is a godsend for XNA developers. It enables you to retain 80-90% of your codebase between all 3 platforms (android, iOS and WP7) and will greatly reduce porting time if you're writing in C#.
Sent from my Droid Incredible using the XDA app.
Sounds cool, for me anyway since i use unity 3d and program in C# though i though the lawsuit was over between them?
i doubt that google would change android to C# way to much has been done in java think of all the apps that would no longer work.
although the flip side is that it would mean a clean slate for the app store witch means no more bad apps because google could change the restrictions for publishing.
Every app would need to be rebuilt...but hey, you could code for iOS and Android at once!
AceRoom said:
C#, though made by Microsoft, is supposed to be an open specification. And the mono framework provides an open source platform for C#.
Check this out from Slashgear:The key difference between Java and the C# and .NET runtime is that the latter two are covered by ISO standards. That means there are legally binding commitments by Microsoft that prevent the software giant from suing implementers for patent infringement.
Click to expand...
Click to collapse
The ECMA standard is incomplete, and the only actual protection is a "Microsoft Community Promise" which only prevents Microsoft from suing you, not one of the patent trolls which it can, and has already in the past, equipped.
As this article points out:
If Microsoft genuinely wants to reassure free software users that it does not intend to sue them for using Mono, it should grant the public an irrevocable patent license for all of its patents that Mono actually exercises.
Click to expand...
Click to collapse
In short, there are still serious reasons for worrying about C#, despite what they'd like you to believe.
Hmmm.... Basically Microsoft can still come back and screw us over... And they would have reason to since they offer products directly competing with ALL of Google's products. The only reason they probably aren't doing so to Apple is that Microsoft makes products for Apple systems...
And then Apple would come out from nowhere and sue android again for this, claiming they patented it.
♬★------ιƒ ι αgяєє∂ ωιтн уσυ; ωє'∂ вσтн вє ωяσηg シ------ ★♬
java always used to be more advanced than .net, especially back when android was released. but in the past few years .net has really caught up and now greatly surpasses java in both development tools and runtime performance. you can already run android apps written in .net with mono which already outperforms the same application written in java.
also i think csharp is a very easy language to learn and visual studio really makes it easy for new developers. however i dont see google pulling a complete switch like this. especially when the entire android project is based on rapid development (which seems to be working well for them).
I think that if legally everything can work out between Goo and MS about patents etc., would be nice to see some C# Android. .NET and C# are good base to have some improvements. Then again the security issue would escalate sky high and we will be all under the good grace of MS.....

Mono Abandons Open Source Silverlight.

The Mono project is about the only group of people actively talking up .NET and developing it, but in an interview Miguel de Icaza has admitted that Moonlight, the Mono version of Silverlight isn't worth the effort any more.
Microsoft may be reluctant to admit that Silverlight is dead - even though the writing on the wall is so big and clear that you can't miss it - but the Mono project doesn't have to pretend. In fact, because it has limited resources, what the Mono project works on is almost a better guide to what the future of .NET might hold.
In an interesting interview with InfoQ's Jonathan Allen, Miguel de Icaza admits that the Mono project has abandoned Moonlight. When asked why the answer was revealing:
"Silverlight has not gained much adoption on the web, so it did not become the must-have technology that I thought would have to become.
And Microsoft added artificial restrictions to Silverlight that made it useless for desktop programming.
These days we no longer believe that Silverlight is a suitable platform for write-once-run-anywhere technology, there are just too many limitations for it to be useful. These days we believe that in the C# world the best option is to split the code along the lines of the presentation layer. The user would reuse a core part of their application across all platforms, and write a new UI specifically for each platform they target: iOS with MonoTouch, Android with MonoDroid, Mac with MonoMac, Windows with WPF or Winforms or Mac, Web with ASP.NET and Windows and Linux with Gtk
It is not write-once-run-everywhere, but the result are applications that can exploit the native facilities and create native experiences on each platform."
http://www.i-programmer.info/news/89-net/4282-mono-kills-open-source-silverlight.html
Not Surprising
Not too surprised and probably a smart move by the mono team since Microsoft is essentially abandoning silverlight. Why would mono continue to work on an open silverlight implementation if silverlight itself is going to be dropped?

Categories

Resources