I'm seeking statistics about programming languages for cell phones. Is there any information about how many cell phones have Java, Android, Symbian, Windows Mobile, etc?
Off the top of my head:
C/C++ - Symbian, Android, iPhone
Java/JavaME - Android, Blackberry, Symbian and Windows Mobile (not sure about 7)
Objective-C - iPhone (15% of market)
Take a look at this article: Google Android smacks down Windows Mobile in latest Gartner data.
Per Gartner as quoted in wikipedia, as of May 19 2010,
Symbian continues to dominate the
worldwide smartphone market with 44.3
percent of market share with RIM in
second at 19.4 and Appleās iPhone OS
in third with 15.4. Microsoft moves
down to fifth behind Android with 6.8
percent of market share.
Of course, this is about phone operating systems, not languages (you ask about languages but then mostly list operating systems, except for Java which is a language usable on almost all of them except iPhone OS, and mysteriously tag this as "Python"...?!).
Related
I am aware of two cross-platform audio libraries that cover OS X, Windows and Linux: RTAudio and PortAudio
I'm aware of a couple that support OS X and iOS: Novocaine and TAAE
However, I can't find anything that supports OS X, Windows and Linux and also iOS, Android
Does such a technology exist?
Un4seen's BASS audio library claims to do what you want. I've only used it on Windows, but there is a lot of chatter about it for Android an iOS, as well as the desktop platforms.
http://www.un4seen.com/
It's free for non-commercial use, otherwise the licensing is pretty decently priced in my opinion.
(https://www.juce.com/)(JUCE) was my choice in the end.
It is a C++ platform with a focus on real-time audio. I don't know how I missed it in the original question.
JUCE has gone from strength to strength over the past few years. Recently they have reorganised the licensing model so as to encourage independent/indie developers.
Don't want to sound too much like an advert, but I'm very happy with this technology stack.
I am tasked to develop applications on a iPhone 5. However due to some office workspace restriction, we are not allowed to insert a sim card into a iPhone 5. (we will be using wifi for development)
Is there any difference in terms of software development (certain api restriction, or computability issues) that a developer may face if he/she is to develop a iPhone 5 application on a iPod touch. I'm trying to justify reasons to get a iPhone 5 :P
I've noted that GPS chipset is not available on a iPod Touch 5g, however wifi triangulation is workign for iPod touch 5g?
You can't test offline GPS navigation and cellular network on iPod Touch.
And mostly they are weaker than their phone counterparts, so you can optimize it on a weaker device, and it will more likely to run smooth on more powerful devices.
I need to develop mobile application, so I decided to develop the application on J2ME.
This application must be support for Blackberry mobile, in this application we are using google maps, so can I use the J2ME software and if I develop the application in j2me how many types of mobile can support my application?
If any better software is there for supporting different mobile please suggest me.
I already developed the application in Android, this software supports few mobile, so I need to develop the application which mobiles are not supporting the android.
J2ME used to be the most widely deployed runtime on mobile phones wordwide (it may still be, depending on when you read this and the amount of Android phones sold by then).
These days, there are many phones that don't support it:
- closed phones (they don't let you install any application)
- Android
- iPhone
- BlackBerry 10
- The Palm WebOS phones
- I don't know whether the Samsung Bada phones support J2ME
- I expect that most of the mobile linux handsets (Maemo, Meego, Limo, Sailfish...) don't include J2ME by default. They tend to prefer a port of the Android runtime
- ...
The problem in developing an application that needs to support many handset models in many different countries is J2ME's curse: the dreaded fragmentation.
J2ME itself usually means the JSR-118 specification, along with a whole bunch of other optional APIs specified in JSR-75, JSR-82, JSR-120, JSR-135, JSR-139, JSR-172, JSR-177, JSR-179, JSR-180, JSR-184, JSR-185, JSR-205, JSR-211, JSR-226, JSR-229, JSR-234, JSR-238, JSR-239, JSR-248, JSR-256. You can see them all here.
These specifications have been interpreted differently by different companies implementing J2ME and they are often too generic to ensure the same piece of code to work identically on different phones.
Different mobile network operators also impose different requirements that sometime force mobile phone manufacturers to change the way their implementation of J2ME works based on who subsidizes the handset.
Operators can also modify data that goes through their mobile network.
I have very easy question, but I simply have any idea of the answer.
I have developed a small mobile-application using java, for my nokia.
The problem is that when installed on my samsung the application simply crashed.
Then I tried on my other nokia but different model, and I didn't got the normal behavior.
So my question is, does anyone have any idea how companies that develop mobiles applications/games test their software.
Does they have to have all models for all mobiles phones??
Companies that target many phones in many countries usually only let you install the application on your phone if they recognise your handset User Agent in the HTTP headers of the request to download the .jad or .jar file.
There are multiple ways to test an application on many handsets for many mobile network operators.
From simply buying the phones, to establishing commercial parternships with handset manufacturers and mobile network operators, to having a Device Anywhere account.
I don't know if you need all models of all phones. But you will definitely need separate test (and probably different builds) for different phones regarding:
MIDP version
Screen Size
Input Devices
Speed & Memory
Java, in this case is, WOTA (Write Once Test Anywhere) instead of WORA (Write Once Run Anywhere). :-)
Phone specs and Java implementations vary a lot, but within each manufacturers range there will be groups of phones that share the same specs and implementation.
I used to work at a company making J2ME games, what we did there was test on every handset we released the game on, but we had 2 types of test - Complete and Compatability.
We would adapt a version of the game for a specific phone, eg Sony Erricson K800i, and have it thoroughly tested according to the Complete Test spec.
Once that had passed, we then used that build on phone known to have similar specs and good previous compatability with other games (we kept a database of specs and compatability records), eg Sony Erricson W910i, and submit it for a compatability test, which was a bit less thorough and a bit quicker.
Once you've been doing it a while you get to know the capabilities of phones and which phones you could use the same build on, but there is often a bit of guesswork involved :) Sometimes you get matches you wouldn't expect, and sometimes a match you would expect to work doesn't.
Edit: I was going to post this as a comment, but I can't (because i'm an SO noob :), out of interest, what phones are your Nokia's and Samsung?
I can't remember many specific handset names, but here is a quick rundown of compatability across manufacturers:
Sony Erricsons are generally excellent - if it works on one, it will likely work on all SE handsets with the same resolution.
Nokia's are generally good within a certain smaller group eg N95 builds work well on most nokias with the same res that were released after the N95, but some handsets are a bit of a pain.
Samsungs are pretty bad - the J2ME implementation on most is flawed (Hide/Show Notify methods not being called is an example), and the memory and speed are typicly a bit crap.
Motorola phones are not great, but are generally quite compatable with oneanother. Same goes for LG, although their more recent models are much better.
Testing is one of the most labour intensive part of mobile phone development. Typically a company might simply buy a lot of different phones to test on for real, or target a particular subset such only as Series 40 Nokia phones.
But alternatives exist out there where you can remotely deploy your app to phones, such as Nokia's Remote Device Access Services.
One way that might limit the problems is to target J2ME MSA (Mobile Service Architecture) compliant phones, where MSA attempts to reduce variations in vendor implementations of J2ME.
I've been tasked with using WURFUL to determine whether or not a mobile browser is capable of downloading a J2ME app developed by my company.
I first thought I could use the "device_os" tag and filter by that, however, I'm unsure what the complete list of J2ME OS's are... any ideas?
I've been told there are no MIDP requirements, and that the application will run on any J2ME-supported handset (with two specific resolutions, which I already know how to query)
Thanks in advance.
There is no way to know all the OSes that support J2ME. Mainly because most feature handset comes with a proprietary OS which probably you have never seen before. It is a better idea try to identify the handset model and decide if it supports J2ME or not.
Another thing is, you may want to know which JSRs are supported by a specific handset. I do not know your application but probably you are using some optional JSRs that are not supported by some handsets although they have basic J2ME support.
Java ME SDK 3.0 includes a database of supported devices. Also there are other web sites that provides these kind of information. One example to those would be this J2ME Handsets web site.
If you are fine with just covering a large range of phones, you should include Symbian S60, S40, Windows Mobile, Blackberry and Android.
Symbian
Win Mob
Android
Almost every Sonyericsson phones
IMHO you don't have to worry about how many handsets support j2me because majority of the phones support it.
At least Symbian and Android.