Showing posts with label Mono. Show all posts
Showing posts with label Mono. Show all posts

Thursday, 17 May 2012

Mono for Android 4.2 introduces a UI designer

One of the common complaints regarding Android development, regardless of the development tool in use, is the lack of a good UI designer. The usual result is that UIs are designed in XML by hand.

The people at Xamarin have clearly taken this rather seriously and spent some time building up a new UI designer for Mono for Android projects, which is now available in the recently released Mono for Android 4.2.

The UI designer offers all the standard UI controls in the Visual Studio toolbox, and gives you the option of visual drag/drop/property editing or the more traditional manual XML editing.

AndroidUIDesigner

Also new in 4.2 is:

Full details of the Mono for Android 4.2 release can be found on this announcement post.

Thursday, 9 February 2012

Updated MonoTouch articles available

Last year I made available an intro article and an in-depth tutorial on using MonoTouch, which was at version 3 at the time, and sold by Novell.

Since then lots has changed. MonoTouch is now sold by Xamarin and is at version 5. Also, Apple’s Xcode kit, which is used to design MonoTouch UIs has bounced from version 3.x to version 4.2 with huge changes therein.

Because of all this, those articles have been horribly out of date for some time.

However I’ve now updated them both. Use these links to access my updated MonoTouch introductory article and MonoTouch extensive tutorial, the latter of which covers navigation controllers, SQLite, location-detection, some sensors, web services, splash screens and more.

Friday, 3 February 2012

Mono for Android book available

Early in this blog's life I mentioned a book on MonoTouch that acts as a great intro to developing for iPhones with the MonoTouch framework. Or at least it did at the time. MonoTouch requires use of Xcode and things have changed quite a lot with the new Xcode 4 and MonoTouch 5 - I'm not sure if the book has been updated as yet.

Anyway, the principal author, Wallace McClure, has since been hard at work with Mono for Android and is on the cusp of releasing a book on working with the current version of Mono for Android, getting to grips with all the key aspects of Android development using the Mono for Android framework. The book is called Professional Android Programming with Mono for Android and .NET/C# by McClure, Blevins, Croft, Dick & Hardy, and is published by Wrox. You can pre-order it at Amazon – the amazon.com and amazon.co.uk links are below:

 

Thursday, 19 January 2012

Mono for Android intro article updated

Last year I rustled up an introductory article for C# programmers to get the hang of the then new Mono for Android. However the Mono for Android project then hit some bureaucratic snags and went on hold before getting new life.

Since then, the project has been flourishing and it seemed time to update the article to the current version, Mono for Android 4. The updated article is available on my web site.

Thursday, 29 September 2011

Mono for Android 2.0 preview released

Xamarin have released a beta for their 2.0 series Mono for Android. Full details are at http://android.xamarin.com/Releases/Mono_for_Android_1/Release_1.9.0 but key points are:
  • support for Honeycomb (Android API Level 12)
  • interface constant binding improvements
  • Java 7 support
  • smaller application packages
  • better incremental builds
  • bug fixes

Saturday, 3 September 2011

Oxygene 5

RemObjects Oxygene product line has now reached version 5 and is now written in itself to ensure continued quality as the product develops further.

Oxygene is a Delphi-like modern Object Pascal language, designed to work well with managed systems such as .NET, Mono and the Java runtime, and not worry too much about out-dated constructs that do not sit well with them. The language supports many up-to-date constructs and concepts, such as sequences, class contracts, nullable types, asynchronous methods, parallelised loops, future types and more besides.

Wednesday, 27 July 2011

MonoTouch and Mono for Android are back

This post is a little tardy in relation to the news it brings. But in case you missed it, Xamarin have now taken over the MonoTouch and Mono for Android products from Novell/Attachmate and have them available from their site store – so this changes the questionable status over the products that the Attachmate acquisition of Novell brought about.
I guess I’ll have to update my MonoTouch intro tutorial and in-depth tutorial and my Mono for Android intro tutorial, to correct all the links etc.
But it’s great to see Mono development available again for the mobile platforms.
[Edit]
I did indeed update the MonoTouch articles and also update the Mono for Android article.

Tuesday, 21 June 2011

Podcast on “Project Cooper”

I recorded a podcast recently for RemObjects, and was interviewed by their technical evangelist Jim McKeeth. We talked about various things including Java, .NET, Mono and Mono for Android, but the chat was mostly focused on “Project Cooper”.

You can find the podcast on the RemObjects Radio site.

Friday, 20 May 2011

