That is why I really love instagram.
Seriously,this little insight into the human psychology has made Instagram billion dollar company.
With the launch of Android mobile platform, Google announced that developers can use Java as programming language to create applications for the platform and using Dalvik as the Java virtual machine. The choice of Java was itself a limitation for many developers, especially low level progammers used to deal directly with different mobile hardware issues.
It’s true that, for example, Symbian support programming in C++, but here is the full and real situation. There is a lot of application developed for Symbian, but you have to always compile your application for the different platforms separately. Applications for Symbian 3rd edition don’t run on 2nd, or 1st edition devices. Sometimes applications for S60 3rd edition are compatible with N73, but not with N80, while it should be the same operating system and there is no reason for an application to be hardware dependant.
Now back to Android, the fact is only Java language is supported doesn’t mean that you cannot develop applications in other languages. This have been proved by many developers, hackers and experts in application development for mobile. The guys at Elements Interactive B.V., the company behind Edgelib library, succeeded to run native C++ applications on the Android platform, even that at this time there is still many issues on display and sound … etc. This include the S-Tris2 game and a 3D animation demo of Edgelib.
Wouter ten Brink, Elements Interactive CTO, told us by email “As our company focuses on native (C++) development only, we will keep looking for solutions to bring native applications to Android.”. He added “Personally, I believe Google will eventually offer a way to run native code, but we’ll have to see what will happen on this area the coming months.”
Performance Vs Portability
It’s clear that Google, by making Dalvik the Java Virtual Machine for Android, is looking for maximum portability against performance. The MSM chipsets, currently supported by Android, include a Java hardware acceleration, which is supposed to provide high performance for Java applications running on Android Handsets. But it’s not everything.
The Google answer on running C/C++ applications on Android from the FAQs is : “No. Android applications are written using the Java programming language”. Very simple answer, but the problem here is for developers and companies having ready to use code and applications for other mobile platform and looking to get their code ported to Android at low cost.
Java-Not-In-Time and JIT
The performance issue in reality isn’t due to Java itself, but to the virtual machine running Java code on mobile devices. You can run Java very fastly on PCs today with JIT VMs, thing not available for mobile devices, which make Java applications and games very slow on mobile. So what about Dalvik ? Dan Morrill posted on the Android developers group that “a just-in-time compiler is definitely on the Dalvik roadmap”.
This should answer the performance question about Java, Android and Dalvik, even that we don’t know much at this time on the Dalvik VM.
Finally the choice of Java on Android is to make mobile application developement faster and easier for developers, and to make Android platform more stable. Probably many don’t agree on coding in Java for Android and looking for native support. This could solve some problems for native developers, but will open the door for a huge new problems and incompatibilities. If Google decided to make Android the best open mobile platform, it’s also their choice to keep this platform safe for a better future.
Even last week was a little slow and holidays already here, here is again another selection of Android applications. The most original project this week is probably Hecl, which is a scripting language written in Java. Hecl could do for Android, what Python did for Symbians. But until we reach that level, there is a lot of missing things in Android platform itself.
CallFreq, Dialer that knows better
Sadko Mobile is one of the companies created after Android launch to create applications both for mobile devices and for desktops and servers interacting with such devices. Their first application CallFreq is small but useful. It allows using filters to list the contacts that you have most frequently dialed, instead of listing all your contacts. It’s a kind of Journal, but I find it very well shown especially with your contact’s pictures and filter to display by hour, day, week, or month. CallFreq is already available for download, but not sources available.
Connect4 game for Android
AndroidCan just opened its doors on December 13rd and promised to provide more games and fun for Android. Their first game is the classical Connect4 with four level of difficulty is already available for download. Sources not available also.
Hecl, Mobile Scripting language on Android
HECLThe Hecl Programming Language is a high-level, open source scripting language implemented in Java. David N. Welton, creator of Hecl, have just announced that an alpha version of Hecl is already available for Android and could be downloaded from Hecl website. Hecl will participate in the Google Android Challenge, so if you are interested you can start by joining their mainling list.
GridGrain, Open Source Grid Computing for Android
Featured last Tuesday on BusinessWeek, GridGrain is an open source Grid Computing solution for Java available for Android platform. GridGrain is not an application but a technology that could be used to create innovative applications with shared computing between different Android devices. But the question is, can we really turn Android devices into supercomputers ? Sounds like science fiction.
Molib, Velib on Android
Velib is a new public bicycle rental program launched in Paris on July 15, 2014. The program include 750 hire points, and 10,000 bicycles. Similar programs are available in others cities such Brussels, Copenhagen, Munich … etc. Velib is very useful and with Molib it become much more better, especially if you don’t know the city. The idea is to avoid congestions and use a velib instead of your car or metro. Molib will be simply your guide in Paris to find Velib stations nearby in real time, and show your locations in the city.
Some of the very cool tools that popped out from Android developers, a Java applet called DroidDraw, which aims to provide a complete GUI creation tool for developers. OHM had an interview with Brendan Burns, who is behind the DroidDraw and Android-GL projects.
OHM : Can we know a little about yourself ?
Brendan : I’m a professor of computer science at Union College in Schenectady, NY. I just graduated a year and a half ago from the University of Massachusetts with a PhD in Robotics. Before grad. school, I worked in the software industry for a couple of years; mostly web-apps. I’ve done a bunch of different development over the years.
OHM : So you have a PhD in robotics, and you are interested into mobile development also ?
Brendan : I like to code. My term ended in the middle of November, and I wanted a project to keep me busy.
I had just taught graphics as my fall course and so I thought I’d play around and port some of the code from the class over to Android. Since I’d never done OpenGL on an embedded device, then I was thinking about building an app for the Challenge and I realized it was really annoying to build a GUI in XML. So I wrote the GUI builder.
OHM : Are you entering the challenge alone or in a team ?
Brendan : I’m not sure, probably by myself. I’m not 100% committed to entering. I have to come up with a really good idea, and so far my ideas are only ok.
OHM : So what about Android-GL, are you planning to build something with it ?
Brendan : I was thinking about it, but the renderer still has some bugs in it. While I was working on that I found a reported and number of them and I’ve seen reports from other people as well.
Also, I’m not 100% convinced that 3D plus mobile is the best solution, since most devices still don’t have accelerated graphics
OHM : how did you find coding on Android platform ?
Brendan : Its pretty easy I think. Its very similar to J2SE, more similar than J2ME which I did a little coding for.
There are some major differences between the OpenGL ES API and the regular OpenGL API – no glBegin(…)/glVertex(…)/glEnd() – that took some getting used to, but that’s the direction that the regular OpenGL API is headed also as far as I’ve heard. I think OpenGL 3.0 does away with that style of 3D coding. So it wasn’t a bad thing to learn more about.
OHM : so Java before Android was not much different than after Android ?
Brendan : Yeah, I think so, because I’m not in the mobile industry, and I don’t have a strong sense for the use of Java in that market. So I don’t really know if Android will mark a major shift toward Java or not.
One thing that is interesting about Android is that after two quick SDK releases, its slowed down !
You can tell that there are internal releases being developed, because the release stamp on the bottom of the docs pages keeps changing (Today its: Build m3-rc31 – 04 Dec 2007 17:47). So I’m curious about Google’s SDK release plans/schedule.
OHM : Which feature are you waiting for in the next release ?
Brendan : I’m waiting for Bluetooth support to be activated, So I can drive my Lego NXT Robot from Android !
Thanks Brendan for your time.