Is Adobe Flash Builder 4.5 good enough for cross platform applications - ios

I am planning to develop a outlook based app for cross platforms(iPhone,blackberry playbook and andriod).I recently heard about the adobe flash builder 4.5.1 update to support these platforms using flex framework and action script. I would like to know the hidden pros and cons of this tool in developing cross platform apps.
Few Queries:
Is it compatible with iOS5?
Is it giving exact native look across platforms?
Is it fast and responsive for touch based events?
Can we include any third party sdk's into flash builder project like 3D openGL and external libraries?
Does it have all UI Controls support for all platforms?
Any challenge or hidden disadvantages apart from the above queries are highly appreciated...
Thanks in advance...

My company is developing cross-platform business apps in Flex and found that the performance is good enough for our purposes. I would imagine an email app would be the same, but if you are trying to do streaming or voice quality, I suspect you might want to write to the hardware layer.
Flex does a pretty good job at supporting native look and feel, but you need to think about/design and structure your app up front (ie. does the gestures in your app design match the feel of those environments). If you don't design for it, it won't happen.
By and large having one code base will reap you large benefits. But if you've not written cross platform applications before (linux/Windows/Unix/Mac, etc), you might find more of a learning curve in your thought process and design process.

Related

iOS framework for developing rich graphic applications

Let's say I wanted to develop interface like in Smule (iPhone flute app).
Youtube linke to Smule
What sort of Frameworks I should consider using. Should I stick to native frameworks in iOS such as CoreAnimation, OpenGL ES or, are there any third party framework which makes job easier ?
thanks.
Waruna.
This depends on so many parameters... there are so many options...
Just some questions to get you started:
What are your skills? (Comfortable with OpenGL? What about Objective-C?)
What is your budget? (Money for proprietary frameworks? Time to do low level stuff?)
Is performance an issue? (For smule apparently it is not.)
With a scripting framework like Pythonista this could probably be achieved in half a day and under a hundred lines of code with decent performance... if it would support input from the mic...

How to develop for multiple platforms

I have made my first app in the Android platform. However this is not the only platform and I want to get my apps published on at least Android and iOS platforms.
I would like to have one developing platform for both platforms. What is the options?
I have now tried Flex, Air with Flash Builder. It seems quite promising but the future seems to be a bit uncertain and are also more expansive.
It would be interesting to have some suggestions about what developing tools to focus on if I would like to develop apps on both Android and iOS.
It depends what kind of apps you want to build (i.e. Games, Content Aggregators, etc.) because each 3rd party "App-Generator" that deploys to multiple platforms has their strengths and weaknesses.
Here's a (brief) list:
Appcelerator's Titanium SDK - leverages mobile-browser-based features, mostly for content-aggregators, simple or core feature list on platforms
Corona - leverages LUA-scripting language for 2d / more simple games and applications; has a growing user-base and community; possible to leverage for core-experience as well
Unity - 3d experience, games, usually for more high-end, premium experiences
If you're going to develop on the platform, I always recommend build to that platform's language since you'll never have to worry about what happens when the language is upgraded and your "app-generator" hasn't upgraded yet.
It will also help you to learn the language on that platform (Java, C#, Objective-C, etc.)
I know it's old topic but for those who are still looking for rapid mobile development there is also Kinetise that is code-less tool and offers also backend system/CMS.
You can use Sybase Unwired Platform. It has Device App Designer which can create applications for Blackberry ,Android and iOS.
If you are aiming for high quality, I don't think there is any other way than going native for each platform. Also keep in mind that different platforms have different UI guidelines and principles, and doing a multiplatform project is not a good enough reason to abandon those guidelines.
I recommend phonegap: http://www.phonegap.com

Is Blackberry WebWorks a good development choice?

This is kind of a dumb question but I've aware of classic style JDE development for Blackberry but I've never tried using WebWorks. BB website says that it's possible to build applications for both smartphones (OS 6.0+) and tablets - sounds fantastic, but what's the price?
Is here anyone using WebWorks on a daily basis and capable of describing pros and cons?
Thanks in advance
I would suggest using it if you build webOS applications before hand. It make porting to the blackberry a breeze.
Use WebWorks if you know html5, Css3 and javascript over Java and C++.
I haven't ran into any issues with the webWorks, ported two applications without running into any issues. Its your standard html5, css3 and javascript you love with blackberry APIs
WebWorks is a good development choice, particularly as it allows easy migration from earlier BB OSes to BB10. It's mostly standard web technologies (HTML5, CSS3, etc.) and the team seems focused on making it perform well (e.g. hardware accelerated WebGL graphics) while at the same time providing BlackBerry-specific APIs to make WebWork apps capable and with good UX (e.g. you can make it look like a native app).
For native apps, you should look into Cascades. This is a modern development environment with good tooling, accelerated graphics, and APIs for building snazzy apps. It's the one that will most be a "BlackBerry app".
AIR remains an option, but I would recommend WebWorks over AIR, as even Adobe is migrating from Flash to web technologies. Likewise, you can develop Android apps on BB10, but unless you are keen on Java programming, you will get more cross-platform support from WebWorks (or even AIR) so there's no particular reason to go the Android route.
WebWorks API is limited, for example it does not have socket, so you cannot port a VNC (UltaVNC, tightVNC ..) to it but you can do it with JDE.
For UI, WebWorks allowed me to write UI of acceptable quality quickly and easily, a thing that I have never succeeded with JDE.
Still on the UI side, I can make use of multi-touch (PlayBook), I don't think this one is possible with JDE.
So depending on your needs you should go either WebWorks or Native, having heard that Java may not be supported in BB10, and Air may not be future proof (Adobe favors HTML5 instead of Flash). Android appli has some lag on start up when it is run on PlayBook, some customers are sensitive to the initial even just one time slow response time.
I'm a huge proponent of Webworks. Ever since I've started using it, it quickly became the default option for my apps going forward. Especially for someone like me who is just writing a few apps on the side, I don't have the time to do it in c++.
The apps I'm writing revolve around home automation. They are client/server based from the get go.
Here's why I like it:
First and foremost, native API support. I can very easily create my own active frames, import invocation from other apps (think camera, stuff like that). I can export portions of my webworks app as an invocation card! Which means I can write say 3 unique apps (in this case home automation, lights, thermostat, security cameras). And I can very easily pull features from each app into the other. Maybe I want to turn my lights on in the living room, I can also import the camera card from my IPcam app and view the results, without having to add that code into my lights app and maintain two separate code lines.
Rapid design. Since I've been dabbling in html since I was a kid, it's now very easy for me to whip up an appealing UI in little time. Because web engines these days offer good performance in terms of graphics capability, I also can make apps that behave very fluid.
Considering the time to make something beautiful, it's hard for me to leave webworks and go for something in c++. Also the big plus is often these apps I'm making are intended for multiple devices, namely an app on my phone and being hosted on my personal website. By maintaining two slightly different css files, most of the time I need no code changes, just load a different css depending on if it's a phone or a pc. (Exactly what you'd do if you were developing a regular old website).
For that matter, I actually don't put my code on the device, I host all of my html and javascript, images etc on my server. The webworks app is just the config.xml pointing it's source to my server, and an icon. A glorified website bookmark on the homescreen, only difference is I can use native API and there's no browser bar in the app.
Also, this way I can still continue to edit the same single codeline on my server, and instantly apply changes to the in-browser app and the on-device app.
This is especially cool if you're designing an app where all of it's data is out in the "cloud", say you work for a publication and you want to write a magazine app which pulls content from your servers on the net.

