You are browsing the archive for non-tech.

Avatar of marc

by marc

Heartbleed

April 14, 2014 in non-tech

Heartbleed

The Heartbleed vulnerability found in OpenSSL last week has everyone worried, and rightfully so. So of course we did an investigation and wanted to let you know the status of how Heartbleed has affected us and, by extension, you as our customers.

In short, it hasn’t, and everything should be safe.

Our servers run a combination of Windows Server, Linux, and even Mac OS X Server. Thankfully, we found none of our server software to be running OpenSSL versions that were affected by Heartbleed. On top, our customer-facing http://secure.remobjects.com website is running on Microsoft IIS (using ASP.NET and Oxygene) and thus not using OpenSSL to begin with. This is the site that all logins (including for direct website login, but also for Single-SignOn to services such as Talk, or for license downloads from within products) go through, as well as all payment information when you place orders. (On an unrelated note, we want to point out that we never store your payment information. It is passed through to the merchant as you place an order, but your credit card details are not retained by us.) We have received no information from our back-end merchant services provider to indicate they have been affected by Heartbleed.

Our Products are not directly affected by Heartbleed either. Only RemObjects SDK for Cocoa used OpenSSL under the hood until about two years ago, but the library was used only for purposes of the “AES Encryption Envelopes” feature, which does not cover the surface area of the Heartbleed exploit. In addition, RemObjects SDK for Cocoa was migrated away from OpenSSL to Apple’s CommonCrypto library about two years ago, so any applications built with recent versions of RO/Cocoa does not leverage OpenSSL at all.

Standalone RemObjects SDK or Data Abstract Servers implemented in .NET and running over HTTPS using Microsoft’s or Mono’s HTTPS base implementation (pretty much the standard/default if you are running a .NET based RO/DA server and did not go out of your way to hook up a custom SSL layer) are not affected by Heartbleed. Neither are applications hosted in Microsoft’s IIS web server and using Microsoft’s SSL/TLS stack.

That said, if you are deploying RemObjects SDK or Data Abstract servers via HTTPS, we still recommend that you review the parts of your tool stack that fall outside of RemObjects SDK and Data Abstract itself. For Example, Delphi’s Indy libraries optionally use OpenSSL to implement SSL/TLS functionality, so depending on what version of Indy you are using, and what version of OpenSSL you are using with it, your application might be affected by Heartbleed. The same may be the case if you are hosting RO/DA service applications on a web server such as Apache that might be using OpenSSL under the hood.

We will continue to be on the lookout, and keep you informed if any new information arises.

Avatar of marc

by marc

“Steps” for iPhone 5S — written in Oxygene

October 30, 2013 in iOS, non-tech, Nougat, Oxygene


Steps

I’m more than thrilled to let you know about “Steps“, my next/new iOS app.

Steps is a small but helpful app, which works exclusively for the new iPhone 5S, because it uses the new M7 chip that Apple has introduced with the 5S to gather motion data and let you know how many steps you are taking each day.

Whether you’re interested in that to keep track of your daily workout, or just want a fun way to explore this cool new feature of your iPhone — Steps is a great way to do it.

On first launch, Steps gathers up to 7 days of previous walking history. That’s right — Steps (or rather, the M7 chip ;) has been hard at work for you even before you bought it! So you have some data to look at immediately.

In addition to showing your daily step count, Steps (new in version 1.1) also aggregates your average daily steps for the past week and month, and it will keep track of what your personal best has been, so far — including encouragement to beat it, when you get close.

Over time, and without you ever having to think about it again, Steps will update to load in more data as you roam about, all the while keeping track of your past history. Eventually, you’ll have months and months of walking data to look at. You don’t need to launch Steps manually for this to happen (although you will want to launch it to have a look once in a while).

And because it uses the new M7 chip, Steps can do all of this without affecting your iPhone’s battery life at all.

 

It goes without saying that Steps is written 100% in Oxygene for Cocoa. And as with all my previous Oxygene iOS projects, full source code is available on GitHub at github.com/dwarfland/Steps.

So, if you have your iPhone 5S yet, make sure to grab your copy of Steps on the App Store, for only 99c. And if you’re a developer, make sure to check out the code, as well!