Mono for Android and MonoTouch status change

Anyone who keeps an ear to the Mono world will have doubtless heard of the recent corporate changes that have impacted the Mono product line. For some while Novell have owned Mono, having previously absorbed the original developer, Miguel de Icaza, and his company, Ximian. Recently, Attachmate completed their acquisition of Novell and there have been the usual consequential streamlining processes occurring.
One of the casualties of this process is the Mono team, who were all released. This means that formal development of the commercial tools MonoTouch for iPhone development and Mono for Android for Android development have now halted. There’s been little noise on this subject from Attachmate, but the current thinking is that people who’ve already bought these products are still entitled to support. How supportive this support turns out to be is, perhaps, questionable. Certainly the store mechanisms that allow purchasing of MonoTouch and Mono for Android licenses have been disabled.
I should just add at this point that these events should not affect Mono itself, which is and always has been an open source platform. It’s the commercial tools for iOS and Android that are primarily affected.
For those who have been taking advantage of the homely feel of .NET development for iOS and Android devices, this news has set the cat among the pigeons, or thrown a spanner in the works, or whatever your preferred cliché may be. However, all is not lost.
As soon as Miguel and his team were let go, they immediately set up Xamarin. Xamarin is already working on producing API-compatible tools, similar to MonoTouch and Mono for Android, currently named .NET for iOS and .NET for Android respectively. The projected time for these tools is 3-4 months with the iOS product coming first.
Clearly this 4 month gap may prove logistically troublesome for some, but if you have already bought one of the Novell tools you can carry on working with it with an eye to switching to the Xamarin equivalent towards the Autumn.
If this time window is too much, well, you can always spend some time picking up native Objective-C skills or learning Java and use the normal development process in Xcode or AppCode for iOS, or Eclipse or IntelliJ IDEA for Android.
It seems that interest in the Mono-based tools continues. Various scheduled conference talks around the world on the topics are still going ahead rather than being cancelled. Personally, I will still be talking on Mono for Android at a Dutch User group (SDN) event in June.
That said, the timing of this unsettling news is not great for me as I’d started work on a series of tutorials for Mono for Android. I’ll probably put them on hold until the Xamarin products show some life, but since I’d finished the first one, I’ve put it on my web site. It’s looks at how you get going with Mono for Android and looks at the way Android applications operate, to get you started in the Android world, from a Mono for Android perspective. You can find the tutorial here on my web site.

Update: In case you came here and weren't aware of news happening in between when this was written and now, Mono for Android and MonoTouch came back and are flourishing away now.
Update: The introductory article mentioned is somewhat out of date now, but I have recently updated it to work with the current Mono for Android v4.

Wednesday, 6 April 2011

Parallel Programming Patterns

In a blog post I read this evening there was a reference to this handy PDF guide to Patterns for Parallel Programming, illustrating how .NET 4 parallel programming support and contrasting with how the same patterns are implemented without this new support.

The guide is written by Stephen Toub, a Microsoft Program Manager Lead on the Parallel Computing Team at Microsoft.

You can download the guide from Microsoft in either a C# version or a VB version.

Mono for Android 1.0 & MonoTouch 4.0 released

Today Novell released Mono for Android 1.0 and MonoTouch 4.0 (blog posts from Miguel de Icaza detailing the releases can be found here for Mono for Android and here for MonoTouch).
I’ve used MonoTouch quite a lot, hence the rather detailed tutorial I released, which was detailed here.
I’ve also been spending quite some time getting up to speed with Mono for Android. Indeed in February, I gave a talk on building apps with Mono for Android (or MonoDroid as it was referred to back then) in conjunction with Delphi Prism at a conference in Las Vegas. Also, today I spoke at a User Group meeting about building an Android app in C# using Mono for Android.
Over the next few weeks I’ll be working on a tutorial that shows the use of Mono for Android with C# and will post when it becomes available.
In addition, I’ve kept notes of various interesting things, such as issues, gotchas, solutions to problems I’ve encountered and so on. As I write up the tutorial I’ll be posting some of those tidbits as and when they crop up in the coverage.
One thing I learned today from Miguel’s release blog post, though, is that when you build an app for distribution the Mono linker is engaged. This generates a single binary containing only the items known to be used (and their dependencies) – everything else is stripped out. Smart linking in other words.
This is in contrast to how things work during development where you link against a shared runtime that is deployed to your emulator or device. The idea during development is that the executable generated will be smaller, thanks to linking against a shared runtime (well, two shared runtimes actually – there’s the main Mono runtime and a much smaller runtime specific to the version of Android you are targeting). With a smaller executable it takes less time to build and deploy to the emulator or device.
With a single executable generated for distribution this simplifies the question of how these separate entities are to be managed.

