We have a lot of days of research but can't find a solution for the following project. We need to convert a flux project to IOS and android native app. But as flux supports flash scripting it has easily implementing some 3d effects like shadow, emboss gradient etc. Please check the link here for seeing the swf file we have. We need to convert all this features into a native IOS and android app. We have research some area and found that most of the item we can implement except one icon here. The fourth icon have some 3d effects, shadow effects, border, emboss, contour and gradient etc. Can anybody check on this and guide us whether this can be implemented in IOS and android. I am pasting the entire url here again http://projects.zoondia.org/signfabcreator/signCreator.swf. Please check and let me know if this is possible. Let me if this is possible or not. If yes it will be helpful for me if anybody can give me a clue about implementing those in both android and ios
Very interesting! But I'm afraid you have to reimplement all this functionality by yourself. Don't be upset. There are good news for you - OpenGL ES and GLSL are extremely portable. So you can reuse 100% of your shaders. What is even better now you can share the other code too and stay native. Not long ago Intel announced the Multi-OS Engine. It enables you to develop native mobile applications for iOS and Android with Java. There are a bunch of tutorials inside installation package. One of them is especially dedicated to cross-platform OpenGL capabilities. Please check out my OpenGLBox sample.
Related
I'm working in a AR (augmented reality) Android app with android studio and I wonder if there is any framework to create Open GL user interfaces, like dialogs, buttons, image and video containers and so on... Any Ideas?
Have you considered using Viro?
https://viromedia.com/viroar/
We offer both a React-Native (ViroReact) and a native Java API (ViroCore).
You won't be coding in OpenGL yourself (we write the renderer), but you get an easy-to-use scene-graph API. ViroCore is analogous to SceneKit, but for Android.
It's free to use and distribute!
Check out our:
Docs: https://virocore.viromedia.com/docs/getting-started
Samples: https://github.com/viromedia/virocore
Let us know if you have any questions!
Disclaimer: I do work at Viro, if that wasn't obvious :)
The reason why most people would ever make their android project in javafx would be to have the same codebase across different platforms (such as ios, desktop, android, maybe even web using Bck2Brwsr/teavm/doppio)
But my question is, is there any advantage in javafx ui framework itself when compared to android ui framework?
I have never ever written even a hello world application for android, but I intend to do it now. So I am wondering if having the code in javafx is worth the effort when I can develop directly on android apart from the benifit of portability.
This type of question might result in a subjective/opinionated answer but I think it is a good question so I will provide my assessment.
Having the same codebase across all those platforms is huge. Do not dismiss this. I'm using Gluon Mobile to port aspects of the Deep Space Trajectory Explorer (DSTE) to Android and iOS. As you can see from the video its extremely complex application. There's no way I would rewrite that in native Android... it would be a no-go from a cost perspective.
Starting development from JavaFX makes it easier to make complex visuals. I don't just mean traditional 2D GUI forms. Again looking at the DSTE you will see we use Canvas to do dense renderings and JavaFX 3D along with the FXyz library to do 3D renders. These things are easy in JavaFX and again using Gluon simply "just work" on Android/iOS. In fact it only took about a day to get those aspects of the DSTE code base to work on a Pixel C tablet, most of which was getting the Gradle build setup properly. Now imagine having to port 3D code from JavaFX to a Native framework? I'm a 3D guy and I still wouldn't try it.
Testing is so much easier on the desktop than a mobile device. This doesn't mean the testing is 100% on desktop. Sometimes something that works on desktop "doesn't work" on the mobile platform and you have to tweak accordingly. However you can save a LOT of time standing up the application using JavaFX knowing that 90% of it will work the same on your mobile device.
Word of advice though... remember that a desktop application is NOT a mobile application. You will be tempted to just "port" your desktop app to your device. I was my first time. You can get into other issues where the interfaces and layouts you design for a desktop "work" on the mobile device but are not appropriate and so the usability goes down. Start slow when you port. Think of what aspects of your desktop workflow should be mobilized. Only port the things you absolutely belong in a mobile workflow. Save yourself some headaches.
I am an intern at company and my 'learning task' is to make Android application in Java, which takes H.264 format videos (at first they will be stored at SD card) and make like a very simple player, which would have the following features:
1.You can pause/play/fast-forward/fast-backward video
2.When you are at certain point of video and it is stopped, you can switch to the same time in a different video (same picture frame index i guess).
How could i do that? Is using Gstreamer a good way? I looked at the poor tutorial available on net and because of my lack of experience in video processing (I've never worked with video in Android applications) I have quite a hard time understanding what is pipelines, also the JNI and even setting up Gstreamer for Eclipse. Is there a better way of doing this? What should I get to know before starting to mess with this program?
Thanks, in advance!
All of your mentioned features are possible in Gstreamer, however, there is a learning curve.
To understand the GStreamer android tutorials, you must first go through the basic tutorials here: http://docs.gstreamer.com/display/GstSDK/Basic+tutorials
If you feel comfortable with the pipeline architecture, then go ahead and set up your android environment (which is no easy task by itself). Gstreamer is a very very powerful framework where you can do almost anything, if you're willing to make the effort to overcome the learning curve.
So i suggest to go ahead in gstreamer only if you have the time and patience, else go for a simpler solution. Unfortunately i'm not familiar with android, so i cannot suggest any. maybe a quick google search will help.
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
The Three20 project is really nice for building iPhone apps quickly using common libraries:
https://github.com/facebook/three20
Is there anything like this for Android?
Not exactly, but working at a company with a partially three20 based iPhone app developed in parallel with the Android version, I think about 50% of what 320 does you get right out of the platform on Android, minus a little polish. For example, 320's Navigator and TextEditor are basically baked in on Android - the platform's native text editing components can stretch dynamically on their own, and task navigation and back-button history is handled automatically on Android, with URL handling baked in to the intent filter and resolution system.
You can get much of the rest of 320's functionality out of reusable libraries like ignition or GreenDroid (at least with regards to caching and images loading in lists), without the weight and lock-in a fairly monolithic framework like 320 can add to your app. There's a few bits that these solutions miss (three20's zoomable photo viewer, for instance), but there's usually acceptable hackarounds for quick usage (an Android WebView makes a pretty decent image viewer substitute, for instance).
Once upon a time there was an SO wiki page gathering a bunch of those resources, but alas, that's gone away. You can get a pretty good set by looking for popular Android projects on GitHub or Google Code, though.
See Do android developers commonly use 3rd-party UI/networking libraries like Three20 on iPhone?