Choosing a development platform has become as much a daunting a task as the actual development itself and with BlackBerry now offering a selection, it has made the process an even more complicated one. There are so many benefits and advantages that come with having options; the one disadvantage is that, you have options. Confusing isn’t it? A gift and a curse.

My intent is not to make the decision for you; in all honesty that silver bullet doesn’t really exist, but more to provide enough insight to make your decision a much easier one. I’ll focus specifically on the Enterprise side, behind the firewall and inside the work perimeter. Now that we’re here, what are your BlackBerry 10 development platform options? WebWorks, Cascades and Core Native. Take a look at each one and get familiar with the overview, and then let’s walk through the use cases and benefits of each.

WebWorks

Let’s start off with WebWorks, it’s considered the “hybrid approach” because it gives you the ability to build an apparently native application and produce a bar file using web technology that most developers are familiar with. Your HTML5, CSS3 and JavaScript are packaged together and displayed as a headless browser. Since it’s based on HTML5, another major benefit is its cross platform capability, “Build once, deploy everywhere,” which has gained a lot of popularity in the Enterprise space as a reduction in development time is the cost-saving byproduct.

If that’s not reason enough to make it your development choice, this next point should do it. I’ve done more J2ME (Java Platform, Micro Edition) development in the past 6 months than I’ve done in the past few years and that, coupled with confirmation from other Java developers, leads me to believe that UI takes up the majority of development time. In J2ME development, your screen is painted pixel by pixel¬¬—there are different factors to consider such as screen size and dimensions, OS version, etc. All of that is eliminated with the abundance of open source JS libraries and frameworks available to you through WebWorks. You have access to pre-built frameworks that are easily customizable with plenty of online support. User interfaces can often be mocked up and created in a day’s time, giving you more time to spend implementing the logic of your application. It allows for rapid prototyping and applications that require UI flexibility, customizability, and the ability to retrieve and display data. Think Emergency Contact Lists, simple workflow apps, document retrievals, and more. You have the ability to programmatically generate custom UIs based on the data/document type.

Cascades

Any good developer would agree that for an app to achieve the most optimal performance and user experience there is no better option than writing native code. Allow me to introduce you to Cascades and Core Native development. It’s hard to separate the two, but saying they are one and the same would be taking away key characteristics from each. What Cascades provides is a prepackaged UI with the BlackBerry 10 look and feel already built in. It allows you to create a stunning user interface with signature BlackBerry 10 interactions. Earlier we discussed UI and we all know how important it is for your application to be aesthetically pleasing. Enterprise apps are not necessarily known for their beauty, but let’s just say they have a reputation for having a really good personality. Cascades gives you access to all of the core Native APIs while still giving you a rich UI source and Webview capability to incorporate external sites. Cascades also provides some flexibility (as if more options are what you need). You can create your app using the C++ APIs or declaratively implement your UI using QML and JavaScript individually, or a combination of both. How are you able to harness all of this capability to work for you? Think more complex workflows, vacation approvals, or time management applications. It’s ideal for one of the many variations of the 80/20 rule (20% of the application is utilized 80% of the time) for mobilizing existing desktop applications. A key selling point is the ability to utilize the offline capabilities that the NDK (Native Development kit) offers. Traveling execs have now become the norm; giving them uninterrupted access to their important data is crucial.

As easy as pie right? Maybe not so much, but it sure looks as good.

Core Native

Of the three options this would be your least likely choice. Not because it’s lacking in capability, but rather the opposite. What it offers is more appealing to game developers and individuals building robust applications that require deep integration with the device or that are performance intensive. These aren’t your typical everyday Enterprise applications. I will say that if you are a seasoned C++ developer (I’ll let that marinate for a second) and confident in your ability to maneuver around the language, go for it. Core Native does provide a lot of UI flexibility and if you require custom UI development this would surely strike your interest. Having access to all those APIs and with the resources available to you, I can only imagine the possibilities.

In Summary…

Again, there’s no single obvious choice – it’s never that black and white – so your Enterprise applications shouldn’t be either. Add some color, please! What the development options do give you is the ability to decide on the one that is right for you based on the resources available and your unique requirements. Whichever option you choose, there exists an abundance of resources that will help guide you through the process of developing an application that meets your needs.

What affects your selection of an enterprise app development platform? Is it your technical experience, the requirements of end users, or cross platform capabilities? Let us know in the comments.