Phonegap Hybrid App - Device Compatibility - jquery-mobile

What is good UI framework for Phonegap app? My highest priority is compatibility with older devices. Ionic looks promising. But it supports newer devices only. Tried Onsenui. It is simple and straight forward. But it seems OnsenUi is not tested with different devices. When I checked Jquery Mobile docs, it supports older version of Android also. So is Jquery Mobile a better UI framework in terms of compatibility for hybrid mobile apps?

you can try out http://dojotoolkit.org/
It has support for mobile platform as well
You can look at the MOBILE demos here
http://demos.dojotoolkit.org/demos/
The Mobile has support for Android/IPhone, Blackberyy, Windows OS out of box and compatibility with OLDER devices.
There are many features in dojo toolkit. I am just mentioning you a few of them.
feature link : http://dojotoolkit.org/features/
1)it is free to use for both commercial and non-commercial use.
2) Multilanguage Support
3) Built in Automated testing framework.
4) Build framework ( Building packages, Minification, Optimization, Obfuscation etc.)
It also had good enough tutorial. Refer:http://dojotoolkit.org/documentation/
It is supported by IBM, MOZILLA etc.

Related

Blackberry App for OS 7.0 and earlier, with blackberry 10 support

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.

Difference of Native packaging between Sencha touch2 and PhoneGap

What is the difference of native packaging between Sencha touch2 and PhoneGap?
Many people use PhoneGap to natively package app based on Sencha touch, but I find that Sencha touch 2 has a new feature of native packaging.
So which type of native package is better in Performance, scalability, functionality, maturity, etc. ?
How do you choose?
PhoneGap is a middle-platform which is able to access some native APIs on many platforms and its interface language is Javascript. This means that PhoneGap is able to work with many cross-platform mobile web frameworks, such as: Sencha Touch, Titanium, jQuery Mobile, etc.
Sencha Touch 2 also provides a few native APIs (currently available on iOS, Android) through its SDK.
If you are not going to use any native APIs, then they don't have any major differences on performance and functionality as the only work done is just to wrap your Javascript code into a webview native component on corresponding device.
Lastly, the 2 main differences are:
PhoneGap provides much more APIs than Sencha Touch SDK.
PhoneGap supports 7 platforms, while Sencha Touch SDK only 2.
I had the same questions, I agree it's a real mess at first glance. Here is a very good article that "clears up confusion" quite well.
To quote the gist of the article:
Sencha Touch (and jQuery Mobile) are mobile web frameworks. You can use these technologies to create web-based, mobile apps. They don’t have access to any native API’s.
You can use Sencha Touch and jQuery Mobile inside both PhoneGap and Titanium. If you decide your html/js is cool as a native app too, you can use either PhoneGap or Titanium to wrap a browser around your app and put it in the app store or marketplace. This is where, I think, the confusion comes. Putting your Sencha Touch or jQuery Mobile apps in a native wrapper doesn’t make it a native app. It makes it appear as if it is a native app. You might get some extra functionality from PhoneGap or Titanium API’s, but it’s still not necessarily a ‘native’ app. It’s a web app running locally on the device. It’s a great way to use web technologies inside a native-like area.
The difference is that Sencha Touch allows you to build native iOS-Applications even on Windows, whereas PhoneGap 'only' bundles your HTML files into an XCode project, which further needs to be compiled on OSX for distribution/packaging.

PhoneGap Support for Blackberries 6.0+

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.

How many versions of Blackberry apps we have to make?

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.

Which BlackBerry OS to target for enterprise web applications?

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.

Resources