I am new to the world of handhelds. My client wants me to supply handhelds with an app for scanning barcodes and reporting back to a corporate database. The handhelds will be used by forklift truck drivers in the customers yard and will be connected by wireless.
We currently develop in java/eclipse using Swing for our workstation/server apps. Being a small company, we would like to build on our existing java skills rather than start with something else.
The world of handhelds is new to us though and seems quite a deep and complex area.
I have it in mind that we will need to develop using Java ME.
Any help in choosing the best OS for the job would be much appreciated, and any other helpful advice too! Are the implementations of Java ME wide and varied by OS and by handheld model etc?
I'd have said that JME is notorious for differing between platforms, but it sounds as if you would only have a single device to support, and you could even choose which one. If that supports the newly released JME 8, I'd say it might be a viable option, otherwise for Java-based mobile apps Android would seem a more natural choice, given the state of pre-8 JME.
Swing knowledge will count for little, as both JME and Android have very different UI models. Some concepts are similar, but the API and GUI construction is completely different.
But taking a step back, I think you might want to select the hardware first, and then see what programming model it supports. Most existing JME/Android devices would be too fiddly, and not sturdy enough, to be used in an industrial environment. And camera-based scanners in consumer-grade devices might not be fast enough, or reliable enough. Lastly, by "wireless", do you mean 3G or Wifi? Forklifts being mobile, one might need a fair number of WAPs to support Wifi (unless this device would only be used in a few known locations).
You are right about the handheld. I envisage using a ruggedized one with a proper scanner rather than using a camera. The drivers will only be using the handheld in a small number of locations. Wifi is intended but it could be that 3G will be needed if the wifi is deemed too poor.
My confusion starts with the wealth of handhelds that could do this job. We could go PalmOs with an ACEECA or JANAM device, or a Windows CE, Windows ME,Android or proprietary DOS device - but which would give us the best chances of capitalising on our java skills?
It seems that Java on PalmOS is dead, so I wouldn't advise to start something new based on that. Same for any kind of Windows OS - to the degree that anything Java-like ever ran on those, it was a gross hack IMO - also not something I'd want to build on.
I would imagine that by now there are rugged devices running some version of Android, but I know nothing about that market.
Java ME was pretty much dead, but it seems to have gotten a new lease on live with the new version 8. But that is so new that probably very few devices exist that support it. JME 8 switches the focus away from phones/handhelds towards embedded devices, so it may become an option for such devices as you're looking at - but probably not in 2014.
Pretty much. Old JME versions (CLDC/MIDP 1, 2 and 3) are dead, and are quite fractured where they are used. MIDP/MEEP 8 is very new; whether it becomes a viable option will not be clear for some time, IMO.
The only Java-based alternative is Android (which is not quite Java, I'm sure you're aware of the Google/Oracle lawsuit). That's geared mostly towards phones and tablets, but lately it pops up in watches, glasses and cars - so it could just be that someone has built custom hardware for it which you could base your device on.
Other than that, there's the Raspberry Pi, depending on how much of the hardware design you want to do yourself.
Ulf Dittmer wrote:The only Java-based alternative is Android (which is not quite Java, I'm sure you're aware of the Google/Oracle lawsuit). That's geared mostly towards phones and tablets, but lately it pops up in watches, glasses and cars - so it could just be that someone has built custom hardware for it which you could base your device on.
Thanks Ulf, in the end I went for an Android handheld and cut some javaesque code under eclipse with the Android Development Kit. It took me a little while to get my head around it all but its working rather nicely on a customer site in Belgium now.