You are browsing the archive for MonoDroid.

Avatar of marc

by marc

Choosing the Best Toolchain for each Platform

February 4, 2012 in .NET, Android, ASP.NET, Cocoa, Delphi, iOS, Java, JavaScript, Mac, Metro, Mono, MonoDroid, MonoTouch, non-tech, Oxygene, Platforms, Prism, RemObjects, ROFX, Visual Studio, Windows, WP7, Xcode

Four or five years ago, the software world was simple: if you were a commercial software developer, you were developing for Windows. But this has changed drastically with the advent of mobile platforms such as iOS and Android, the steadily increasing market share of Macs, and the establishment of new development paradigms such as rich web applications hosted in browsers.

Here at RemObjects, I field the majority of so called “sales related” emails (that is, emails that aren’t technical support requests handled by our excellent support team and the product developers) myself — and as this century gets older, I see more and more requests asking what tools and toolchains to pick for different platforms. “Can I develop for both Windows Phone 7 and Android with Oxygene and share code?” — “Which version of Data Abstract is best for targeting iOS?” — “Should I use Oxygene for .NET with MonoDroid or Oxygene for Java for my Android app?”.

There are a lot of great development tool chains for the different platforms out there — be they Xcode/Cocoa, Visual Studio/.NET, Delphi, JavaScript — and sometimes the decision does not seem easy, because here at RemObjects we provide editions of most of our products for various development platforms, and often more than one choice can be applied to a specific platform need.

To help make heads and tails of this, we created a small graphical overview chart on our website that gives insight into which language/framework/product combinations we support on any given platform and — more importantly IMHO — which combination we recommend.*

[*And that recommendation might not always be what you think — for example, I often get looked at weirdly when I recommend Xcode over our own Oxygene (plus Mono) for Mac development. But development tools, even versatile ones such as Oxygene, or Delphi, or Visual Studio, are not and should not be Jacks of all Trades, and thus no single tool, no matter how great (and we happen to think Oxygene is pretty great ;) can be the best choice for all scenarios. We acknowledge and honor that.]

You can find this overview matrix — which will be ever-expanding as time goes by and the development world around us changes — at remobjects.com/products/toolchains; i’m also including a static screenshot of it, below.

May it help you to choose the best set of tools for your needs!



Avatar of marc

by marc

Prism XE2 (Oxygene for .NET) Bits Have Been Finalized for the Upcoming Release

August 13, 2011 in Android, Java, MonoDroid, MonoTouch, Oxygene, Prism, Uncategorized

We just promoted Oxygene to the “master” branch for the upcoming Fall 2011 release (also known as Embarcadero Prism XE2). The result of

git log release-mar11..master

is an astounding 3054 lines of commits that have gone into the build since we RTM’ed Delphi Prism XE Update 1 in March! The first line in the change log is

4433a2c - New files for newcompiler. (Carlo Kok) (10 months ago)

indicating that this release sees the fruits of over ten months of work (actually even more, as work on “new compiler”, as it was called back then, was started in a separate repository, and was only brought into the main “oxygene” git repository with commit 4433a2c) from the team.

Over 1000 (1137 to be precise) of these commits have been made in the past 6 weeks alone, and 429 of those in the past couple of weeks alone.

The team, including our Chief Compiler Engineer Carlo, as well as Brian, Viktoria and Alexander, has done an amazing job and burned the midnight oil on more than one occasion in order to deliver a quality release, and it has been a tight struggle at times due to a deadline not being under our control, but we have made it and we believe we have something great for you in store with this release.

The final bits are building now, after which they will be handed off to our friends at Embarcadero, who will work on integrating them with the rest of their product launch for RAD Studio XE2 and standalone availability of Prism XE2. It is not my place to announce final availability of the finished Embarcadero products to customers, new and those on SA, but the product should be in people’s hands very Soon™.

“Prism”?