Update: This is an old post, and it should be noted that the current versions (at the time of writing this update in Jan 2012) are Mono for Android 4.0 and MonoTouch 5.0.

Wednesday, 23 March 2011

In-depth article on iPhone Development with C# and MonoTouch

I’ve put together a lengthy tutorial article on programming the iPhone (and iPad and iPod Touch) with C#, Mono and MonoTouch.
This covers a number of areas and runs through using Interface Builder, outlets and actions, table views, navigation controllers, database access with SQLite, web browsing with the WebView, GPS support through CoreLocation and MapKit, Web Services (only SOAP in this article), splash screens, icons and more besides.
You can find the article by following this link.
The article covers the same ground as the previous white paper PDF on iPhone development using Delphi Prism, but this has been fully translated over to C# and had a few areas of confusion simplified.

Update: This article has been out of date for some while, thanks to MonoTouch having moved from v3 to v5 and Xcode having moved from v3.x to v4.x and markedly changing. I've spent some while updating this extensive tutorial and the updated version can be found here.

Friday, 11 March 2011

Binding to Objective-C from MonoTouch

MonoTouch is a managed layer that binds onto the Objective-C CocoaTouch libraries using a binding layer. There’s a Mono tool called btouch that will generate a binding layer (or at least do much of the work) of binding an Objective-C API.

In a circuitous way, I recently got vaguely intimate with the MonoTouch binding mechanism.

Wednesday, 9 March 2011

Intro Article for iPhone Development with C# and MonoTouch

To accompany the in-depth walk-through on MonoTouch development for iPhone devices using C# posted earlier, I’ve also uploaded a much shorter introductory article on the same subject.
It could be a good starting point if you want to get started quickly.
The article can be found here.
Update: This article has been out of date for some while, thanks to MonoTouch having moved from v3 to v5 and Xcode having moved from v3.x to v4.x and markedly changing. I've now updated this introductory article and the updated version can be found here.

Monday, 28 February 2011

Mono and Cross-Platform Development

I first bumped into Mono many years ago, way before the 1.0 release. It was one of a couple of non-Microsoft implementations of .NET (or, if I was being pedantic and accurate, it was one of a variety of implementations of the CLI (Common Language Infrastructure) ECMA and ISO standards, of which .NET was the first and defining implementation).

The other one I played with quite a bit at the time seems to have dried up – it was a GNU initiative called Portable .NET.

Another .NET implementation that was pretty exciting in its day was Microsoft’s own SSCLI (the Shared Source Common Language Infrastructure). SSCLI was interesting because it was cross-platform, supporting Windows XP, FreeBSD and Mac OS X 10.2 (or at least that was what the 1.0 release supported). It came equipped with an academic license – no commercial work with it was allowed, but gave a full source base for an implementation of the CLI. A lot of the code was very similar to the .NET source code, although the garbage collector, among other portions, was different.

However SSCLI has stagnated since the 2.0 release in 2006. This is partly due to the fact that Visual Studio now allows you to step through the real .NET source, and so much of the benefit of seeing a whole bunch of the .NET source in SSCLI has diminished.

It did serve as an excellent educational resource though. I did a session on reverse-engineering .NET at an early Developer Developer Developer conference back in 2005 and showed the SSCLI version of ILDASM running within the Visual Studio debugger, allowing you to see the flow of execution through the various dump routines in the code base. Never happier than when neck-deep in a platform’s guts :-)

Anyway, Mono has come on in leaps and bounds since those early days and supports development of applications for iPhone (and iPod and iPad) as well as Android devices using MonoTouch and MonoDroid respectively. But the bread and butter of Mono comes in being able to run the same code base on various different platforms: Windows, OS X, Linux and many more besides. Clearly you have issues with deciding on what to do with the application UI – you can have different UIs on different platforms to have the app look native in each scenario, or you can go the cheap-and-cheerful approach of using something like GTK, where the app looks ‘slightly wrong’ on each platform.

I looked into all this sort of thing in a hefty paper i put together when looking at this at the tail end of 2009. The language used for the paper was Delphi Prism, but the principles of managed code familiar to any .NET or Mono programmer hold true for any language. If you want to review the content of the paper (and the suite of videos that accompanied it) you can visit the landing page or download the PDF paper directly.