Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Adobe AIR Development

Reply
Developer
Posts: 849
Registered: ‎03-03-2011
My Device: Z10

Which language/framework is the best for developing cross-platform form-based apps?

Hi!

 

It was difficult to choose proper category but because I am using AIR/ActionScript as a primary runtime/language on PlayBook, I am putting question here.

 

I am developing enterprise application that needs to dynamically create UI (forms) and call SOAP WS (RESTful services can be an option). Additionally it has to be cross-platform app (QNX. iOS and Android - possibly also Win/MacOS/Linux).

 

Options:

 

1. AIR/ActionScript

CONS: I can't find any decent (free) flash components (lists, tables, etc.) included with AIR/AS3? Right now I am using QNX classes and AFAIK I don't see any portability there.

 

2. Qt/QtQuick

CONS: Hard to setup dev environment for each platform (especially on Win). C/C++ problems.

 

3. HTML5/JavaScript/framework (Dojo, jQuery, Sencha or Enyo)

CONS: Cross-platform compatibility issues (I am not expert in HTML5 so please confirm this but one of my apps has a huge problem because Sencha Mobile acts differently in BB OS 6 than in BB OS 7). Speed? Debugging.

 

What would you suggest for cross-platform development solution?

 

Keep in mind I want to develop a stand-alone client app that connects to middleware (app server).

 

Regards, SOAman

 

 

--------------------------------------------------------------------------------------
Leader of Ljubljana BlackBerry Developer Group
BlackBerry Certified Builder for Native Application Development
Developer
Posts: 6,541
Registered: ‎10-27-2010
My Device: HTC One, PlayBook, LE Z10, DE Q10
My Carrier: Verizon

Re: Which language/framework is the best for developing cross-platform form-based apps?

There are a couple of issues you brought up.  Are you looking to have the exact same app go across phone, tablet and desktop?  That might be an issue since your pointer device (mouse vs. finger) mostly determines how the GUI works and which components to use.

 

In terms if AS3, there are many native list controls.  There are many table controls as well, but that depends on what you are trying to do in the table (grid information to spreadsheet editing).

 

If your are trying to provide desktop apps, #3 will probably fall off your list.

 

All 3 can call SOAP, REST or any other web type service on the web.

 

Personally, I dont thing HTML5 is just yet ready for enterprise level stuff, but with a little effort it can be done.  I've seen some pretty cool stuff from that camp, but it still has issues with multiple languages (HTML, JS, backend code, etc) along with various browser compatibility issues you will have deal with.

 

I am only partially knowledgeable with QT.  I have years of C++ experience and there are lots of pros and cons for that.  If you have a complete framework, C++ is not too bad.  Never been a fan of the QT event framework.  AS3 (and Java) seem to have that figured out better (IMHO).

 

I personally would use AIR for all of it.  No C/C++ library hell, works the same on all OS and devices.  Lots of samples and components available.  All depends on your skills and timeframe.

 

Hope any of this helps.  Probably stirs up more questions than answers.

Developer
Posts: 849
Registered: ‎03-03-2011
My Device: Z10

Re: Which language/framework is the best for developing cross-platform form-based apps?

Tablets and phones are the main target. Desktop support is a 'nice to have' but not important. Main pointer device would be user's finger.

 

The word 'native' bothers me because the code for UI is not the same. Where to get them (which package, doc)? I need tables for view only. To edit specific part, new screen would appear --> dynamic form.

 

I am missing threads in AIR. Of course I could use ANE and develop parts of C code that must be parallelized but again in that case I am going away from cross-platform buzzword.

 

I am thinking to go with AIR but I really need a package of UI components that are cross-platform (flash package).

 

BR SOAman

--------------------------------------------------------------------------------------
Leader of Ljubljana BlackBerry Developer Group
BlackBerry Certified Builder for Native Application Development
Developer
Posts: 1,280
Registered: ‎03-03-2011
My Device: Playbook, Z10, Q10, Z30 with Files & Folders and Orbit of course
My Carrier: Vodafone

Re: Which language/framework is the best for developing cross-platform form-based apps?

AIR with Flex, most definitely. Use Flash Builder, not Flash Pro. Flex is ideal for enterprise apps and the framework components work on all platforms. Soap, webservices and rest are supported. With a few tricks, you can even build mobile, web and desktop  versions of the app from one codebase.

 

You don't have threads in Flash, but you hardly ever need them because everything happens in an asynchronous and event-driven way. It's only when you have a long-running, computationally intensive and statefull process that you may need threads.

Files & Folders, the unified file & cloud manager for PlayBook and BB10 with SkyDrive, SugarSync, Box, Dropbox, Google Drive, Google Docs. Free 3-day trial! - Jon Webb - Innovatology - Utrecht, Netherlands
Developer
Posts: 849
Registered: ‎03-03-2011
My Device: Z10

Re: Which language/framework is the best for developing cross-platform form-based apps?

I am not familiar with Flex. Are you force to design the GUI in GUI editor or can it be build programatically later during execution?

--------------------------------------------------------------------------------------
Leader of Ljubljana BlackBerry Developer Group
BlackBerry Certified Builder for Native Application Development
Developer
Posts: 6,541
Registered: ‎10-27-2010
My Device: HTC One, PlayBook, LE Z10, DE Q10
My Carrier: Verizon

Re: Which language/framework is the best for developing cross-platform form-based apps?

