I'm making an app for Iphone and android. And I'm wondering what the pros and cons are for flashcs6 (as3) and for html 5.
I'm into flash so I have no idea about the possibilities with html5, some guy pointed me on the fact that developing apps for andriod and iphone might be easier to do with hmtl5...
So I'm wondering what you guys think about this..
Greetings,
Merijn
I looked into using HTML5 for a mobile project a few months ago and found that it isn't yet as mature as AS3. It wasn't horrible - if I had decided to stick with it, I'm sure I could have made a great app. The problem was that there was no compelling reason to choose HTML5 over AS3, so I stuck with what gave me the easier development time. In a year or two from now, I imagine that HTML5 mobile dev will be a lot more mature and easier to work with though.
I can't speak feature to feature as I was just looking into making a game which just required being able to render to the screen and no device APIs (accelerometer, camera etc.). Performance-wise, AIR seemed to win out but not by a huge margin.
For now, it would come down to whether you want to pick up HTML5 (certainly a good skill to learn) or whether you want to just deploy as soon as possible in which case I would go with AS3 (more mature tools, libraries, etc.).
Of course there is no "right" answer to this question, but an oppinion. HTML5 with JavaScript is looking promising in my oppinion. HTML5 is not yet "finished" but it is at least in parts implemented on newer mobile devices.
Check out ImpactJS for a demo of what you can do using HTML5 and JavaScript. Its a javascript game engine which shows that you can use this for IPhone and other smartphones. (As well as newer desctop browsers)
Here you can find information about which browser how much of the html5 standard supports allready.
There are also other options depending on the type of app you want to create. For instance jQuery mobile can be used if its a "simple".
Related
I wanted to know if it is possible to do the following:
Build a mobile app using HTML5, CSS, and JavaScript
Embed a Flash game (SWF) on one of the pages of the application
Wrap with PhoneGap, and deploy on Android an iOS
Keep the Flash game's functionality
I am considering doing this for an upcoming mobile project, and considering my options. I can build in all Flash, or I can build using HTML5 and just embed the Flash on one page. HTML5 would be much faster and cost-effective, and could accomplish what I need for the app's UI and everything else. The thing is that I need to incorporate this Flash game into the site. Will that mean that I have to build the entire application in Flash in order to accomplish this?
Thanks
Are you the last person on Earth to hear that Flash doesn't work on iOS?
Well, I have news for you: Flash doesn't work on iOS ;-)
You can use Adobe's CS5 tools to compile your Flash game as a native iOS app (which is probably your best bet if you're determined to go the Flash route) but you can't display a SWF on an iPhone, regardless of how it is embedded.
Embedding the SWF using PhoneGap may be a semi-viable solution on Android (at least for some handset models), but the performance is unlikely to be that great, and since Adobe have officially abandoned Flash on the mobile, making Flash games for Android is not a very future-proof strategy at this point.
You'd be better off trying to create your game using a pure HTML5 game development library such as ImpactJS - the tools are not quite as rich as what you get with Adobe, but the cross-platform support and future outlook is much better.
Here's a nice table of different cross-platform JS game engine solutions that somebody put together: https://github.com/bebraw/jswiki/wiki/Game-Engines
For simple animations You can also convert flash to HTML 5 (with Abobe tools , form google html5 convert dosen't ) and than put it in web view any platform Windows Phone, Win store.....
html 5 will work even without cordoba or phone gap
I have android app which works fine. And now I want to add some graphical features using WebGL ,but I have not a lot of experience in 3d, especially in android. I need suggestion that how would be worked my android app (I mean performance) after integrating this new feature?
And also I'd like to know in my app can I use "WebGL code", which works fine for pc browsers?
Your question is a little unclear. It sounds to me as if you have a native Android app that you want to add 3D content to. If so, WebGL is maybe not your best bet.
WebGL is a interface to OpenGL that works through a web browser, coded with Javascript. While you can convince some mobile devices to work with it, it's typically not available through most mobile web browsers. That may change in the near future, but it's anyone's guess as to exactly when. Point being, WebGL is not a viable target for phones right now.
If you have a native Android app though (coded with Java), you can access OpenGL ES 2.0. Capability wise it's identical to WebGL, but you can access it through the platforms native language, which will typically lead to better performance. If you have a WebGL app, it should be pretty straightforward to port to Android since the APIs are largely equivalent.
If you want to start using OpenGL in your Android app, the documentation is here.
Chrome experiments now have a section for mobile https://www.chromeexperiments.com/mobile.
Though you can play wide range of webGL examples in android chrome browser by enabling webgl as shown in pic below :-
This way you would be able to use webgl in chrome browser :-
Unfortunately old WebView does not support webGL but WebView V36 does have webGL support . You can openGL for similar purpose.
The Challenge
I would like to create a simple website for:
iPhone 3 and 4
iPad
Android 2.2
– BBerry OS 7 and Playbook Browser
Symbian
Desktop Webbrowser
The Problem
Whats the "best-practice" for detect, optimize and deliver the Webapp for each device/screensitze? I know this is about HTML5, CSS3 Mediaqueries and JS. HTML5 Boilerplate is a good point to start.
But:
Should I detect Browser/Devices via backend/front? What are good
libraries?
How Do I detect different screensizes? What are good libraries?
etc.
Use Phone Gap as your starting point.
Depending on your use case, there may be other libraries you may want to pile on top of it, but basically Phone Gap is what you should start with.
My suggestion would be to use Sencha Touch. Its a very mature mobile app frame work with a very active community. They support any mobile that uses the webkit based browser which is everything on your list(Im not sure about the symbian browser).
Sencha 2 which will be released by the end of october will have its own native packaging library, so the use of phonegap wont be required. But it work well with phone gap if preferred.
Mobl is new language for the mobile web. just a look on it.
Adobe's Edge is the most refined HTML5 creator that also supports Android, iOS and Playbook (IMHO forget about Symbian, that's Nokia's half dead platform). BB7 uses webkit like most other desktop and mobile browsers.
Note that coincidentally Phonegap (that I see in other answers here) is part of Adobe now.
You can give a try to Titanium's new web SDK too.
And then look at this SO question which is very similar to yours and has lots of useful links in it.
Hey,
I'm writing a simple game based on my physics engine for Android (in Java). Because I want to play with some special graphic effects performance is very important for me.
I read on the Internet that you can write an application in ActionScript3 and then just export it as an iPhone/iPad or Android application. That means, I wouldn't have to rewrite everything from Java to Objective-C if I wanted to make version also for iPhone.
Do you have any experience with writing games in ActionScript3 for both Android and iPhone/iPad? Are there any significant advantages / disadvantages?
I have made games with both AndEngine and air for android. Air for android is vastly slower. If you game needs performance, Air 2.6 - the current release - will not be able to handle it.
AIR 2.6 can handle simple games. One with a little performance to spare.
I am hopeful that AIR 2.7 (in beta now) will improve things, since it supports OpenGL. But for now I would have to say stay away from AIR for performance games.
To see an example of a simple game made with AIR, check out this one made my a friend of mine:
http://www.appbrain.com/app/kibble-katchers-free/air.com.munchiegames.KibbleCatchersFree
It plays OK, but chugs sometimes if you have a lot of things going on at once.
If your game is going to be more intensive than that, pass on AIR.
In my experience, it's always better to write applications in the native language for the device. Of course, depending on the scale of your game, the advantages may not matter. When using Flash to export to iOS, you are limited to what you can access on the phone (like UI widgets and features like accessing the camera). I've also read that Adobe is not going to include this feature in future versions of the Creative Suite. So you may lose support for your game. In my opinion, there are better tools to develop for both devices. Check out Corona or Unity.
MY impression is no, not a good idea until they get the performance up. Though this post makes it look pretty decent. Ive done an app for the playbook, and the simulator rendered it just fine, but once I saw it on the actual device it was pretty slow. I didn't realize there was a scroll box already there, and I made my own implementation with on enter frame listener and it was pretty slow.
If you're going for an iOS, then you end up with bigger file sizes. So while flash/as3 is great for prototyping and some simple applications, I would suggest using lower level language that doesn't have to be reinterpreted.
Perhaps the AndEngine could be something for you. It's a 2D Game Engine for Android and it supports physics. I played a little bit with it and it's really powerful but simple to use.
Performance is great, but think also about your game success in audience coverage - the flash is easy on web embedding. The flash is platform and its VM continuously enhanced due performance needs as well as mobile hardware. Try to write once and for all as possible)
Has anybody blogged about this comparison, or does anyone want to give it a shot here? Would be nice to see some reasoned thoughts on Adobe AIR on Android vs. the "native" Android SDK (in Java).
Edit: Despite few views and no answers, I'm leaving this question up here since it's a topic that needs to be covered at some point... but if it gets no attention I'll delete it in a few days.
I think it's ultimately very similar to the question of whether to use AIR or Java for a desktop application. Ultimately it comes down to three points:
Does AIR do everything you need? Obviously the android SDK gives you complete access to device capabilities, but AIR purposely doesn't, in order to stay portable. For example, AIR may not support intents, at least initially (I don't think Adobe has announced yet one way or the other). Also, AIR requires Android 2.2. If those limitations are troublesome, regular android SDK may be best.
Are you looking to make something that would be well-suited to doing in Flash? If you're planning a design-heavy app with animations, video, sound, or the like, then building it in Flash may be significantly easier than using Java. On the other hand, if your app will be pure code using only standard visual components, then it might not make a lick of difference which platform you use. Or on the gripping hand, if you'd have existing Flash animations or the like, then trying to shoehorn them into a Java app will be bothersome.
Are you targeting other platforms besides Android? If so, AIR may be a big win, as the same app content should run on windows, mac, linux, and later on, other devices that plan to support AIR, like Blackberry, some TVs, blu-ray disc players, etc. If you are only targeting Android, AIR may lose some of its appeal.
I hope that helps some. Realistically, unless you're effectively locked out of using AIR because you need something it doesn't give you, or effectively locked into using AIR because you're doing design-heavy work and you need the tooling, then I think the pros and cons of the two SDKs are largely questions of convenience. Either platform will work, so it's merely which will get you to the finish line the fastest and most reliably.
One issue to consider is compatibility with Android devices. Both fancy smart phones and cheap phones run in Android, but they don't have the same capabilities. Even if you application is simple or can be done beautifully in AIR, its relevant to mention that AIR is not compatible to all Android devices.
Some very popular devices currently sold (such as Samsung ACE and other "cheap" devices) use ArmV6 chips, and AIR or Flash are not compatible to this architectures, even when running on Android 2.2 or so.
AIR is interesting because same development works in different technologies, but consider that AIR doesn't run on "old" iPhones either, its only guarantied to work on new technology with big processors.
Check this Adobe link http://www.adobe.com/flashplatform/certified_devices/
AIR should be ruled out in your decision of technology if in your requirements you are targeting as much phones as possible, including those that are not so fancy or new.
I have experience with AIR mostly and little with Android SDK when I was building a native extension to AIR. My biggest hurdle with AIR is it's immaturity, it's bugs, and it's inconsistent behavior. Yes, you can go to the shiny page at adobe.com and see how cool is the AIR... All bright with tons of features which seems to cover all your needs. Yet, once you start building your app you'll find many ugly surprises:
Stage text in not working appropriately. link besides this bug StageText has few other bugs, like behavior in Scroller for instance.
Sound() object doesn't play the stream (it does on emulator only). link
Lack of features like AEC makes AIR useless to whole list of chat applications, as you'll will hear echo and screaming noise. link
Overloaded (and immature for mobile) Flex SDK (I hope folks at Apache will rewrite it from 0 and make it more manageable).
No H264 support on iOS devices: link (yes, I know it's Apple problem, that they want to control HD delivery on their platform, still it's Adobe problem too, as they couldn't fight right to bring their technology to forefront).
Sound object doesn't take variable bidrate (only 44.1KHz is possible). Flash "second generation" Speex codec samples at 16Khz. Now, try playing this back through Sound and you'll enjoy a funny circus. At the end you will need to write your own upsample algorithm.
I'm sure people will add more to this list. So, my answer would be native SDK is more preferable for anything serious. You won't work like a QA person with it - testing countless little examples trying to understand why an AIR feature not working, shuffling internet for answers and looking at AIR bug database... only to find that critical bugs are sitting there from release to release. That is my experience with AIR. Going native SDK makes your application not really "cross-platform", but AIR SDK can't claim this title anyway for anything more serious then couple of "Employee directory" examples. And if you will need to build for the other platform, you will just use native tools for it.
GL.