Originally published on subspacecables.com.

Avatar of marc

by marc

Come See Brian Long Talk about Android Development with Oxygene at BE-Delphi

October 7, 2013 in Events, non-tech

I’m told that our friend Brian Long will be giving a presentation at BE-Delphi’s annual developer event in Antwerp, Belgium, on November 21.

Brian is a great presenter; we had the pleasure of having him as a guest speaker at DSConf and he has presented on Oxygene for Android and iOS in the past — so if you’re anywhere near Antwerp in November, make sure to check out his talk, and the conference in general.

From Brian’s session summary:

Oxygene is an Object-Pascal based language previously well know in its .NET incarnation as Delphi Prism. Oxygene for Java produces Android apps that run where Android does – in Android’s Dalvik VM. It is for those who have a background in Delphi or a history of Pascal programming from previous times, or anyone who fancies something a bit different from Java, and who wants to use the standard Android APIs in the Android SDK to build lightweight, standard Android applications (or, for that matter, Java applets, servlets, etc.) that can run on any Android device of your choosing.

We’ll look at Oxygene for Java’s capabilities and features in the context of building and deploying an Android application using OS-native controls. We’ll see how the product works, bump into some enhancements to the evolving Object Pascal language and show that Oxygene for Java is a first class citizen in the world of Android development.

You can find out more about BE-Delphi at be-delphi.com.

Welcoming the new RemObjects Software Developer Evangelist!

October 1, 2013 in non-tech

RemObjects is very pleased to welcome Steve Scott (aka “Scotty”) to the post of Developer Evangelist for the company!

ScottyScotty brings a wide range of skills to the table, as his CV shows:

Steve Scott  has  been a  developer for 26 years. He started as a developer in 1987, when he was writing accounting software using COBOL on a Convergent Unix machine using vi as his code editor. Since then he has worked on mainframes, minis, 16bit and 32bit Windows (C++, Paradox and Delphi), .NET (C# and Visual Basic), OS X and iOS (Objective-C and Cocoa). During his career he claims to have worked on more hardware and learnt (and forgotten) more languages and IDEs than any sane man should have to.

During the late 1990s he was an active member of the Delphi community spending some time as the technical lead of the UK Borland User Group (UKBug), as well as being the technical lead for the popular DCon conferences and a regular speaker at BorCon.

As the 21st century took hold, he made the move to .NET and became a respected speaker at many .NET conferences around the world.

In 2007 he jumped ship and headed into the world of Apple to work on Mac and iOS software. In this new world he became the founder of the iDeveloper Blog, host of the iDeveloper Podcast and creator of NSConference.

Scotty will be focusing on improving the user-facing side of the company – work on bringing our products to the attention of more developers world-wide, improving accessibility and discoverability for new users, and working with the teams on enhancing the over-all user experience. You can also expect some more RemObjects TV and Radio in the near future, as well.

Outside of his responsibilities at RemObjects, Scotty will continue to be an asset to the developer community at large, thru his other projects such as the iDeveloper site and podcast, and NSConference.

Android resources

September 20, 2013 in Guest Post, Java, Oxygene, Prism

For those Pascal programmers looking at building Android applications, be it with Delphi XE5 or with Oxygene for Java (I work with both!), here are a few Android-related resources that may come in useful:

  • Google’s Android Device Manager – if you mislay your Android device this allows you to locate it on a map (if it’s got a data/WiFi connection) and also ring it (presumably if it’s a telephone – I haven’t checked whether this option does anything on a tablet). Clearly this is similar to Apple’s Find My iPhone functionality.
    [Update: Jim confirms that tablets will happily ring too]
  • Using remote Android emulators – because Android emulators emulate the device CPU they can be hideously slow, and basically unusable in a VM. If your dev tool runs in a VM then it can be useful to communicate to an Android emulator (technically called an Android Virtual Device or AVD) either on the host machine or another machine on your network. This is a useful technique entirely independent of your chosen development tool as it revolves around how your local adb.exe communicates with the emulator. This post by Jim McKeeth runs through how to set this up using SSH. You can also find a write-up in the Delphi online documentation.
  • If you are using Oxygene for your Android development you may want to look at setting up your AVD to use an x86 CPU, potentially taking advantage of Intel Virtualization Technology via Intel HAXM (Hardware Accelerated Execution Manager) to provide VM acceleration. Delphi developers cannot take advantage of this because Delphi targets the ARMv7 CPU.
  • App testing across many devices. The Android emulator has long been held up as pretty much the only way of testing your app across the range of form factors that different devices can offer. Now it’s not the only option though, as Apkudo for Developers offers developers a free online app-testing platform where your app will be tested on over 260 different Android devices. Just upload your app to the queue and a report will be sent back when the tests have been run.
  • Since Android’s Ice Cream Sandwich release introduced the Roboto font as the default, you may want a copy to install on your machines. You can download it from the link in the blue box here (or this is the direct d/l link).
  • Google’s sample icons pack can be downloaded with this link.
  • For anyone who does presenting it can be very useful to have a means of showing on your computer screen what your device is doing. There are various VNC-based solutions for this out there, but Jim McKeeth has built a simple solution using repeated screen-captures called Android Screen View. You can download the source code for it here or pull down a build here.
  • The Android dashboards show you the percentage of devices sharing various characteristics as obtained from the Google Play store. All the devices in question will be running Android 2.2 (FroYo) and above.
    This device breakdown can be useful to decide what OS and form factor to ensure you support.
    On the dashboards you can see the breakdown of:
    • Android OS versions
    • Screen sizes and densities
    • OpenGL version
  • If you have a nose that needs to be poked inside everything, consider pulling down the Android source code. Information on how is available here.
Avatar of marc

by marc

Embarcadero Prism to Oxygene License Migration

August 15, 2013 in non-tech, Oxygene, Prism

form Prism to Oxygene

Dear Embarcadero Prism Customers,

we want to thank you once again for choosing Oxygene for your .NET development needs in form of Embarcadero Prism.

As you might have already heard, our collaboration and reseller agreement with Embarcadero is coming to an end, and starting with our next upcoming release Oxygene for .NET will be available exclusively from us at RemObjects.

We can assure you that the product itself is alive and well, and with or without Embarcadero we are looking towards a bright future for Oxygene – on .NET and on the other platforms supported by the Oxygene language.

The end of our agreement with Embarcadero, however, means that starting with the upcoming Oxygene 6.1 release the product will stop accepting Embarcadero “Sanctuary” serial numbers, and we’ll be switching all customers over to our own unintrusive, no-nonsense licensing system.

Embarcadero Software Assurance

We do realize that many of you have purchased Software Assurance with Embarcadero in good faith that it would continue to include Prism.

Because we believe in treating our customers fairly, we have decided to fully honor any SA contracts between you and Embarcadero that have been purchased or renewed before April 22, 2013 (the date when Embarcadero announced its discontinuation of Prism) on our own dime, and you will continue to receive free updates for the remaining period of your SA from us.

In order to get you set up on our side, we kindly ask you to do two things:

  1. If you have not already done so, please make sure to register your latest XE3.2 serial numbers with us at remobjects.com/oxygene/registerserial. We will use these registrations to keep track of customers with (potentially) active SA.
  2. Please send us an email to sales@remobjects.com with details about your current SA contract, including when it was bought or renewed and when it expires. Based on this information, we’ll set you up with the appropriate Oxygene for .NET licenses in our system.

If you have active Software Assurance for RAD Studio XE3 or Prism XE3, and you have not received an XE3.2 serial number, please reach out to your contacts at Embarcadero (and feel free to include sales@remobjects.com in CC for your communication, so we can also follow up on our end) to ask them for your XE3.2 key.

We do apologize that we need to ask you for these manual steps, but unfortunately we receive no information or details about Prism users and their SA contracts from Embarcadero, so the only way we have to move you into our system you is by you contacting us.

Renewals, and/or moving to the full Oxygene Package

If you do not have Software Assurance, or your SA ends before August 23, 2013, we have attractive renewal options explicitly for Prism customers that will let you upgrade/renew to our full Oxygene package — with Oxygene for Cocoa, Oxygene for Java and of course Oxygene for .NET..

We have emailed everyone who registered their Prism serial number with us with the details for this today.

If you have not registered your serial yet, but are going to do so, we will email you once we received your registration. If you have any questions, or for some reason cannot register your serial number (maybe because you’re on Prism XE or later, which we don’t accept serials for), please just email sales@remobjects.com with your details, and we will sort you out as best as we can.

Exciting Things Ahead

We’re very excited about the things we have planned for Oxygene (and Hydrogene) moving forward. The imminent 6.1 release contains some very cool features that many of you have been asking for, including initial support for Refactoring (that we’ll build upon further going forward) and other IDE and language enhancements. And we have more exciting and more groundbreaking things planned for the rest of the year and for 2014.

We hope that you will continue to put your faith in us and in Oxygene, even without Embarcadero. Prism, and the Oxygene Language, always have been 100% driven by us at RemObjects, and it will keep getting better and better.

We’re looking forward to having you along for the ride as we move ahead further.

Yours,

marc hoffman
Chief Software Architect
RemObjects Software

Avatar of marc

by marc

2013.2 and Beyond

July 17, 2013 in Data Abstract, non-tech, Oxygene, RemObjects

Hi, everyone.

As we go into the second half of 2013, i wanted to talk a bit more about our plans moving forward, what we have been working on and what we are working on and planning for the foreseeable future.

Oxygene

I can’t believe it’s only been a little over a month since we released Oxygene 6 and Nougat, and so far the feedback we’ve been getting has been just incredible. I am really thrilled to see so many of you diving into Mac and (more so, unsurprisingly) iOS development with Oxygene. Cocoa is a great and exciting platform to be working on, and that will only become more so with the upcoming releases of the groundbreaking new iOS 7, and with OS X Mavericks (both of which i know lots of you have already been using the betas of with Oxygene successfully).

We’re not sitting on our laurels, but moving ahead full steam with development of Oxygene and related technologies, and we have a lot of cool things coming up this and next year.

For starters, we’ve been working on an incremental “July” update for Oxygene 6 to address some bugs and add some minor enhancements here and there. “Gammas” for this release have been out for a while, and we are very close to finalizing the update (think a week or so). July, versioned as 6.0.51 will be a free update for all active subscribers and all Prism XE3.2 users (Embarcadero might have abandoned you on the roadside like a toy they have lost interest in, but we’re not giving up on you!).

Hot on the heels of that will be our August release. Versioned as Oxygene 6.1, this will be a significant update release for Oxygene with a handful of really cool big features and featurettes that i, personally, am very excited about. Of course there is full support for the new Visual Studio 2013 that Microsoft recently announced. There’ll also be ASP.NET MVC 4/4.5 support, and some really cool IDE workflow enhancements, some of which we have been working on for a long while in the background. The first “alpha” of Oxygene 6.1 is available for active subscribers now.

(Do note that as of Oxygene 6.1, the product will no longer be accepting Embarcadero Prism serial numbers, as our collaboration period with the great people at Embarcadero has come to an end for good by the time 6.1 ships. If you are a Prism customer with Software Assurance beyond August 2013, please make sure to contact us, we will take care of you.)

Beyond 6.1, i just want to name-drop a few projects/technologies that we are working on, without going into much (or any, really) detail on them, yet.

There’s “Hydrogene” coming up, which we’ve been dropping a few hints about here and there for a while now. Hydrogene is an exciting new sister product for Oxygene that we think will really be a game-changer. We’ll be rolling out Hydrogene to select beta testers soon, and the plan is to ship the “1.0″ product with the Winter (November) release cycle of Oxygene. This is not a promise for a timeline, though, and we won’t ship (or formally announce) Hydrogene until it is ready.

2014 will be a very exciting year for Oxygene and Hydrogene, and we have three related projects that will bring everything together in ways you cannot even imagine yet:

Fire” started as a personal side-project of mine that runs orthogonal to Oxygene (and Hydrogene), and has recently been ‘promoted’ to something we’re officially pursuing as a company project (and which has made great strides since). If and when it ships, hopefully sometime in 2014, it will become a regular part of the Oxygene and Hydrogene products.

There’s also “Marzipan” and “Infrared” (who comes up with these code names, right?), two amazing under-the-hood compiler-level technologies that Carlo’s team has been working on. Thinking about the possibilities with these two techs makes me dizzy, trust me.

Data Abstract and RemObjects SDK

Over on the DA side, we also have big things in the works. We’ve been thinking a lot about the future direction for Data Abstract over the past year or so, and last month we made the decision to stop and switch gears a bit in how we develop and ship DA (and RO). The quarterly releases we have been doing are great for getting new features out on a regular basis, but they also make it harder for the team to sit back and focus on the bigger picture, and on more fundamental changes.

So we’ve decided to take a bit of a break. A break, that is, from shipping significant releases every quarter. As of right now, we’ll be focusing the majority of our R&D effort on the major “next generation” version of RO/DA, which we plan to ship sometime in the first half of 2014.

The umbrella code name for this project is “DA8“, but this is more than just another major version number increase. We are taking a step back and really rethinking DA, and (re-)designing a DA “for the next ten years” (to borrow a phrase). A lot has changed (and is changing) in our industry since we first came up with DA in 2003, and we have a lot of ideas and plans for what we want to do, to not only make DA stay relevant in the changing market, but to make sure that DA remains the leading and best infrastructure for your data access and server development.

Some of these plans are very concrete, some of them are still very vague and in flux. Some of these changes and features we will start talking about (or even have alpha/beta bits of) very soon, while others will remain under wraps a while longer. Some of these will ship with the first DA8 “1.0″ release in early 2014, while others will be longer-out. Once again, we’re starting on a new DA for a new decade of technology.

Of course active subscribers will stay in the loop on DA8 as it develops. We will have a regular stream of pre-release builds for you to let you get an early start on some of the new technologies and changes as they emerge.

We’re also keeping the current “7.0″ code base active in a branch, and we most likely will keep shipping (very light-weight) quarterly updates for August, November and/or February, to fix crucial bugs or support new platform versions — such as Visual Studio 2013 (which we already have a Gamma of RO/DA out for), Xcode 5/iOS 7/Mavericks, or Delphi XE5.

Summary

As you can see, whether you’re using Oxygene or Data Abstract and the SDK (or both!), we have a lot of cool things planned for you for the next twelve months and beyond. Here at RemObjects, we are very excited about all of these projects, and we can hardly wait to show and tell you more.

Yours,

marc hoffman
Chief Architect

Avatar of marc

by marc

iOS 7 and OS X Mavericks

June 17, 2013 in Cocoa, Data Abstract, iOS, Mac, Oxygene, WWDC, Xcode

As you have probably heard by now, last week Apple announced iOS 7 and OS X Mavericks, new major versions of both its flag-ship operating systems. I had the privilege of being on site in San Francisco and attending WWDC in person, but the keynote with the core announcements is available for public viewing by anyone, and the remaining ~100 sessions of the conference are also available for free to all registered developers (major kudos to Apple for that, and more importantly, for making these videos available so fast, in most cases on the same day as the actual presentations!).

iOS 7 is a major new release and – most observers agree – a game changer. It’s a whole new UI paradigm for the OS, and will be a very exciting release for both users and developers; there are a whole bunch of new technologies that will let you create even better iOS apps, and will make the whole iOS experience even better for the user — in the core OS or with your apps.

Due to the massive UI overhaul, most iOS apps will need a serious rethinking for iOS 7 to stay relevant – which means extra work for developers, but also extra opportunities. From what i can tell (and am allowed to tell), switching an application over to the core iOS 7 “look” will be simple, but really making an app feel at home on iOS7 will require a lot of thought — no way around it.

I have already started moving two of our (internal) apps to iOS 7 while on site in San Francisco, simply because after (foolhardily) upgrading my main phone to the new OS, i could no longer stand looking at the old UI ;). One app is “done” and was relatively straight-forward – mainly a matter of rebuilding with the iOS 7 SDK, and making a few adjustments here and there to better embrace the new style; the other will be more work.

