I heard that we can use Adobe Flash Builder to develop apps for android. But I have a doubt, can we create any type of application? are there any limitations to adobe flash applications?
I know flash is good for games and internet applications.
I am confused, which is better for android app creation? Java or Flash?
Advantages of using Flash:
One code base, many (iOS, Android, Blackberry) platforms
Easy navigation between view (as iOS does not have a hardware back button)
Good for apps which serve as a front end for RESTful web services
Supports gestures, camera, vibration, contacts
Disadvantages of using Flash
Performance takes a hit when you try to do image processing and other heavy stuff
Cannot access front camera
Doesn't give you as much control as Java
Advantages of using Java
Can exploit Android OS to its fullest
Performance is better in case of complex apps
Disadvantages of using Java
Cannot use the code-base to target other platforms
IMHO, it depends on the use-case of your app.
Major disadvantage: Adobe has announced that they will stop
developing/supporting Flash on Android
It'll be a long time before desktop will follow, considering that most users are IE users (Google analytics supported) and remember that IE9 still has VERY limited support for HTML5 where as Flash has 99% global cover on PCs.
So until such time as all browsers have much more HTML5 support, Flash will still be here for a while - whether it's here for good, perhaps not - but Adobe are already creating their new Flash Development tool to output HTML5 as well as SWF files. But like all file types, they will eventually have their day - but it's not yet that time.
java with android sdk is 100% and Flash with adobe air is 70%(approx).becase adobe provide same functionality like android sdk useing "Native code" but some functionality that cant allow by flash.
another thin is that version problem.you can continue with 2.2 or higher.
some Broadcasting functionality are not there
Advantage::
flash game building are easy and just 2 to 3 step to convert it into apk or iphone formate.
Major disadvantage: Adobe has announced that they will stop developing/supporting Flash on Android. Desktop flash will soon follow. So if you are starting a new project, unless its expected lifetime is fairly short, forget about Flash.
Related
I'm preparing to deploy a game developed using LIBGDX for both android and Desktop computers. Is there a way to put ads in a desktop application? I'd like to generate revenue from the desktop ads too.
You'd have to stick a browser widget in your desktop application and display adverts in there. JEditorPane's HTML support is pretty primitive, however, so you'd have to search for an embeddable Java browser or a custom subclass of JEditorPane which supports modern HTML (I think JEditorPane support stops at HTML 3.2). There are some freely available alternatives just a Google search away.
Off the top of my head, I can't think of any advertising networks geared towards desktop applications at all, so the browser approach is probably your only real shot at doing what you want.
I am part of a student project working to create a free educational chemistry browser game, but we can't decide on which plug-in to use (Flash, Java, Unity...).
The game will consist of 2d graphics and short movie-scenes and it will mainly be a drag-and-drop game.
We want it (the plug-in) to be supported for the next several years and compatible with most (if not all) PCs and tablets - so Flash is already out of the question.
We're horrible programmers, but we have some funding, so we will outsource the actual programming, which means that it is also relevant whether we can find people able to work with the plug-in.
So which plug-in would you recommend to our needs? Pros and cons are very welcome.
Also please do tell if I've left out some relevant points!
I think the best option is to avoid plugins entirely.
Apple iPad and iPhones don't support flash as you know, but they don't support any other plugins either.
Flash is supported on most (but not all) Android tablets and phones up to and including Android 4.0. But Adobe (makers of the flash plugin) have discontinued it and said that it will not be supplied for Android versions above 4.0.
Even on Android 4.0, users who have installed and are using the Chrome browser instead of the default browser, will not be able to view flash because even though the Android 4.0 OS might have a flash plugin, the Chrome browser when installed on Android 4.0 has not been designed to use it.
Android apps are written in Java, but the Android web browser doesn't actually include a plugin for running Java applets. Plugins are basically being phased out across the board, regardless of the OS or browser.
The best strategy:
To reach the widest number of users
Regardless of the type of PC, tablet, or browser they use
And which will not result in the game becoming unsupported by browsers in in the long term
is to design your app using web standards.
These days, HTML 5 Canvas, CSS, JavaScript, and other technologies, which have been standardized to be supported across all web browsers, allow complex animations/graphics inside the browser, support drag and drop, and support playing video, without using any plugins at all. You could look at outsourcing development to a team which knows these technologies.
Since you are also looking at video, be aware though that there is an ongoing debate surrounding the <video> tag in HTML 5 (the feature which allows videos to be played without plugins). Basically it has been agreed that all browsers will allow videos to be played without plugins, but the actual format of the video which the tag should support, was left out of the standard (due to disagreements) and so has not been decided.
The candidate video formats being debated include WebM/VP8, H.264/MPEG-4 AVC and Theora.
The workaround to this issue, is that the HTML 5 <video> tag allows you to list multiple sources for a video (i.e. multiple files on your server, all for the same video but in different formats). So if you save your videos in the most common formats, the browser can then choose the best format that it supports.
The HTML 5 video format debate therefore would not impact the design of your game (much), it just might give you a headache in needing to save videos in multiple formats. If you do this then your game would have wide compatibility across all of the major browsers.
I am going to be writing a tower defense game for Android phones. I have knowledge of Java and the Android SDK; however, I am new to animation and have a few questions about where to start.
I will be using only 2D graphics (maybe later down the road 3D graphics but for now I will keep it simple), have basic animations (enemies moving along pre-determined paths, stationary towers shooting at moving enemies, and maybe a few explosions here and there), and some sounds that result from different in game actions. Just to give you a rough idea of what I am thinking about, my game would be very similar to bloons tower defense 4.
My question is, based on what I have stated above would you suggest I incorporate Flash, HTML5, or Android's native animation libraries? What are the pros and cons of using each one? If none of these are good options than what is?
I'd suggest using Android's native libraries. Adobe has already said they're not longer going to support flash on Android so you'll slowly users over time. And beside, Android's native libraries are going to give you better performance anyway. In addition, there are some really nice frameworks out there that make developing games on android with OpenGL super easy (see andengine or this Gamers post for more details).
As far as HTML5 goes, I'd say stay away from it. Most users prefer a native app over a web-app and I can almost guarantee you that you're going to get better performance with a native app.
1) If you are going to make games, use definitely the Java. It is fast, there are plenty of game physic libraries, you can use OpenGL and you can even use C ports of some famous game libraries. You are simply not limited.
2) The HTML5 is pretty slow so far and no matter how good it is for mobile web pages, it is not sufficient for more complex games then Tetris or Sudoku. Just try some HTML games on couple of Android devices - nothing is better then own experience.
3) Do not start with Flash - Adobe company closes the Flash support in mobile phones. See there or there. This is releted to the Flash support in browsers.
4) As mentioned in one comment below - the Adobe AIR is other possibility and different story then Flash in web browser. This is Flex based technology (Action script + XML). It allows you creating standalone applications - we have 2 apps with AIR, but the AIR framework is slower then Java, it does not run on certain devices (low-end Androids), you must purchase the Adobe IDE and the developers base is smaller, so it is harder to find answers if you are in troubles. There is no clear advantage over Java, unless you plan to release also for desktop.
Regards,
STeN
I am developing a Java ME application which uses the camera to take a snapshot and then decodes it (using ZXing library). The target is Nokia phones.
I need to use the focus to have a clear image, if not, it is difficult to decode the image.
Since the Series 40, the control "videocontrol" and "SnapShopControl" are available. I thought that for the "FocusControl" it was the same, but it isn't.
I discovered that it is almost non-existent, not only for the Series 40 (only some phones), but (more surprisingly) for the Series 60 and Symbian 3.
You can see that in Java ME API support on Nokia devices.
These mobile phones support JSR-234 but for audio and music, not for camera.
As you can imagine, this is very deceiving, Nokia is not doing their work well.
Did you find any solution? Perhaps another "made-by-hand" control? I am afraid I have to start programming in C++ because I haven't got much time.
The solution has been to use Nokia's APIBridge (an extensible mechanism to access device features in WRT, Flash Lite, and Java applications). You can access the software is installed in the phone for the camera and if it is able to use the autofocus, you can use it, and it returns the image you take.
See Tool details for APIBridge for further details.
The implementation is easy (you install the SIS file for the APIBridge in the device, and you can package your application and this SIS file together).
You use the following code:
APIBridge bridge = APIBridge.getInstance();
bridge.Initialize(midlet);
NewFileService service = (NewFileService) bridge.createService("service.newfileservice");
Hashtable filter = new Hashtable();
filter.put("NewFileType", "Image");
BridgeResult res= service.TakePhoto(filter);
Many phones' hardware just don't support focus. Some Sony Ericsson phones (e.g. G502) support FocusControl, but they don't allow to do anything because the hardware does not support it.
I'm afraid to say that you can do probably nothing with this problem in Java ME.
If the phones support focus control, but it is not availble in Java ME, there are probably two ways how to solve it:
Let user to use the builtin camera and load it (preferably the last photo) from Camera album.
Try to use camera focus from a S60 API.
Note that I'm not a S60 developer.
I'm working on a large website project that makes heavy use of in-page graphing of data. To make the graphs interactive (the old paradigm was to post data to the server, have the server render the graph as a jpg, then send it back to the browser) we've started building the graphs in Java. It's a smooth system, but the website is still very much computer-dependent.
I'd like the site itself to work as a device-aware web application - switching layouts based on user agent strings to render a mobile-optimized version for cell phones and PDAs. But I'm concerned about the nebulous support for 3rd-party applets (Java, Flash, etc) when it comes to platforms like the iPhone.
So if you were building a web application that could be accessed either through a standard web browser or an iPhone/Blackberry/Palm device, what would you do to still display interactive graphs? Is there a workaround for using Java on the iPhone? Is there another platform we should pursue all together?
If you want to support more browsers, you may want to look at using Javascript to help decide what to do.
You could generate the graphs using the canvas element, and if the browsers doesn't support that element then you could use a Flash app, and if that doesn't work, have the graphs developed on the server and use the <img> tag and just refresh.
This third approach could also work if the browser doesn't have javascript enabled.
This way you can handle the various situations and get away from having to run Java in the browser.
The iPhone and Android browsers support HTML5 features such as "canvas", which you may want to look into. The browsers on BlackBerry phones are somewhat behind the times - they are finally releasing a WebKit-based browser for their upcoming 6.0 OS but all of the current in-market devices are quite limited in terms of browser capabilities. For those devices you're probably best off just using a static server-generated image.
I would use a JS charts library and gracefully downgrade to images when you detect an older browser.