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.
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.
As easy as pie right? Maybe not so much, but it sure looks as good.
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.
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.