OS X Mavericks (if you don’t like the name, you are not alone. Virtually everybody i talked to or heard talk about it found it “weird”) is a smaller upgrade, by comparison, but also a significant release with a ton of exciting technologies for developers – two that were highlighted in the keynote include the new Maps API and cool new energy-saving APIs and technologies. (And if you’re not excited by being able to make your apps more power-efficient, then you have no business developing Mac apps! ;).)

Of course the big question you’re all asking is how Oxygene for Cocoa is working with the new iOS 7 and OS X Mavericks. The good (and slightly unexciting, because expected) news is: it works just fine. We’ve long had an article on the Wiki that discusses the (simple) steps for hooking up Oxygene with new beta SDKs, and Oxygene is working fine with iOS 7 and with Mavericks (although i do recommend grabbing the latest beta drop of Oxygene, as we already made some tweaks and improvements there).

All the new APIs (IIRC Apple mentioned a number of 1500 new APIs being available) will work with Oxygene out of the box – no need to wait for anyone to create any wrappers or headers for you, and re-building your Oxygene apps with the iOS 7 SDK will give you the new iOS 7 look right away (but not save you from re-examining how to really embrace iOS 7 best with your app, of course).

There are also a few new non-API features that we’ll be embracing with Oxygene as well, but unfortunately those are (afaict) all under NDA, so i cannot talk about them yet. But suffice to say over the next few months we will of course be doing a lot of testing with Oxygene and the new APIs and SDKs to keep Oxygene up to date with the SDKs and the Xcode 5 tool chain.

