04-28-2012 04:32 PM
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).
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.
CONS: Hard to setup dev environment for each platform (especially on Win). C/C++ problems.
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).
04-28-2012 04:46 PM
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.
04-28-2012 05:06 PM
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).
04-28-2012 06:01 PM
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.
04-29-2012 09:38 AM
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?
04-29-2012 11:39 AM
04-29-2012 01:54 PM
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
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).
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.
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.
04-30-2012 07:40 AM
05-02-2012 03:01 AM
One thing that comes to mind jtegen, is the difficulty of AIR supporting different screen pixel densities.
05-02-2012 04:23 AM
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.