As you might have noticed already, we have slightly changed the branding on the product for this release. After three major releases of the product with Embarcadero under the “Delphi Prism” banner, we have mutually agreed to drop the “Delphi” portion of the name and simply call the product “Embarcadero Prism”. For one, “Prism” is what most of us have been referring to the product already as short form; but more importantly, I think dropping the “Delphi” moniker helps both sides and avoids a lot of confusion. Prism and its Oxygene language are not Delphi, and we believe the new naming will help Delphi stay Delphi and will help Prism and Oxygene go the path they need to differentiate themselves from Delphi.

As part of this branding change, we are also moving the “Oxygene” name more into focus again, with Oxygene being the shared language that drives both Prism and “Cooper” (more on “Cooper below); we are also working on a brand new Oxygene Language Wiki and a new website for the Oxygene Language, both to be revealed later this month.

What’s Next?

We might have RTM’ed the first release of Prism XE2 and our new “Oxygene 5″ compiler for .NET, but we still have a lot of work ahead of ourselves. After getting a bit of a breather this next week, the team will dive back in and we will continue with our weekly beta cycle to drive the product ahead. We are also shooting for monthly “stable” update releases for the next few months, as we prepare for the release of “Cooper”.

Ideally, we would like to put updated releases in customers’ hands at the end of September, October and November, respectively; each of these would be minor releases focusing on quality, stability and bug-fixes, without major new features on the .NET side.

So, What About Cooper?

As you probably heard by now, “Cooper” is the code name for our project to bring Oxygene to the Java and Android platform – not via compatibility libraries such as MonoAndroid but as a true Java compiler.

“Cooper” shares the same code base with “Oxygene for .NET” as it ships in Prism XE2. It’s the same compiler code, it’s the same IDE integration – obviously with some extra stuff for Java specific features (such as reading JAR files, debugging Java processes, or packing up Android executables) and some missing stuff for .NET-only features (such as the WPF designer or ASP.NET). In fact, it’s not just compiled from the same code base, it is the exact same binaries – if you install Oxygene for .NET (i.e. Prism XE2) and Oxygene for Java on your system, they will become one single install of Oxygene.

Prism has always been Embarcadero’s solution for .NET and the replacement for Delphi for .NET, and as such, Prism XE2 as we finalized it today will contain the “Oxygene for .NET” portion of the product only. “Oxygene for Java”, as the final product will be called, will be a separate product, available directly from us at RemObjects Software, when it is finalized later this fall. (When we do ship “Oxygene for Java”, along with it there will also be an official update to Prism XE2 that brings the .NET product onto the same level, and will include any bug fixes and enhancements we have made to the shared parts of the product, between now and then).

For those of you interested in Oxygene both for .NET and Java, worry not: Starting with the day of general availability of Prism XE2, we (RemObjects Software) will have both Prism XE2 itself as well as a pre-order for “Cooper” and very attractive bundle pricing for both available for world-wide sales on our secure online shop at remobjects.com/shop.

Stay Tuned

So, as you can probably tell, we are very excited by this upcoming release of Prism XE2, and by what we have in store for Oxygene for the rest of the year. Stay tuned to this space for more information, as we get closer to GA of Prism XE2.

Avatar of marc

by marc

DSConf in Review

February 14, 2011 in .NET, Android, Cooper, Delphi, Events, iOS, iPad, iPhone, MonoDroid, MonoTouch, non-tech, Oxygene, Prism, RemObjects, ROFX, Visual Studio, Xcode

DSConf

It’s Monday February 14, 3AM and i’m jet-lagged and back home from Las Vegas, where our three-day Developer Solution Conference ended – what seems like a few hours ago – on Thursday.

DSConf Las Vegas was the first conference we have ever organized, and has been the first state-side events of our partners in crime, the Developer Experts.

This being our first event, and having a lot of time, resources and money invested into this over the past three or four months since we started planning, we were of course nervous about how the conference would go. Did we have the right mix of content? would our one-track, half-sessions/half-workshop approach work? would people like the event? heck, would anybody show up?