Of course we’ll also be testing Data Abstract and RemObjects SDK for Cocoa with the new SDKs, and (where applicable) expanding them with support for new APIs. In my testing so far, they work great (both the apps i mentioned above are DA-based, and run fine on iOS 7, for example).

Support

Talking about new iOS and OS X SDKs is always a tightrope walk, as there’s a lot of information that’s under NDA (but available to all registered Apple developers – so do make sure you check out the beta builds and all the videos from WWDC). But Oxygene, as well as RO/DA for Cocoa, are already working great with the new operating systems, and we’ll be working hard to expand those parts that do need explicit support and work to fully embrace the new OSs.

If you have any specific questions regarding support for or issues with the new SDKs, there’s two places to get help: for one, we’ll be monitoring and participating in Apple’s beta forums, so you can post questions about Oxygene there (maybe add “(Oxygene)” to the subject so we can find them easier). And you can also always directly email support.

We cannot discuss the iOS 7 or OS X Mavericks Beta SDKs on Connect; you could be violating your NDA by posting details there, and we’d be doing the same by answering. So be careful.

Summary

I’m very excited about both iOS 7 and Mavericks (and i assume i’ll eventually get over the name, too), and so should you. I’m looking forward to seeing what you’ll build on the new OSs with Oxygene and Data Abstract.

