The Application Developer Community is buzzing about AppForum2014, the upcoming three-day event taking place September 8-10 at the Motorola Solutions Briefing & Innovation Center on our sprawling campus in Schaumburg, Illinois. Back by popular demand, this gathering of the industry’s best and brightest is the summer’s most compelling reason to get out from behind the screen.
For those who need a bit of convincing (other than being told that AppForum2014 is FREE and that meals will be served) here are the top five reasons to register without delay:
1. Discover the latest technologies
App developers know how critical it is to keep up-to-date on the most recent innovations. AppForum 2014 gives you the opportunity to learn about game-changing technologies, including Android and RhoMobile.
2. Learn from the experts
Lead application developers will conduct sessions that explore where the industry trends are headed. Listen to what they are saying to determine the next best thing you should be thinking about.
3. Connect with the developer community
When application developers engage with others who are addressing like questions and concerns, they hone their skills and create better apps. AppForum 2014 provides a unique opportunity to hear about other developers’ tips and tricks, the tools they rely upon, and the technologies they use.
4. Get face time with the Thought Leaders
Bruce Willins, the hands-down guru of OS and tech trends, is coming to AppForum 2014. (Here’s Bruce in an interview from the recent Enterprise Apps World event: http://youtu.be/uKNznZd7P08.) So are Joe White, Mark Kirstein, and Chuck Bolen. Getting five minutes with any one of these thought leaders is a valuable prospect in and of itself.
5. Win the Hack-a-Thon
AppForum 2014 is hosting an overnight marathon hacking contest, complete with copious amounts of coffee and Red Bull. Add your brain power to the mix and become part of the collective energy that fills the room when developers collaborate around problem solving. At stake (other than your team’s reputation in the field) are first and second place prizes worth a retail value of up to $5,000.
So what are you waiting for? Join the crowd coming to AppForum 2014 and begin building the next generation of multi-platform apps. Reserve your place today.
Ritesh Gupta is Senior Manager of worldwide Technical Operations at Motorola Solutions.
Many people I’ve met recently are using Windows Mobile devices in their organizations, but are considering switching to Android devices. However, before making decisions on a new operating system, they are concerned about the effort it would take to port their Windows Mobile apps to Android – and to ensure they can do so without having to go through a complete rewrite.
In making smart decisions in application porting, I have been asked if the Xamarin development environment would be a suitable alternative for porting existing Windows Mobile applications to Android. Xamarin has created a subset of Microsoft’s .NET framework and a C# compiler that allows C# .Net apps to be developed for Android and iOS. Would Xamarin potentially lessen the porting effort by allowing some subset of an existing C# .Net code to run as-is on an Android device? Well, it would allow development staff to continue to use a language they know with a very similar app framework, and it would provide the ability to share portions of code between Windows Mobile and Android versions of the same app. However, there are obstacles to consider…
At a minimum, the Xamarin documentation indicates that the user interface (UI) for Windows Mobile apps – Windows Forms – does not exist in the Xamarin framework for Android, so the UI would need to be rewritten. The UI objects and events used to build a Windows Mobile app are very different from those available to build an Android app. Consequently, developers must understand how to use Android user interface components to properly program the Android UI separately from an existing Windows Forms UI.
Missing .Net Components
Xamarin has implemented a core set of the components of the Microsoft .NET Framework, but not all of it.
A .Net Windows Mobile (.NetCF) app may use .Net assemblies that are not compatible with the Xamarin environment. Since the Xamarin.Android framework is only a subset of the Microsoft .Net framework, the more use one makes of the Microsoft Framework in a Windows Mobile app, the less likely it will be that the app will be directly portable to Xamarin without some additional rewrite.
Use of Native Libraries (PInvoke)
The Xamarin.Android environment supports the PInvoke mechanism for accessing native libraries from .NET code, but on an Android this would only work for Android native libraries. If a Windows Mobile app makes use of PInvoke to access native Windows Mobile code, then the functionality of those native modules would have to be created for Android. Depending on what the native functions provide, they may or may not be able to be developed in C# in Xamarin.Android, and may need to be developed in Java and then PInvoked from the .NET code.
Many Motorola Solutions’ customers have made use of the Motorola EMDK for .Net. The components in the Motorola EMDK are not available in the Xamarin.Android environment, but it’s possible that some of the EMDK could be made available just by rebuilding it for Xamarin.Android using the Xamarin toolset. Although most would have to be rewritten to allow for differences in the Windows Mobile and Android architectures.
Implementing Missing EMDK Functionality
In the absence of EMDK functionality, replacement functionality in C# would have to be developed. For instance, without the Symbol.Barcode classes, separate scanning functionality for Android devices would have to be implemented. Motorola Solutions provides documentation and samples for accessing scanner functionality available on Motorola android devices, but those examples are for java code. Some effort would be required on the part of developers to properly interpret that for Xamarin.Android using C#.
Although the Xamarin framework and tools provide some capabilities to assist in porting Windows Mobile apps to Android, it is certainly not just a recompile to run on an Android device. There are several general types of obstacles to overcome as well as a requirement for an in-depth code analysis.
In addition, even if the effort to port an app to Xamarin.Android seems acceptable, would the resulting app have reasonable performance on the device? Well-written Xamarin.Android apps are just as fast as their java equivalents since the Mono.VM generates code as efficient as the Dalvik VM on Android and in some cases the Mono.VM runs faster. Some literature has indicated that well-written Xamarin. Android applications are faster than their Java counterparts. However, each specific app would have its own performance characteristics and it would be wise to choose a heavily-used app and pilot it as a Xamarin.Android application on an MSI device.
My recommendation to those making these choices is first to always understand that any tool used to assist in porting an application is going to have some shortcomings – there is no silver bullet by any means. Depending on a customer’s existing application and future direction some customers would be better to use Xamarin and some would be better using something like Motorola Solutions' RhoMobile. Motorola Solutions also has in-house consulting experts in our Professional Service practice who can also do assessments to help make an informed decision. I see customers faced with these challenges all the time, and while porting applications can be challenging, with a trusted partner, it doesn’t have to be painful.
Brian Reed is Principal Software Engineer, Professional Services Release Management Group, Motorola Solutions