Cell Phones For Easy App Development?
linnrose writes "When I purchased my current cell phone — a ATT/Samsung Sync — my primary reason for selecting it was Samsung told me I could install custom Java applications on it via USB or the microSD card; turns out they lied to me. I would really like to have a phone that is open enough for me to install simple Java (or whatever language; I'm primarily a C# developer) apps without having to download them from a server. And it doesn't have to be cutting-edge/feature-rich; gimme a nice color screen and good call quality. I'm thinking Nokia might have something useful, but I'm not sure. Any suggestions?"
Then you can write your own apps AND have a phone you like
http://www.chaotickingdoms.com
I'm a java developer and being able to easily write and deploy my own phone apps is exactly why I'm so excited about Android. It has a full SDK and Google promises that you can install your own software on your own phone!
Go check it out...
Clicky clicky
My current phone is a Sony Ericsson W580i. I can just upload those micro Java apps onto my phone via Bluetooth and they work.
At least here in the EU, I don't know it it is the same in the US, but every nokia phone I bought (now I own a 6111) has had the capability of installing j2me apps from the memory card, vie USB or simply by copying them from the PC to the mobile over bluetooth.
If you are a developer and would like to hack your mobile, maybe you could have a look at the Freerunner?
I just don't trust anything that bleeds for five days and doesn't die.
Sad to say it, but Windows Mobile phones are probably the most widely available "open for developers" phones out there. WM does have app signing, but every WM phone I've seen allows the user to easily override the signing function. It's basically "This app is unsigned, are you sure you want to run it? Yes/No" - The nice thing is that the phone *remembers* this answer until the app's hash changes.
Most current Linux phones are heavily locked down (such as the Motorola MOTOMAGX based phones).
Android based phones don't exist yet, and some of Google's comments imply that they will be allowing carrier lockdown.
I've heard a lot of Symbian phones are also heavily locked down and won't run apps unless they are signed. It's a moot point if you're in the U.S. because Symbian phones are pretty rare here.
I have an AT&T Tilt (HTC Kaiser aka HTC TyTn II) and I love it.
retrorocket.o not found, launch anyway?
I've done development on Symbian and Blackberry products; advice for these: Run away, terribly fast.
I haven't explored Windows Mobile due to it's serious speed stability issues on the two phones that I've had that run it, but it's likely your only hope for C#.
If you can do C, Objective-C for the iPhone looks quite tasty (I've only browsed the source), and the Android platform is mostly here now, with some very tasty phones coming to major carriers this Christmas.
So my advice would be that you need to decide whether you need to make money from this application, and if so from whom. If your target market is all Microsofties, then get their platform (the T-Mobile Wing among the more tolerable phones), and code for it.
If not MS specific, then the question comes down to money. If your app. is ground breaking and cool, I'd lean toward an iPhone, Objective-C, and the AppStore. If it's just for you or to share with the world (like a cool pocketable Nagios monitoring daemon) and you'd like a large community of users regardless of their funding, Android.
It's my understanding that anyone with a BlackBerry and the Windows desktop software can install Java (J2ME or J2ME+BBapi) apps on their BlackBerries via serial/USB.
I know older Symbian devices could install via memory card as well (I had a Nokia 6600), but I've heard enough scare stories about newer Symbian revs to wonder if that's still the case.
In *theory*, anyone with ActiveSync should be able to sync/install on a Windows Mobile phone. I've never used one myself, and the one person I know with a Windows PDA is having issues even connecting under Linux, but I don't know where the actual problem is there.
Severely locked-down systems (T-Mo Sidekicks, IIRC most Verizon phones, iPhone, etc), you're SOL without either hacking it or becoming a sanctioned "developer"
"The urge to save humanity is almost always a false front for the urge to rule." --H.L. Mencken
I have one of the Veriozon windows mobile phones, it has .net compact framework, and even compact sql server.
I got it mainly because I could write my own c# apps for the thing. Visual studio even has a nice emulator built in.
If ignorance is bliss, the world is full of blissful people
No idea how useful this is for development, but Amazon is offering an unlocked Samsung I321N phone for $165 until 2pm PDT as a gold box deal. It runs Windows Mobile 5.0, and since it's unlocked I would imagine you should be able to load apps onto it with no problems.
This guy's the limit!
Something like ANY phone? It's usually good idea to be carefull with operator provided (branded) phones - they sometimes limit these functions to get more money from you.
However, every phone I (Siemens SX1, Nokia 3230 or 6131) or friends (various Sharps, Siemenses, SEs) have had that supported Java allowed installation using cable or Bluetooth.
With Windows Mobile and PalmOS devices, you can install IBM's J9 JVM (you can buy it for six dolla online) and then code in Java. I think the current version lets you code in Java 5. Couple that with SWT, and you have a nice environment in Java that's pretty frickin' cheap, but not an iPhone.
Failing Java+SWT on J9, I'd program for the iPhone (I'd do that before that, but I have no Intel based Mac :( )
To be honest, I'm really suprised your phone doesn't let you just upload J2ME apps and run them, most phones (RAZR, etc) let you do it, some might require you buy a $6 cable, but its nothing serious.
If you want more choices:
1)Symbian based phones. You can run native C++ apps, and J2ME based ones. A popular example would be the N95.
2)Iphone, although you'll need to go through the iTunes store or jailbreak it.
3)Windows mobile phones, not sure which one to reccomend here.
4)OpenMoko, although I hear this phone still needs a while to go before it becomes something someone will want to use as their primary phone
5)Wait for an android based phones.
However before purchasing new phone see if you can get a cable or modify your phone in such a way you can load java apps onto it, because I'm really surprised its that heavily locked down.
1. Get a cantaloupe/melon. Cut a hole in it, 6-inches deep (more or less :)
When attempting to cut a hole to match, I wound up splitting the cantaloupe in half. The next few attempts resulted in similar failure. Would a watermelon be a sufficient substitute? please advise on the matter.
New slashdot layout sucks.
For C# / .NET code, Windows Mobile is the answer. Developing for it from Visual Studio is really simple, almost like for desktop Windows Forms apps, it supports remote debugging via USB and it has a emulator with many device profiles (different display and keyboard configurations).
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx
As for WM phones, HTC or Asus (a bit cheaper, I have a P750) make solid ones.
Just put it on a memory card and go - should be no problem and works great for me with the N95 and even with the older S40 ones that I had...
A Nokia S60 phone (I have an E61) + Nokia S60 Python interpreter have been enough for my personal development needs. The nice thing is, I can develop Python applications on the road only using the phone itself.
Information about the interpreter: http://opensource.nokia.com/projects/pythonfors60/
The latest version is available at the Sourceforge: http://sourceforge.net/projects/pys60
You should check out the OpenMoko: http://openmoko.com/
I don't have one. However, at the linux users group I attend ( http://ale.freeshell.org/ ), a group of people who got them via one of the group purchase agreements came to last night's meeting. I was pretty impressed.
It does cost $300 or $400 depending on what model you get, and then you have to get one of the cellular services that works on a sim chip thing.
At least one of the guys at the linux meeting was using it as his daily phone. However he also said he was putting up with various quirks and working around them, that "normal people" might not be able to deal with. One person showed me the phone running X with xfce, but the others were using a qt interface that didn't use X, if I understood them correctly.
But, if you are a developer and having problems with the openness of your phones, this is the way to go. Even the hardware and plastic designs are open source.
I've looked into J2ME app development a bit and depending on what kind of apps you're interested in, you must check what JSRs the phone supports. The phone's specs can mislead you badly - for instance, plenty of bluetooth-equipped phones don't implement JSR-82 so your midlets (J2ME apps) can't access it. Another example is JSR-135 (multimedia, including phone cameras). Those are just the JSRs that I remember but there are plenty of other non-obvious restrictions (accessing the phone book, messages, files, calendar etc.) due to java-capable phones not implementing certain JSRs. Then there are also some Nokia-specific JSRs. So remember to google!
RIM offers a Blackberry JDE for their phones. It looks slick and well integrated, and comes with an emulator and tons of samples. One caveat - I haven't actually built anything with it yet
Beware: I believe all are created equal, and have the right to life, liberty, and the pursuit of happiness.
I can load Java ME apps onto my Sony Ericsson K800i by using either the supplied USB cable, or via Bluetooth. Java ME doesn't provide all of the libraries that come with Java Standard Edition; so be prepared to work around the lack of Lists which is something that I have found frustrating about it.
I have been personally bitten by this Samsung crippling "feature" too. Java apps/games can only be installed via a server/EDGE, not via USB or microSD or via Bluetooth file exchange. Samsung is the only manufacturer that does that, and I have my share of experience with many cellphones.
If I'm not mistaken, you can use the samsung pc studio to send java apps to your phone. You may not be able to save them to the memory card, but you should be able to run things without having to download from the internet. You just may have to download "more locally". Your question is not written properly. You state "they lied to me" which in fact they didn't, since your phone is indeed capable of supporting custom java applications, they just may not have been clear on the simplicity of the whole system. But that's hardly the fault of the salesperson. We can't expect them to know every detail about every phone they have ever been told to sell. Ideally ATT would be smart enough to not allow these types of shady dealings under their name...
Phone is easily reflashable including mods that add telnet and FTP ;-)
I have a BlackBerry and happily code for it in Java. I use a Mac with VMware to run Windows so I can run the SDK's tools.
Pros:
- The device OS is itself written in Java, so your Java apps are not second class citizens
- API is intelligently designed and easy to work with
- Good API documentation
- Simulator runs the actual OS code
- Apps can be loaded using a USB cable
- Apps can be debugged as they run on the device itself through that USB cable
- SDK downloadable for free in a few clicks
- Lots of people have BlackBerries
- No retarded NDA!
Cons:
- Device OS is not open
- SDK is Windows-only
- SDK's IDE is garbage (but you can use Eclipse)
If you're in the US, two general choices:
Sprint will let you load pretty much any Java ME app that does not use protected APIs on your phone. For their CDMA phones, you'll need a special developer unlock to use protected APIs (easy to get). For their Nextel phones, you can sign any apps that use protected APIs using the iDEN SDK they have available. Visit their developer site (http://developer.sprint.com) and you'll find links to tools to do Over-the-air (or cable installs in the Nextel case) of Java apps on your phones.
Pretty much any GSM phone with Java ME you can use to download apps over the air. AT&T does not make this difficult, and lets you download applications over the air to any of their Java ME capable phones. If the application uses a protected API, you'll probably have to get it developer enabled as well -- their developer website (http://developer.att.com) should help you with what you need.
T-Mobile also has wide open phones for Java ME apps, as long as they're not using protected APIs.
For Verizon, you're SOL.
BlackBerry devices are all pretty open and you can install whatever you want on them as long as it's not locked up by your system administrator. The APIs are as rich as they come.
***Foucault is watching you..***
Nokia is the way to go! They have now placed Symbian into the public domain and there is more software for Symbian than any other Cell OS that I know of.
The Java support is awesome too!
Samsung phones should install and run J2ME apps.
Sounds like you need to do some more troubleshooting, or thinking maybe. What is the problem? "They lied" and "download from a server" is not very descriptive at all.
Write a J2ME app, put it on your micro SD card, and install it on the phone. Or transfer it over gprs/3G, bluetooth, IR, etc. If you are having problems, search on google, ask on a forum, call support, etc.
So, you returned the phone, got your money back, and had your lawyer file a lawsuit against Samsung for misrepresentation? Right? Right?
All Sony Ericssons I've seen (even really old ones) can easily get java apps. Unless you get a antique model, it'll support bluetooth transfer. Those older can transfer through infrared or gprs.
Yeah, someone had to mention the obvious. But the iPhone is really great to develop for. Once you've learnt Objective-C, the whole dev environment is very good, and I've heard that from quite a few people, many professional software developers among them.
Assorted stuff I do sometimes: Lemuria.org
Sounds like a Windows Mobile device with .NET would be a choice then. Haven't ever tried them out myself (I'm very sick of mobile devices so I don't check them out really) and I have heard some bad and some good about WM, but it should be a good fit if you want the MS development suite and languages.
Sad to say it, but Windows Mobile phones are probably the most widely available "open for developers" phones out there.
Is there a good way to compile apps for Windows Mobile on Linux? Or on Windows without buying a copy of Visual Studio Standard or higher? (Visual C++ Express lacks the Windows Mobile SDK.) Is CeGCC arm-mingw32ce any good?
The only crippled features I can think of are the permanently enabled camera noise
In some markets where your phone is sold, statutes or regulations require "the permanently enabled camera noise" to counter invasion of privacy.
Windows, Windows,Windows. If you are fed up with these try Windows
Two words for ya.... Duct Tape. Wrap the cataloupe 2 times for best effect. If you can't duck it.... nevermind...
I can install 3rd party apps downloaded from anywhere on the net on my N95. To do the same on an iPhone you have to jailbreak it. Jailbreaking may be easy, but why would you want a phone that's defective by design?
Sure, N95 apps have to be signed and it's a pain having to create a developer account with Nokia to self-sign but at least it's free beer.
This is why I'm totally bemused by the iPhone popularity, not necessarily amongst trendy people who don't know any better but also amongst technically aware people. Would you buy a PC that's locked down like that? My N95 is like a tiny computer I take everywhere with me. I haven't been so impressed with a handheld since I got a Palm V back in the day.
Nick
get a blackberry and download the new plug in for Visual Studio. you can use C# and ASP.NET to develop your apps and it will work just fine. or, if your a good C# developer, Java really isnt much different. take the time to learn it, and you can add Java to your resume.