Avatar of marc

by marc

“After which no more maintenance releases are planned”. Not.

June 7, 2013 in non-tech, Oxygene, Prism

Our good friends and trusted long-time partners at Embarcadero have recently sent out announcements to make sure that all of our shared Prism/Oxygene customers are fully aware of their future path for continuing using the Oxygene language, coverage of Oxygene updates for the full period of Software Assurance this customers have paid for, and are assured that their technological investment in Prism/Oxygene are savely going forward.

I thought it might make sense to post this message here, to make sure noone misses it.

Dear Embarcadero Customer,

Embarcadero Technologies is pleased to announce the release of Embarcadero Prism XE3.2.

Embarcadero Prism is no longer an included product within RAD Studio as of the XE4 release. Maintenance updates will continue to be provided through August 2013, after which no more maintenance releases are planned.

We wish you success in using this latest Embarcadero Technologies product.

Regards,

Embarcadero Product Management

We want to thank our friends and partners at Embarcadero once again for getting the word out on this, and for letting our shared customers know where to obtain Oxygene going forward, especially beyond August. It goes without saying that we (RemObjects Software) will honor all active SA contracts, on our dime, beyond August. Please contact us if you have any questions.

Oxygene 6 now includes Oxygene for Cocoa

May 31, 2013 in Guest Post, Java, Oxygene, Prism

