There are basically two issues that are confusing us:
Will a Blackberry app made for mobile phones work on the Blackberry tablet? I see that there is a tablet SDK as well.
Do we have to make a separate versions of Blackberry app for different mobile phones?
The reason we ask this is because we come from the Android environment where we can use one SDK to make app which will work on all mobile phones and tablets as well.
The BlackBerry Smartphone SDK is different from the BlackBerry PlayBook Tablet SDK.
The smartphone applications are written in Java (RIM's version of J2ME, essentially), while for now, there are two editions of the PlayBook Tablet SDK: WebWorks, for development with web technologies like Javascript, HTML, and CSS, and one that is Adobe Flash/Actionscript/Air based. I think there is also one in development with C++ as a foundation.
You can start with the BlackBerry Developer zone - it covers development for both smartphones and tablets:
http://us.blackberry.com/developers/
The BlackBerry Tablet SDK for Adobe AIR can be found here: http://us.blackberry.com/developers/tablet/adobe.jsp
The BlackBerry Tablet WebWorks SDK can be found here: http://us.blackberry.com/developers/tablet/webworks.jsp
Information about development for the BlackBerry smartphones can be found here: http://us.blackberry.com/developers/javaappdev/
For smartphone development, you would probably want to target the minimum RIM OS that would include the most devices owned by your target customer base.
Right now, RIM claims that more than 96% of BlackBerry smartphones can be reached using SDK 4.5 or higher.
RIM keeps an up-to-date set of statistics on this: http://us.blackberry.com/developers/choosingtargetos.jsp
Typically, if you're targeting recent devices (4.7 and newer), then you don't need to worry about splitting your code to target multiple devices, as long as the UI is written without making any assumptions as to screen size, etc.
If you're targeting anything older than 4.7, then it may benefit you to make two versions - one for touch screen devices, and one for devices that aren't touch-screen. The touch-screen API is introduced in 4.7, and while it's somewhat backward compatible, in our experience, while you need the touch-screen API available for devices that support it, it's best to leave it out for older devices that do not have support for the touch API or the virtual keyboards that come with it.
If you're going to split the code, RIM's compiler does come with a C/C++ - style preprocessor which comes in very useful.
Related
I have to develop a BlackBerry application which runs on all the devices running blackberry OS 7.0 and earlier, and can run on BlackBerry 10 devices, too. How can I do that?
Is a WebWorks application able to support all the above platforms? If yes, there's no IDE for WebWorks development .. how shall I code for that?
WebWorks supports BlackBerry OS 5.0+, BlackBerry PlayBook OS, and BlackBerry 10.
Regarding HTML5 featuers, this is dependent on the OS version. For instance, BlackBerry OS 5.0 is a proprietary browser implementation and does not support Ajax requests. BlackBerry OS 6.0 is WebKit-based, but is an older version of the engine when compared to something like a BlackBerry 10 device. So you'll need to be mindful of which HTML(5) features and functionality are supported on the various platforms.
That being said, if you have a shared HTML5 "base", that can be (re)packaged with the WebWorks SDK for Smartphones (BBOS), Tablet OS SDK (PlayBook), and BB10 SDK. Each will create an application that runs in the respective environment: Java, AIR, Native.
If you start looking at WebWorks APIs (i.e. JavaScript APIs that tie down to the native layer for functionality beyond HTML5; BBM integration for one), then you will need to leverage the API docs to see which APIs can be used with which SDK. There may be differences in implementation, or even availability, of various APIs depending on your platform.
HTML5 provides the most common "base" for re-use, but you will still need to be mindful of each platform's limitations and differences.
There is no WebWorks IDE, you can use whichever IDE you like to create your HTML, JavaScript, and CSS resources. The SDK is then leveraged to "package" those resources into a BlackBerry application for the corresponding platforms.
The HTML5 BlackBerry Developer page should have all the information that you need to start creating WebWorks applications. As that page mentions, you can choose to target all of BB10, BB7, and the Playbook OS with WebWorks.
Webworks can target OS 7.0, Playbook and BB10. You just have to download the SDK for the version you want to deploy to. Be mindful that each platform has platform specific APIs that need to be managed if you use them (like using NFC in BB10, etc). This is actually the reason why there are multiple versions of the SDKs. Each SDK exposes native features of the given platform to HTML5.
As for Development. The easiest way to get started is to use Phonegap. Their documentation is pretty thorough and they have scripts that deploy things for you and manage your directory structure, Manage your pins, and keys, developer tokens, etc.
I need to decide whether to use phonegap to create a blackberry application. The lure of the app being deployable to various platforms is enticing however I need to know if it will be able to support Blackberry versions 6.0+. So far the website claims support for 5.0, and 6.0. There is a link at: PhoneGap Supported Versions that is meant to explain which ones are supported however one link doesn't work and another takes you to a dated stackoverflow thread. I get the same results from other searches.
My question is can phonegap support higher blackberry operating systems such as 7.0 and later developments by RIM? Also if stability in terms of not having to continuously modify the application for oncoming OSs was important, would it be better to use RIM's WebWorks SDK rather than PhoneGap?
If you are only going to target RIM phones then the WebWorks SDK is probably the best way to go. If you want to target other devices that run iOS and Android then you should look at PhoneGap.
We get really good involvement from RIM on PhoneGap. They did all the code to add Playbook support to PhoneGap and are currently involved in the unified JS project as well.
As a mobile app developer on all platforms, I am interested to know if it is worth it to write BlackBerry apps for the older OS now that BBX is coming out. I heard the new OS will have an Android player that will supposedly run Android apps on it. It seems that any apps written for the older OS won't be compatible with the BBX OS. Also, is using WebWorks a viable option? What do you guys think?
The road map ahead for developing for BBX announced at DevCon is:
HTML5, WebWorks, Adobe products (Air)
Native C/C++
Android Applications repackaged to run on the Android Player
BlackBerry OS is deprecated after OS 7. That said however, there are currently 70 million (according to RIM) BlackBerry smartphones in use, none of which will likely ever support BBX. RIM will continue to support those devices and the development environments for them. If you only want to work in one environment, and want to support the greatest number of devices, both BlackBerry OS and BBX, then WebWorks is the way to go. If you only want to support the PlayBook and BBX devices then you can use any of the approaches listed above. If you can't do what you want in WebWorks, or want to support devices prior to the introduction of WebWorks support then you will have to use the BlackBerry Java Environment.
At some point in every product line you will come to the end of useful life of a product and, as a developer, have to face moving on into the future. It is going to be worth while developing for BlackBerry OS as long as doing so helps you achieve your goals, what ever they are. So you have to look at your target market and decide if it includes those users who will be carrying BB OS devices, for probably at least the next 3 years, or not.
That's correct, legacy BlackBerry code will be useless:
DevCon update: BB-Java is dead, no java support for QNX.
By the way, the Android player will have several limitations too. Your best bet is C++ for BBX. Luckily, BlackBerry market share is declining and there's not a single BBX device out there yet.
Update: New BlackBerry 10 (as BBX is called now) phones have just been released. Here are the final dev options:
Native C++ API (optional libraries are available)
Android API, partial support
Adobe AIR API, partial support
HTML5 API, partial support
I am deciding between which library to use for development: jQuery Mobile or Sencha Touch. The application I am building will specifically target enterprise (Fortune 500) BlackBerries. The application will not require any hardware features, but the user experience/UI rendering should be as good as possible.
I am not familiar with BlackBerry OS adoption/upgrade statistics so I don't know what platform is my lowest common denominator. Are most enterprise users on BlackBerry 6+ or 5+ or 4+? I just don't know and I don't know where to find those statistics. What is your recommendation?
In my opinion the first step should be studying the audience of your future application.
What model do they use, do they use the most recent models, or they tend to keep working with old models.
The main point is that RIM stops releasing device software for old BlackBerry models.
For instance for BlackBerry 8800 the most recent available device OS version is 4.5
But your customer may have a lot of empolyees who use this device.
Devices with device OS version 4+, but before 5.0, do not work properly with complex html/javascript pages.
In version 5.0 there was implemented better support for complex html/javascript functionality in your applications.
Conclusion: If your potential customers are not using old devices, then start supporting device OS versions 5+, otherwise use SDK version 4.x according to the target devices.
As best practice, I would jump into learning and developing for the latest Operating System, which would be 6. I know all of our customers are working on Bolds a Torches, which means they'd be using 6.
http://en.wikipedia.org/wiki/BlackBerry#Operating_system
Additionally, I would look into creating Adobe AIR applications. They work for Application 6 and Playbooks as well.
http://us.blackberry.com/developers/started/bbdevapproach.jsp
You will likely found RIM's own "Choosing a target OS" page helpful. It has stats on current active devices as well as narrowing down to those devices that use the AppWorld.
Can anybody please help me out with the difference between tablets, iPads and palm devices. I am new in this area and have no idea what are the specifics of this devices or how they differ from one another. iPad is from Apple, are there any other devices similar to iPad but are from HP or Android????
Also what is the difference in developing apps on this machines. Like if I can develop app for an iPad, will it be easy for me to develop a similar one for HP or Android device(if they have something similar to iPhone).
There has been a lot of press lately about tablet devices, Apple seems to have set the pace with the iPad and the iPad 2 is rumored to be announced sometime soon.
iPad apps are written primarily in Objective-C using the iOS SDK free from Apple on the iOS Developer Center. It does cost $99 to deploy apps to a device and distribute them however. There are other tools to develop iOS applications such as MonoTouch and PhoneGap
Blackberry is about to release the Playbook which from my understanding runs Adobe Air applications.
HP just announced the Touchpad which runs WebOS, the applications are primarily built using web technologies (HTML, Javascript, etc)
Then there are a slew of devices coming out that run Android, I think the next one that will be available to consumers is the Motorola Xoom. Android apps are developed primarily in Java using the Android SDK which is free and platform independent.
This market is evolving very fast and there are a lot of players, it seems Apple has the solid ground a this point.
Developing applications for these devices can differ quite a bit, one way that you can reach all devices is by developing a tablet centric webapp such as Yahoo!'s tablet site
I-Pad apps can only be created on a mac PC and will likely share no code with an HP device, I believe HP do make an android laptop but not a touchpad.
Touchpads similar to i-pads do exist and some do indeed run android. Take a visit to your nearest computing or electricals store and they are bound to have one.
A palm device is smaller and fits within the palm of your hand, The i-phone or a blackberry would count as a palm device. Any regular 'non' smartphone(iphones blackberrys again) also classifies but i dont believe this is what you are looking for.
Android is not a company, Android is an operating system that your code will run on. Other companies make the device which then has android installed.