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?"
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.
I'm pretty sure that the submitter dosen't want to pay the $99/year Apple developer tax, especially just to run "simple Java apps".
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!
If he's looking for something cheaper, I can vouch for RAZRs working with Java apps. There's a simple USB Mini port on the side (cable not included) that can be used to hook it up to a computer and transfer applications.
I have also been told that many Nokia phones allow Java programs to be installed, but I do not know the details of those.
Javascript + Nintendo DSi = DSiCade
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 :( )
And you have to buy a Mac to develop them.
iPhone is the LAST phone that I would select for that. And I also suspect that if you succeed in porting Java to the iPhone Apple will blacklist that really soon since it will be in conflict with the developer license.
SonyEricsson, Nokia or any Windows Mobile phone should be fine. Operator branded phones may be lobotomized from the prospect of installing apps on them.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
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.
iPhone is the LAST phone that I would select for that.
Depends if the apps are for yourself or to sell/give to others. iPhone is soon going the only phone that matters if you are developing apps for other people. And I know it sucks, I have one. But given the amount of activity in the App store and on the illegal installers you'd be hard to not recognize that the iPhone is here to stay. I suppose to fully understand you will need to spend some serious time with a jailbroken iPhone running firmware 2.0.
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.
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.
iPhone is soon going the only phone that matters if you are developing apps for other people.
I didn't realize the iPhone was reaching 100% market penetration so quickly. Out of the ~1,150,000,000 phones sold last year, how many of those were iPhones? 3%? That's a lot to make up this year.
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.
It actually depends on the type of RAZR you have. I have a RAZR v3m and I can not put Java apps on it. If you have access to a Linux desktop, I would recommend grabbing Moto4Lin. I messed around with this and it allowed me to easily mod the RAZR by giving me access to parts of the RAZR filesystem (I think Motorolla hides parts of the FS).
Anyways, my RAZR can only run BREW apps. To develop BREW apps, one has to pay a licensing fee...
Android cant get here soon enough in my opinion
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.
God I hope not. What a dismal future that would be.
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.
Phone is easily reflashable including mods that add telnet and FTP ;-)
you need to fine tune your crude statistics, % of market penetration for all phones does not give a good sense of things. Think a bit deeper... take those 1,150,000,000 phones sold, break it down by model
If this number is significant then only the iPhone will matter.
Also factor in the following:
- iPhone is just over 1 year old and two model years old
- 3% for one model may be significant, how do the other models rank?
- safe to say this 3% is largely from the consumer side of things, what happens when business side of things picks up?
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)
Why would he do that when it's perfectly simple to jailbreak the phone? Then you can run your custom apps for free. It doesn't sound like the submitter is interested in distributing the apps he writes.
Attention deficit disorder is a complicated issue, spanning several major... HEY LET'S GO RIDE BIKES!
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..***
And if you want to write anything that interacts with the phone beyond pretty graphics you're pretty much stuffed - limited or no access to sms, network, logs and voice.
However Python on the Nokia (S60 FP2+) is a different kettle of fish altogether, it seems to shaping up to what java ME was promised to be.
I get your point, but if you limit it to software purchases then the iPhone's share is a lot higher, and climbing rapidly.
Really? Are you sure? The iPhone is the only mobile phone that requires any and all legitimately purchased software installations to go through a single point of origin. There is no comparison to Symbian, RIM, Linux or Palm. Every other mobile OS has the legitimate option to install applications without 'phoning home' to their respective manufacturer.
It simply amazes me that so many people in the slashdot crowd don't see a problem with this.
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.
This simply isn't true. BREW, used by Verizon's Get It Now service, Alltel and other CDMA carriers in the USA have a "single point of origin" system in place as well. All applications are centrally submitted and tested via QUALCOMM and these are placed in a centralised application database which carriers can select applications from. This ridiculous claim that Apple is somehow the first to do this or the big nasty one for doing this needs to be put to bed - they have replicated and tweaked a business model for mobile application development which is proven.
--- Nick, hard at work
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
This may be related to the reason why Samsung SAID it would work but it didn't: you usually need to buy an unlocked phone to do certain things. My unlocked SLVR works fine, and I've uploaded several Java apps to it.
The difference between spam and poop is that you don't have to dig through septic tanks looking for real food. -- Me
Correct; I'm not looking to distribute what I write. But the iPhone doesn't fit into the long list of phone quirks I have (won't fit in my pocket, can't change the battery, have to get a data plan I don't need, too f!@#ing trendy...). Thanks for the input
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