Ah, it’s been released… The May 2013 release of Oxygene, released on 27th May 2013, brings us Oxygene 6.0, and Oxygene 6.0 brings us the official release of Oxygene for Cocoa.

The Oxygene language now gives ways of coding for all the currently interesting platforms using the three available editions of Oxygene:

  • Oxygene for .NET (formerly also known as Delphi Prism) – targets the .NET platform, allowing you to build Windows applications, Windows phone applications, Silverlight applications and so on, using the relevant .NET frameworks. Also targets the Mono platform, allowing applications to go to the many places where Mono goes, such as Mac and Linux and also Android and iPhone/iPad using Xamarin.Android (aka Mono for Android) and Xamarin.iOS (aka MonoTouch) using those frameworks.
  • Oxygene for Java – targets the Java runtime, allowing you to build Java apps, Java servlets, Java applets and also, perhaps most interestingly, Android apps. Java apps will use your chosen Java frameworks and Android apps use the Android SDK framework.
  • Oxygene for Cocoa – targets iOS and OS X allowing native ARM applications to be built for iPhone and iPad as well as 64-bit native OS X applications. Applications are built against the native OS X Cocoa and iOS CocoaTouch frameworks.

Oxygene is hosted in Visual Studio 2012 (support for Visual Studio 2010 has now been phased out in Oxygene 6.0). If you don;t have a copy of Visual Studio 2012 the Oxygene installer can set up the Visual Studio 2012 shell first.

For existing users of Oxygene for .NET and/or Oxygene for Java there are some new features added to Oxygene 6.0, including a spate of new conditional defines to help distinguish which compiler built your code or which platform you are targeting:

Oxygene 6.0 edition Edition define Platform define GC/ARC define
.NET ECHOES DOTNET GC
Java COOPER JAVA GC
Cocoa NOUGAT COCOA ARC

However the main thrust of the release is Oxygene for Cocoa, which works in conjunction (if you want) with Apple’s UI designer to support visual UI design via nib (.xib) files or storyboard files. It also understands and fully supports multi-part method names so that it fits in directly with the Objective-C naming system and can represent and refer to any existing methods. It support the iOS Simulator, supports debugging there and on-device and offers all the options needed to sign and provision your apps. It supports ARC (automatic reference counting), understands bridging and uses an LLVM back-end to generate good ARM and 64-bit Intel code.

It ships with all the standard frameworks imported and has a tool that allows you to import any additional libraries you need to work with. Because Oxygene always uses the frameworks that natively exist on the target platforms, there is not an awful lot to learn specific to Oxygene when building Mac or iOS apps. Anything you learn on the Internet about how to build aspects of Mac/iOS apps applies directly – it’s just a case of expressing the various local API calls in the Oxygene syntax, which is a very familiar Object Pascal based syntax.

During pre-release development Oxygene for Cocoa was called Project “Nougat” and I worked with it a lot to keep tabs on how it progressed. I’ve built a whole bundle of test apps to keep on top of (mostly) iOS application development techniques by simply following various online Objective-C tutorials, and just entering the code in Pascal instead of in Objective-C.

I’m delighted Oxygene for Cocoa is now released as I’ve been productive with the tool for quite a long time now. I’ve wanted to make blog posts about how I do thing with it, but given it’s just a syntax shift there hasn’t really been much of a need for it. I guess maybe I’ll do one at some point to show the basics of building up an iOS app in the Visual Studio IDE and getting it launching in iOS Simulator, but after that it’s just writing code in the same way any other iOS developer does; just in Pascal.

On June 17th I’ll be demonstrating the product with a talk at a Developers Group meeting in Maidenhead, UK.

You can find more information about Oxygene for Cocoa at these links:

Buying Oxygene is reasonably pocket-friendly. If you’re new to it then $699 gets you all three versions. Otherwise there is a $499 renewal price for existing Oxygene for Java or Prism customers, a $599 cross-grade price for any users of Embarcadero Delphi or of older Embarcadero Prism versions (XE2 and below) and also a $99 academic price.

If you want to see how you get on with Oxygene 6.0 without committing you can always pull down a trial version first.