To say that we’re very happy with how the event turned out would be a tremendous understatement. interest in the conference was great, and with 40 registrations, we certainly reached our goal as far as pure numbers of attendees go. But what’s more important, people really dug the concept of DSConf and our sessions+workshops approach, and again and again attendees approached me (and my fellow staff) telling me that the conference was “exactly what [they] were looking for” or “just perfect”.

DSC 9736

DSConf was held at the MGM Grand, where we had access to three rooms, one for the main session and workshop, one for breakfast, lunch, afternoon sneaks and Embarcadero’s sponsor booth, and a third where attendees could break out to, to sit down and code, away from all the action.

DSC 9753

Day 1 started (after a brief introduction of all the staff) with an overview of the development tools, with Jim and Olaf first looking at Delphi XE and Delphi Prism XE, and Daniel then giving an introduction into Xcode and Objective-C (with a little bit too much focus on how “weird” Objective-C is, if you ask me [i love it – i don't think it's weird at all ;], but people enjoyed it and learned a lot). After lunch (a great mix of Asian food provided by the awesome MGM Grand catering staff), Daniel Wolf started his session on UX design and paper prototyping, followed by a hands-on workshop on the same topic, which everyone seemed to agree was the highlight of the day:

Paperprototyping
Photo: Jim McKeeth

We closed with a workshop for the development tools shown earlier in the day, before releasing attendees to dinner and a free Poker Training session put on by MGM staff especially for our attendees. Those not interested in poker joined us back in the conference room for some late-night coding.

Day 2 came bright and early, with the keynote from Embarcadero’s David I – giving an overview of the current Delphi XI and the plans for the future, including a demo of Delphi/x64 and some hints at what’s coming down the road with VCL+. After that, we dove into multi-tier. First Jim gave us some background on why you’d want to bother with multi-tier in the first place, then Olaf and Daniel took the down-and-dirty road of showing attendees how to do data access the old fashioned way – custom REST and JSON parsing, and all those gruesome details.

After lunch (mediterranean food, which i did not get a chance to eat but was told was excellent once again) Holger and Jim dove into Data Abstract, showing how to create clients and servers with either Delphi or Delphi Prism.

Every conference needs it’s hick-up, so the last three hours of the day saw me on stage with Holger and Daniel leading developers thru our workshop and working with Data Abstract for .NET in Delphi Prism. I’m not an on-stage kind of guy, but things went well, and Daniel clearly enjoyed telling me how to use my product on the big screen ;).

If you’ve been to conferences before, you know that usually half the audience is checking their mail or catching up on twitter while talks are going on. But – just as in the workshop the day prior &dasnh; pretty much every attendee was following along with the workshop, as we plugged thru the details of DA/.NET, DA LINQ, RemObjects SDK Roles and creating custom web service methods that performed mathematical operations only Daniel will understand. While we were on stage guiding the workshop, the rest of the team roamed the room to answer questions and assist attendees who ran into problems.

DSC 9756

After the dinner break (i went to eat an excellent Teppanyaki with the RemObjects crew and a few friends), attendees met again for an “open bar and networking” evening.

Day 3 was all about mobile development, with three sessions dedicated to iOS (iPhone and iPad), Android and Windows Phone 7, respectively. The iOS session touched briefly on MonoDevelop, but then focused on Xcode (personally my favorite way to develop for that platform); the Android session was given by our guest speaker Brian Long (who’s presentation, if i may say so, was one of the highlights of the conference), providing a great and in-depth introduction to MonoDroid (a topic unknown to myself, as well, up to that point). Last but not least, Jim introduced the attendees to Windows Phone 7 development with Silverlight.

