Crosslight Introduces Support for Xamarin Unified API
In the recent Evolve 2014 Xamarin announced 64 bit support and unified API for iOS and and Mac development which greatly improves code sharing between the two platforms. For the iOS platform, Xamarin introduces a new assembly called Xamarin.iOS which contains the new unified API among many other enhancements. More importantly, apps built with Xamarin.iOS will automatically support both 32 bit and 64 bit processor architecture which is required for new apps submission or app updates to Apple Store starting February 1st 2015.
Due to major fundamental changes, Xamarin introduced a new Xamarin.iOS assembly which will replace the monotouch assembly. This means that every library built on monotouch will need to be migrated to adhere to the native unified type and compiled against the new Xamarin.iOS. But no worries, we’ve got you covered! Just in time, we have upgraded every Crosslight iOS component to support the new Xamarin.iOS. Read on.
Introducing Crosslight iOS Unified Assemblies
We’re pleased to be the among the first Xamarin Enterprise partners to support the new unified Xamarin.iOS runtime. We have made available a set of new assemblies that leverage the unified runtime — see the list below.
These new assemblies can be found in a folder called “iOS.Unified” within the bin folder. The classic Crosslight iOS assemblies remain as is (in the bin folder), so you can continue working with existing projects that still use the classic Crosslight iOS assemblies.
It is worth to note that we will continue to support and maintain the classic Crosslight iOS components. However, new iOS components in the future will be solely based on the unified API to comply with the upcoming Apple’s 64 bit requirements.
And here’s the best part — there are no code changes needed in your existing Crosslight iOS projects. That’s made possible because your Crosslight iOS projects mostly contain only lightweight wrapper classes to describe the view. Your real assets — the user interaction and business logic — remain untouched in the Shared project which will continue to work flawlessly, thanks to the strong emphasize on separation-of-concern (SoC) and architectural design pattern in Crosslight.
In fact, the only thing you need to do is simply upgrading your iOS project to the new Unified iOS project type with Project Migration tool available in Xamarin Studio and change the Crosslight assembly references. See the following screenshot.
Once the migration has completed, you will notice that your iOS project will now reference the new Xamarin.iOS assembly, not monotouch any longer. Finally, remove the existing Crosslight iOS assemblies, and add the new Crosslight Unified assemblies from the bin\iOS.Unified folder.
Note: If you do not see the Migrate menu in Xamarin Studio, please update Xamarin Studio and Xamarin.iOS to the latest version currently available in Beta channel.
Crosslight 3.1 update can now be downloaded from our Git server here. In addition to various stability improvements, this release also includes the Crosslight iOS Unified assemblies which you can find in the bin\iOS.Unified folder. More details on the change log can be found in Crosslight 3.1 release notes. Not sure how to apply Crosslight update? Check out our update guide.
We highly recommend you to migrate your projects as early as possible so your apps are ready when the new Apple Store requirements take affect on February 1st. Xamarin will officially release the stable Unified iOS on early January, and so do we.
If you’d like to test drive the unified runtime prior to migrating your projects, please check out the migrated Crosslight iOS samples in feature/ios-unified branch. Some of the migrated samples include: MvvmSamples, DataSamples, DataSamplesDrawer, DrawerSamples, MyInventory, and MyInventory_WebApi. The rest of samples will be migrated completely on early January, in time with the final release.
For questions, issues report and feedback, please post them in Crosslight Community Forum.