Which Phone To Develop For?
Rob MacKenzie writes "I have to decide on a mobile phone to develop for. We're building a house with some automation built in, and we want the mobile phone to be able to control certain aspects of it, and retrieve information on what's going on in the house. Our choices are the usual suspects: Apple's IPhone, RIM's Blackberry, Nokia's line (Symbian), any Android phone we can get in Canada, J2ME generic app, or a Web-based UI we would interact with in the phone's browser. What would you choose if you had to go with one? Which exact model? We will be buying a few to develop for, so price is a bit of an issue."
You can target the iPod touch as well as the iPhone, and can develop on the iPod touch as well as the iPhone ($220 development platforms with no per-month cost).
You have some very interesting features (accelerometer, GPS, camera) which make for some particularly interesting ideas
You have a large installed base thats still growing rapidly.
And apple takes only a 30% cut of revenue, in exchange for a nice distribution mechanism.
Test your net with Netalyzr
That way you can control things with or without the phone. Give it a simple interface and then you can use any phone or device with the web page.
If you design your system with a web-based system, you can even go ahead and add other types of device into the mix while still properly supporting a phone. Something that works with the aging Nokia 770's web interface, or even the newer 810 would work just fine with an iPhone, or any flavor of Windows Mobile.
In my personal experience, the iPhone would be a great platform for something like this - though the cost of entry isn't so great. However, the iPod Touch would do just as well unless you really need to have cellular access to things from long distances. The Mobile Safari interface is nice and clean, and the "Sliding" paradigm used in a lot of interfaces for it seems to be quite user-friendly and not too tough to work with.
Windows Mobile might be good for development of a standard application, and Windows Mobile devices are a dime a dozen these days if you don't mind going back a few versions. Unfortunately, the underlying OS is.. Windows Mobile.
My own pointless vanity vintage computing page
Technology is becoming agnostic.
Build a 'phone' ready web page and stop worrying which device will connect to it.
The Kruger Dunning explains most post on
Why not develop it for Windows Mobile? It doesn't have as many restrictions as an iPhone or blackberry, is well established, is widely available, and has a good sdk.
Though, I will say that the most flexibility would probably be from a web-based app. Then you wouldn't be limited to a phone. However, it wouldn't be too difficult to make something that could work both on Windows Mobile and desktop Windows.
Personally, having developed for Windows Mobile and the iPhone, my inclination would be to instead create a web-based UI.
The reason is simple: first, the web is pretty universal. You can (in theory) use it from almost any device with a web browser.
Second, it's going to be a lot easier to quickly prototype the control software than a custom client/server architecture with a custom protocol, which you'd get with nearly any mobile device.
And third, if you switch to a new brand of phone, you're not completely hosed; the worst thing that will happen are a few web page tweaks.
Seriously consider using either J2ME or Web-based content. You can never rely on any one thing, but standards like these should allow you to change target platforms more easily in the future when the company you've chosen to follow either busts or, more likely, drops one of the features you've relied upon and you have a large amount of rework ahead of you.
(My fantasies always revolved around the Palm, but that was the standard when those dreams began).
Leela: "Is all the work done by children?" Alien: "No, not the whipping."
The cool thing about developing for the iPhone is that you are *essentially* also developing for OS X. So its almost a twofer.
Visit Jonesblog and say hello.
...and the "easiest" solution is to go the web route. You can determine, based on the browser identifier, what is connecting to your web server and adjust the CSS accordingly. In our app, for example, I use a CSS library from Google Code to make the app look like an iPhone app when I detect it's an iPhone. I use a different CSS file when it's anything Blackberry.
Your server, therefore, is what should be the controller. I'm assuming you want to connect somehow to things like the air conditioning, lights, etc. The web server can invoke a CGI program, as an example, which talks to whatever serial lines are necessary to control said equipment.
Even better, you don't need to buy the actual hardware; get XCode and you get an iPhone simulator. Likewise, RIM has a simulator for every freaking model of every phone they've ever released (as well as for the different carriers).
Total cost to you should be zip for development purposes.
...but how long will any mobile phone technology last? Will you find yourself having to re-do it all every 5 years as phone/carrier makers obsolete what you developed for?
Web based makes sense since you could possibly transition to some other technology, or, more likely, a mobile device's web access will only get better making it in-place upgradable for a long time.
Building your software to target a specific phone technology just seems terribly shortsighted for something like a house.
(IMHO, the real answer is "none" -- home automation is of limited value past a programmable thermostat and ultimately an albatross of shit that doesn't work and is expensive and time-consuming to fix. Its frightfully expensive to maintain ordinary systems like windows, gutters, and roofs, let alone a whole complex automation system).
>
You have a large installed base thats still growing rapidly.
A good fraction of said installed base has money to spend. All of them have a track record of being separated from their money with only moderate effort.
And separating other people from their money is the primary motivation for going into any business.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
Except with many smartphones you aren't locked into a single point of sale. There are plenty of very good Windows Mobile applications that vendors sell directly to the consumer, for example.
For this purpose, I'd go dual interface, and not bother coding on the phone itself.
WAP (a cut-down version of HTML) works on all small-format web browsers, and should be your *high end* phone interface. But also, you should have a secondary interface, based on a voice modem, that is audio/keypress, and which would work with all phones hands down full stop.
SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
Consumer-grade crap is crap and it'll fail.
Get a real automation system and wire your house up properly. Hell, with what you're spending on your phone "solution", you could easily get some PLC controls and wire up your house so that it will last for the life of your house.
Here's some less-expensive stuff, but still of very good quality:
http://web4.automationdirect.com/adc/Home/Home
Of course, I'm just an EE that works in automation and control. What do I know?
---
ECHELON is a government program to find words like bomb, jihad, plutonium, assassinate, and anarchy.
Apple users are well-trained to pay premium for everything, from the iphone accessories to the software applications.
I'd go for the well-paying techno-lusting, in-love-with their device user base.
While the bberry is highly addictive, it's used almost exclusively for the simple tasks of email/calendar/phone.
May I interest you in developing a $10,000 application which will display a message saying "I am filthy rich and you are my bitch!" on said device?
Good luck!
Problem with Windows Mobile: the software market is dysfunctional: no central app store like Apple for at least another year, sites like Handango take 40-70% of your revenues, and WiMo market share is dying. Dropped from 24% in 2004 to 12% this year. Look at apps that are available: ugly, expensive, and lame-o. Consumers aren't attracted to that, and the installed base is falling apart. Microsoft sold 18 million in the last year, not even twice as many as the iPhone, except that the iPhone is one platform; all the WiMo devices are slightly different, with different features and capabilities, from non-touch tiny Smartphone screens to larger Palm-style Pocket PC form factors.
Look at RIM: Apple just passed them in sales this quarter. RIM sells replacement phones to a relatively slow growing base (19 million subscribers total, again less than double Apple's sales this year). Its installed base is also spread across a variety of different models.
Palm is dead.
Symbian is big but struggling. Difficult to develop for, has the same problems with marketing apps as WiMo. Nokia sells a lot of phones, but most don't run Symbian but only the feature phone Nokia OS. It's Symbian products are split between different hardware types, and the overall Symbian market is currently split between three platforms.
Flash Lite and Java struggle to run on hundreds of slightly different phones, which all have the same software marketing problems. Android is basically just a semi-consistent version of Java ME, the hardware will still be all over the place. Installed base is currently very small, and the G1 isn't going to help in that regard.
Apple's iPhone has a single installed base of over ten million units, and growing dramatically. It has a wildly profitable marketing system for software, good development tools that share a lot in common with Mac development, and a customer base that spends money. There is no real variation in hardware to deal with, nor problems between the software/hardware vendor.
So if you want to do mobile software to make a political statement, or because you like a certain technology, or just want to keep yourself busy, you have several options. If you want to make money, you write iPhone software and sell it to the ten million iPhone users and several million other iPod touch users.
Five More iPhone Myths
Myth 6: iPhone Developers will Flock to Android
Myth 7: iPhone Buyers will Flock to Android
Myth 8: iPhone will lose out to Steve Ballmer's Windows Mobile 7 in 2010
Myth 9: iPhone Unable to Penetrate Europe Due to Symbian Dominance
Myth 10: RIM's BlackBerry Will Contain iPhone Expansion