All three sessions consisted of about two-thirds of an in-depth view at the platform and development tools themselves (with Delphi Prism being used for all three .NET based tool chains, although the principles shown would have applied just as well to C#), and one third of a look at how Data Abstract rounds those platforms off with multi-tier client functionality.

CooperSlide1

Next up came the part i was most excited about: Jim spent half an hour giving a sneak peak at a new top-secret project that has been brewing in our labs for a while now: “Cooper”. DSConf attendees were the first people outside of RemObjects to ever hear about Cooper, but now that the word is out: Cooper is a new compiler that brings the Oxygene language (that you all know an love from Delphi Prism) to the Java and Android platforms. Just like Oxygene, when first releases, aimed at bringing the “full .NET experience”to Pascal developers, Cooper does the same for Java. it links directly against the Java class libraries and generates 100% true Java (or Dalvik, Android’s variation of Java) executables, and is a “true” Next Generation Object Pascal for Java. (We’ll have a video reproducing the DSConf session up on RemObjects TV within the day, and stay tuned for more information, soon!).

CooperSlide2

“Cooper” was met with a lot of excitement from the attendees, and i believe it will be one of the most interesting products we’ll be shipping this year.

But, time to move on, and day three of DSConf ended with a set of workshops putting the knowledge from the morning to use – with the help from Daniel, Brian and Jim on stage, attendees went on to build mobile clients for the Data Abstract server created the day prior, for iOS, Android and Windows Phone 7.

 

So people showed up, all the sessions went well, but the greatest part of the conference for me has been talking to all the attendees – many of which long time customers who’s names i’ve seen again again but who i had never met, and just as many who were completely new to our products.

There’s two things attendees said to me that i will never forget. The first was a long-time customer coming up top me, telling me how long he’s been using our stuff and saying “Thanks. You guys have made me a lot of money.” That must be among my favorite customer quotes ever. The second was a guy – new to DA – who looked me up, said he’d loved what he’d seen, and asked what Data Abstract would cost. I told him, and after looking at me – flabbergasted – for several seconds, he said “That’s all? That’s per deployment, right?” Nope, i told him. That’s the flat license, per developer.

DSConf Team
Photo: Nate Woolls, TeamRO

So we’re very happy with how DSConf turned out. Tired, yes, but very happy. So happy in fact, that we’re already planning the next event. I cannot go into details yet, but stay tuned to http://dsconf.com for more information soon (and sign up to the DSConf newsletter to stay up to date).

Avatar of marc

by marc

Only Two Weeks till DSConf Las Vegas!

January 25, 2011 in .NET, Android, Cocoa, Events, iOS, iPad, iPhone, MonoDevelop, MonoDroid, MonoTouch, non-tech, Platforms, Prism, Relativity, RemObjects, ROFX, Visual Studio, Xcode

It’s Tuesday January 25, and we’re only two weeks away from DSConf Las Vegas, the first of our Developer Solutions Conferences that RemObjects Software is putting on in partnership with our friends at Developer Experts.

A lot of things have been falling into place over the past few weeks, and we’re very excited about the event. We have finalized our time table, which i know many of you have been looking forward to seeing, and there’s a lot of exciting sessions there. We’re also very happy to welcome on board as guest speakers Brian Long, who will be joining our own Jim McKeeth on stage to cover Android development with MonoDroid, and David “I” Intersimone from Embarcadero who has agreed to kick off day two of the conference with a keynote on the state of Delphi, present and future.

New Mobile Platforms for Data Abstract

Personally, i’m most excited that we’ll be showing off support for not one, not two, but three new mobile platforms in Data Abstract for .NET: MonoTouch, MonoDroid and Windows Phone 7. All of these are new for our next upcoming “Spring 2011” release, and DSConf attendees will be the first to not only see this in action, but also get their hands on a pre-release of Data Abstract for .NET that supports these frameworks.

While we have long supported native development for iOS with our Data Abstract for Xcode edition (and that prefers my personal favorite for working with iOS, by a long shot), having all three platforms supported by DA/.NET gives a unique opportunity to share non-UI code between the three client platforms, if that is your goal – something we’ll be covering at the conference.

mobile-platforms-640.png

Meet the Team

Jim McKeeth will be representing RemObjects Software on stage, next to our guest speakers and the Developer Experts, but the entire RemObjects Software executive team will be on site in Las Vegas, including yours truly (Chief Architect), Carlo Kok (Chief Engineer on the Oxygene compiler that is the heart and soul of Delphi Prism) and Mike Orriss (General Project Manager). We’ll be looking forward to meeting and talking to all of you, discussing our products or answering any questions you may have.

And a Sneak Peek at “Cooper”

Also (and i’m not supposed to mention this ;), DSConf will be your chance to get a sneak peek at project “Cooper”, a very exciting technology that we have been working on related to (but not part of) Oxygene. I can’t go into more details yet, but suffice to say you will want to see this.

Cooper.png

Come to DSConf

If you have not registered yet, don’t hesitate and head over to dsconf.com/registration now to reserve your ticket – at only $799 for the whole three-day event. We’re looking forward to meeting you in Las Vegas in two weeks!

yours,
marc

What are you thankful for about Oxygene / Delphi Prism?

November 25, 2010 in .NET, Delphi, Hydra, Mono, MonoDevelop, MonoDroid, MonoTouch, Oxygene, Personal, Prism, Visual Studio, Xcode

Oxygene compilerI originally planned to write all these Thanksgiving week posts ahead of time, and then schedule them, but that didn’t happen. So it is Thanksgiving morning and I am using the Wifi from my remote office in Boise (aka the kitchen table of my sister-in-law’s house) to post this one.  Going to head over to my mother-in-law’s for turkey and trimmings shortly.  Happy Thanksgiving to anyone else in the United States, and Happy Thursday to the rest of you.

RemObjects makes Oxygene, which is heart of Delphi Prism.  Whatever you call it, it is pretty amazing technology.  It supports all the latest .NET features and lets us develop .NET applications in Pascal.  There is a lot to thankful about it, but I will a few things about it.

  1. Parallel Extensions – Baked right into the language with Parallel Loops and Futures.
  2. Aspect Orientated ProgrammingThe Cirrus AOP Framework lets you reprogram the compiler.
  3. Class Contracts – The Class Contract support lets you include pre-conditions and post-conditions on methods.
  4. Windows Presentation Foundation – Microsoft’s new vector based GUI widget system.
  5. Silverlight – A cross platform rich web application framework, similar to Windows Presentation Foundation.
  6. Windows Phone 7 – Microsoft’s new Windows Phone 7 uses Silverlight for application development,  and did I mention Delphi Prism does Silverlight?
  7. Mono Support - Cross platform Linus and Mac OS X application development.
  8. MonoTouch – iPhone application development.
  9. MonoDroid – Android application development.
  10. Works Great with Hydra – Combined with Hydra it is the easiest way to combine .NET and Delphi native features in the same application.  Did I mention we have a combo deal on the two of them?

Just found out that they moved up our Thanksgiving dinner plans, so I need to go before I finished my list.  Hopefully you can help finish the list for me in the comments bellow.  So, what are you thankful for about Oxygene / Delphi Prism?

Teaser – MonoDroid with Oxygene

August 20, 2010 in .NET, Android, Mono, MonoDroid, Oxygene, Platforms, Prism, Visual Studio

Now that the MonoDroid preview is out, I thought I’d experiment a little with Oxygene (aka Delphi Prism), so I ported the “Button” sample to Oxygene. Here’s a taste of what I came up with:

method Activity1.OnCreate(bundle : Bundle);
begin
    inherited OnCreate(bundle);
 
    // Create your application here
    var button := new Button(self);
 
    button.Text := 'Oxygene Says: Click Me!';
    button.Click += method begin
      button.Text := string.Format('{0} clicks!', count);
      inc(count);
    end;
 
    SetContentView(button);
end;

As you can see, there’s not a lot of difference from the C# version.

Obviously, this won’t be in the build that we RTM’ed last week, and will soon be available from our friends at Embarcadero, but it will work with said release. So if you’re a Delphi Prism customer, or just have a fondness for Pascal syntax, keep an eye out here – more info will be available soon, including templates & other support files.

method Activity1.OnCreate(bundle : Bundle);
begin
inherited OnCreate(bundle);

// Create your application here
var button := new Button(self);

button.Text := ‘Oxygene Says: Click Me!’;
button.Click += method begin
button.Text := string.Format (‘{0} clicks!’, count);
inc(count);
end;

SetContentView (button);
end;