ExEn (XNA -> iOS, Android) and accelerometers, etc

I've been reading about Andrew Russell's ExEn project and I'm wondering what the flow would be like for creating a WP7 accelerometer-based game and then porting it to another platform, say iOS. Here's what I hope would happen:
Create fully functional game in XNA, avoiding dependance on device
specific items like the 'back' button.
Run the project through ExEn (I have no idea on how this would
happen), creating fully functional iOS game.
Run game on iPhone.
Sorry for that pitiful outline, but I just don't have a solid high-level view after reading about it.
Also, being software conversion, surely it wouldn't totally work. How would you iron out the wrinkles? I assume you'd have to know iOS or Android fairly well to pin it down.
Anyway, if anyone can move me one step closer I would appreciate it.
ExEn is an implementation of a subset of the XNA API that runs on different platforms (including iOS and Android). Put simply, it makes the classes and methods that you use when writing XNA code available to you on these other platforms. (Plus appropriate instructions, examples, etc.)
When using ExEn, the bulk of your code should simply "just work". However in most real-world cases you will need to write at least some platform-specific code (and probably provide some platform-specific assets). In particular to support different device resolutions, and also in cases where you use XNA features not available in ExEn.
At time of writing, ExEn does not implement the XNA/WP7 APIs for accelerometer support. At some time in the future they may be added (either by me or anyone who wants to contribute a patch). ExEn is distributed as source code, so you could even add the necessary support yourself.
The alternative would be to write platform-specific code for the parts of your game that query the accelerometer. Using ExEn does not prevent you from also using the APIs of the underlying platform.
ExEn (on iOS and Android) runs on top of Xamarin's MonoTouch and Mono for Android products. These two products provide C# bindings for the underlying platform APIs. Also, much like ExEn implements the XNA APIs, Mono implements the .NET APIs. These products also provide you with the tools you need (IDE, compiler, debugger, etc).
So the iOS API that you would use is UIAccelerometer (doc). This is exposed in C# via MonoTouch.UIKit.UIAccelerometer (doc). I'll leave looking up the Android equivalents as an exercise.
You can't expect:
porting a game to other platform and don't modify it.
porting a game with special platform inherent abilities to other platform that lacks this abilities, or vice versa

Are there any limitations of Flex 4.5 mobile apps on iOS?

I've looked at a few demos from adobe that show apps built with Flex 4.5 running on iOS from simple list views to video capture. This has made me wonder if its an effective solution to build cross platform mobile apps.
For those of you who have taken Flex 4.5 mobile for a spin, what is your impression on the capability and performance on iOS. Is there anything you can't do with Flex 4.5 mobile that you couldn't with a native app? Are there any limitations?
The mobile story in Flex is quite strong, in my opinion. It is what has attracted me to the platform and what seems to be bringing life into the Flex community.
The experience for developing apps in Android and iOS is quite fantastic, actually. The velocity in which you can dev is blazing and the abstractions provided by Flex (data binding, state management, skinning, etc) give you the ability to totally rock your app.
The performance is better than I had expected. It is not as great as a native app, but it certainly gets the job done. The ability to share code and UIs between Android and iOS more than make up for it in most cases.
There are, however, limitations. For one, you are not using the native widget set. You are using the Flex widget set. This means that you do not get the native look/feel. For this reason, it is best to build apps that look like YOUR app... not a Flex app or a native app. There are lots of popular examples in the app stores that work this way... and a Flex app pretty much requires it in my opinion.
There are also a lot of APIs not available to you. Flex provides hardware abstractions for the most popular APIs (video, audio, accelerometer, positioning, webkit, etc) but platform specific APIs are still missing (contacts, calendar, system notifications, etc).
At that point, it is worth asking what your app needs to do. Does it have a lot of native interfacing? If so, Flex might not be right for you. Find the APIs you need to talk to and make sure Flex has an abstraction for you. If it is a data-centric display/edit app, then Flex is a strong fit.
Hope this helps :)

Resources