Flex is more connected with web-based apps, where AIR is more desktop apps. You can use MXML for either, but MXML just gets converted to AS3 during compilation. Even with MXML, you have to do a fair amount of AS3 coding. There are nice things about MXML (GUI builder produces), but I have found staying with pure AS3 is best in terms of code reuse and debugging. The default controls that comes with AS3 does 99% of what most need. It is very easy to creat your own controls as well. There are a fair number of open source controls. If you are using the RIM controls, then it is pretty easy to create a grid control for tables. I've used their controls for desktop and Android deployment as well.
Developer
Posts: 613
Registered: ‎10-17-2010
My Device: (BlackBerry Z10)-> Q10/Passport Dual Use

Re: Which language/framework is the best for developing cross-platform form-based apps?

I would strongly recommend you consider BlackBerry WebWorks for your upcoming enterprise app. I've used both WebWorks and am getting into AIR/AS3 dev now for making my Playbook/BB apps.

 

You're looking to go cross-platform and onto desktop? Use something like PhoneGap to get on BB, iOs, Android. My understanding is that Windows is experimenting with a way to create desktop apps using standard web technologies.

 

Browser Based & Desktop Apps
 

- Google Chrome already allows for this

- Mozilla Firefox recently announced a store for releasing html5/css3/js based apps as well

 

Creating UI

 

In WebWorks

Did I mention, BlackBerry WebWorks is great because you can easily create gui, and amazing interfaces using CSS? The technique is quite simple. You use image sprites or individual image assets. Manipulation usually occurs on the js side with a library like jquery which gives you complete access to effects. Language level, you have webkit transitions which perform much better on BlackBerry Playbook webkit browser than on any other mobile device (see latest html5 speed score). 

 

In Air/AS3

You will probably be required to write more code if you want to go cross-platform in AIR/AS3. Although animations, transition, effects are all super smooth and slick, the amount of skinning, tweaking and coding you'd need to do to achieve a rich ui may not be worth the effort if you cannot deploy your AIR/AS3 application to multiple platforms.

With that said, I am a novice in AIR/AS3, but I found it to provide me the tools to make a smooth user experience. 

 

Function & Web Services
 
Webworks is made to easily interface with web services like REST, SOAP. This is a no-brainer. You can even load assets dynamically into your application using some form of callback mechanism.

 

Other Considerations

  • Don't drink the cross-platform kool-aid 
    Unless you have the financial resources to go cross platform, release your enterprise application on BlackBerry first! BB7+Playbook 2.0 are precursers to a single unified platform: BlackBerry 10.
  • Serious business and enterprise users still trust the security, reliability, and efficiency of BlackBerry! 
  • Release your minimum viable product, and listen to your users. Tailer the function to their needs.

Honestly, I would stick with BlackBerry. They're the only company that listens to their developers and provides you with great access to their resources, knowleadge. You will be recognized in the BB community and not just another nameless developer trying to make a buck.

 

Best of luck to you in your development efforts. 

Developer
Posts: 6,541
Registered: ‎10-27-2010
My Device: HTC One, PlayBook, LE Z10, DE Q10
My Carrier: Verizon

Re: Which language/framework is the best for developing cross-platform form-based apps?

Great stuff greenback. Curious. What do you mean when you say "You will probably be required to write more code if you want to go cross-platform in AIR/AS3"? It what scenarios did you find that this was needed? I've had little issue to go from PB to Android. Does this have to do with iOS and if so, what things were different so that I (and maybe others) can prepare for it.
Developer
Posts: 1,008
Registered: ‎12-12-2010
My Device: Passport (Red Limited Edition)
My Carrier: Mobile Vikings

Re: Which language/framework is the best for developing cross-platform form-based apps?

One thing that comes to mind jtegen, is the difficulty of AIR supporting different screen pixel densities.

-------------------------------------------
BlackBerry Certified Builder for Native Application Development -- Proud member of the Belgian BlackBerry Developer group
Samples: Park in Ghent
Feeling generous? Nominate me for BB Elite member!
Developer
Posts: 849
Registered: ‎03-03-2011
My Device: Z10

Re: Which language/framework is the best for developing cross-platform form-based apps?

Because I started this thread I need add additional information about my requirements:

 

1. My main client platform will be BlackBerry 10/PlayBook but I had a bad feeling that I am going to be asked from big customers that iOS is supported too. Android is too fragmented with so many devices with so many different characteristics that I will just pass unless requested for specific device.

 

2. My main middleware platform will be IBM WebSphere familly suite. I stay on Java there.

 

3. I am concerned that if I put my client side (for free) on app world/store/market and there would be a big bug that would suspend companies from doing their business, approving new release can take days, maybe even weeks. For me it is not acceptable. Unfortunatelly, I don't see any other solution except using Fusion. So here BlackBerry is a big winner. NOTE: I would rather see ability that one BBID/paypal account could be used for all companies devices which could download only specific software. So my app will be client-charged. I would be glad to give 30% to BlackBerry because I know that app would be paid at the time of the purchase. Acceptance of new app release MUST BE premium (1st in the line).

 

4. My app will strongly rely on lists/tables, UI managers and different fields/pickers/etc. because it is a form based business app. Unfortunately I don't want to design each form separately but I want to do that automaticaly/programatically. So MXML is not OK for me unless I can use those UI components dynamically.

 

5. Beside UI, app will strongly use HTTPS, SOAP/REST and XML parsing. If possible asynchronous calls are going to be used, but (unless I am wrong) XML parsing is total synchronous. I am missing threads here. I could use ANE but then I am stuck at multiple native coding.

 

 

--------------------------------------------------------------------------------------
Leader of Ljubljana BlackBerry Developer Group
BlackBerry Certified Builder for Native Application Development