Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Handhelds Programming

Best Platform For Hobbyist Mobile Development? 143

An anonymous reader notes a blog entry, possibly his own, comparing and evaluating 8 mobile platforms from the point of view of their suitability for a hobbyist programmer. Covered are iPhone, Java ME, Windows Mobile, Linux, Palm, Brew, Symbian, and Blackberry. The writer seems open-minded and is a strong fan of free software, but he gives the edge to Windows Mobile for this class of developer.
This discussion has been archived. No new comments can be posted.

Best Platform For Hobbyist Mobile Development?

Comments Filter:
  • Issues (Score:3, Interesting)

    by Anonymous Coward on Tuesday October 02, 2007 @12:08AM (#20819451)
    Overall, I had my hopes up when I saw this title -- I was hoping to get a better review of many platforms...and we do, so long as those platforms are one's the author used.

    Right off the bat, two very large platforms, he says 'I've never done anything with this one.' So he counts it out -- why even put it in the article?! My minimal experience with Blackberry development seemed pleasant enough -- it was easy to compile the software and get it on the phone, and it was easy enough to execute it. Granted, it was a loaner blackberry so I only got it for a few days, which in my case, was enough time to tinker with example code.

    As for Brew, which the author also states he has no experience with, but goes on to talk about the horrendous signing requirements...which I guess is better than the one-sentence approach to Blackberry.

    As for Symbian, wtf is he talking about? I had a good friend that was porting some small-time development house's flagship phone cardgame suite from, believe it or not, XBox to a Symbian smart phone. I don't recall what version of the OS it was, but it certainly didn't seem like it was a pain to sign anything. He showed me the entire process - save code in IDE, compile code, open phone in My Computer > Bluetooth Devices section, drag-n-drop the compiled package, go on phone, run program.

    He did however complain about how picky Symbian was about memory management, and that it was extremely annoying in that it would tell you about every byte you didn't clean up perfectly when your application closed. I suppose thats a good thing and a bad thing. Maybe they had some weird dev phone that didn't need signing, I don't know -- they were big enough to have a developer XBox 360 several months before it was officially released.

    For some reason, I have a feeling this guy was just running out of material and got bored.
  • My Take (Score:5, Interesting)

    by RAMMS+EIN ( 578166 ) on Tuesday October 02, 2007 @12:19AM (#20819521) Homepage Journal
    I don't have a lot of time, but I'll just quickly give you all my take, without going into details too much.

    1. J2ME. It's the Java you all know and either love or hate, but with a different library. Some things work the same way as they do on the desktop. Some things work differently. And some don't work at all. Generally, there will be differences from device to device. Lots of devices come with J2ME implementations. Developing tools are freely available. J2ME seems to be a relatively stable target.

    2. Linux. It's Linux. In theory, it's the same as desktop, server, etc. Linux. You should be able to use the same developing tools and libraries, which are freely available. In practice, devices may have odd differences and limitations compared to desktops running Linux. Sometimes, vendors go out of their way to introduce incompatibilities. It's a mine field. The number of devices Linux runs on is limited, and the ones you can reasonably limited are fewer still. Although the core of the platform is stable, parts of it are very much moving targets.

    3. Windows Mobile (formerly known an Windows CE and Pocket PC). Pretends to be Windows but isn't. The platform has odd limitations and restrictions that differ from version to version and from device to device. Developer tools are available, but not necessarily free of charge. It all depends on the target device, its configuration, and the version of Windows Mobile. In general, you will have to pay for developer tools, compile different versions of your app for different targets, and pay for signatures on some targets. Many devices come with some incarnation of Windows Mobile on them. The whole platform is a moving target, with incompatibilities introduced at about every release.

    The way I see it, of the three, Java wins hands down. It's the only one that is actually workable.

    I don't know where Vivek is coming from when he says ``I never thought that Windows Mobile would take the pie, but for a hobbyist programmer they offer the best SDK's and you can make applications without worrying about certificates while testing and debugging. With a windows mobile one really feels in control, if you want to screw up your mobile device its really upto you. One rarely feels tied down the API's are clean and functional. Getting your first demo program onto the device takes a few seconds. It just makes sense to develop for windows mobile. There is almost no need to get your applications signed, at least for testing.''

    To me, it has been the exact opposite of that. It's a nightmare. It's a nightmare to figure out what you have to download to get up and running. You can compile binaries for th platform with various tool chains, including some (user friendly for me) open source ones, but they won't run on all devices, as they will be lacking the right signatures. If you do get your application signed (which is costly; you have to sign every version of every exe, dll, and cab), it won't work on older releases that don't support code signing. The platform is almost ridiculously limited, and limitations aren't consistant across versions (e.g. you may or may not be able to get at a given file using the file open common dialog).

    I'm thinking Vivek just tested things using one device, and was lucky enough that it didn't throw a tantrum.
  • Re:J2ME (Score:3, Interesting)

    by RAMMS+EIN ( 578166 ) on Tuesday October 02, 2007 @12:28AM (#20819553) Homepage Journal
    ``I just don't get why J2ME development has to be so complicated: weird acronyms, half a dozen versions''

    It's the Java way, or maybe the Enterprise way. They like acronyms and buzzwords and pretending they've invented something new, when it's really something that has existed outside the Java world for ages, or a workaround for some limitation of Java.

    ``Sun is snatching defeat from the jaws of victory; give it another few years and they'll have thoroughly destroyed the mobile Java market as well, just like they did with the Java desktop market.''

    I believe Microsoft takes the credit for that one. Sun's premise was "compile once, run anywhere". Microsoft made it not work on Windows. Not being able to reach 90+% of your target audience = dead product.
  • Re:My Take (Score:5, Interesting)

    by Shados ( 741919 ) on Tuesday October 02, 2007 @12:30AM (#20819565)
    I didn't read the article, but the reason many people prefer Windows Mobile is because of the .NET framework. It just makes it too easy to make apps for it. While a binary for desktop will not run on a Windows Mobile device, the source code recompiled often will, if you avoid the subset of the language thats not available. Failing that, a Windows Mobile .NET assembly -will- work on a desktop, so its pretty cool to test stuff out. Yeah you need to pay for the (better) tools (the basic tools being freely available), but its actually quite cheap and so easy to use its almost like cheating.

    Personally I was put on the spot with no mobile device experience -whatsoever-, with a 2 weeks deadline to learn it AND deliver a tested, fully working and deployable (on customer devices) remote real time inventory management software su pporting most mainstream Windows Mobile enabled barcode scanners (I realise I'm not talking hobby anymore) with nothing but the lowest version of Visual Studio that supported it (which is incredibly cheap, especially since you can get an upgrade from virtually anything, including competing products), and I actually finished ahead of time.

    Then by replacing the bits that actually used the barcode scanner with a stub, we were using my boss' cellphone to demo it to customer without any changes (beyond the one I just mentionned). That was pretty fun :)
  • Re:J2ME (Score:3, Interesting)

    by timeOday ( 582209 ) on Tuesday October 02, 2007 @12:33AM (#20819583)
    I wasted hours trying to be able to develop java software for my PocketPC, and never did get it to work decently. There's no JRE preinstalled, no freely available JRE available for download, and to target a device you need some sort of device profile - which I never found for a plain old PocketPC! I ended up with IBM's J9 runtime, which I realized is designed for OEM's to preinstall on cellphones, and a big headache to get working on a PocketPC. After all that, it doesn't support Swing (or even AWT) anyways! There's a confusing alphabet soup of device types (CLDC?) and no matter what you do, all applications are forced into a cellphone template (MIDlets).

    Long story short, I thought Java would be perfect for developing an app I could run on the desktop or PocketPC; instead it is a nightmare. I ended up writing my app on PerlCE, a port of perl to the PocketPC. Works for me, but it's nothing you could redistribute and has plenty of rough edges. In fact it turned out as a command-line app which wasn't really what I set out to accomplish.

    Actually, PocketPC's in general are really going down the tubes. All the software Windows Mobile 5 is awful, unstable, and simplistic. It's so unstable as to be almost unusable. I think everybody at HP and Microsoft has moved on to smartphones, the PocketPC has a strong odor of decomposition about it. Sucks for those of us whose workplaces disallow cellphones.

  • by juanfe ( 466699 ) on Tuesday October 02, 2007 @12:42AM (#20819627) Homepage
    I do mobile platform evangelism for a living -- I very much like hearing what people have to say about platforms and developing for them. But this was disappointing from any of the angles I look at it: if he actually did bother to do research, then we in the mobile space are doing a miserable job at educating the hobbyist (he obviously had a hard time finding the BlackBerry JDE or a clear enough explanation of Java ME that tells him that 90% of devices out there with Java ME are MIDP); if he didn't bother doing research, then it almost sounds like he went out of the way to prove that Windows Mobile is the way to go... and from my own experience, for the average hobbyist, WinMobile does the trick but only so far (i.e. good toolkits and APIs but only if you want to code in C, if you want to do .NET you've got to shell out for Visual Studio); if he really didn't try, then it says something worse about the person who thought this merited highlighting.

    It may just say that the mobile space is really not targeting the hobbyist... should we change that?

    If someone has actual experience in this, would much welcome reading it.
  • My experiences (Score:5, Interesting)

    by JustNiz ( 692889 ) on Tuesday October 02, 2007 @01:12AM (#20819775)
    I used to work as a software consultant for a large company who shall remain nameless, making those in-car systems that integrate Navigation/cellphone/internet/car control all in one built-in unit in the car's dashboard.
    They wanted to get away from their usual approach of having to make a whole new custom system for each car project, so we made a custom hardware platform running Windows-CE that we could sell to different car manufacturers just by modifying the front panel and changing some of the graphics.

    Anyway I just told you all that to establish my experience and tell you that porting CE to a custom platform and developing drivers etc. for CE sucks very badly compared to doing the same with Linux due partly to the poor documentation and lack of support from Microsoft, and also that CE itself and its APIs are very badly designed and structured compared to Linux.
  • by Anonymous Coward on Tuesday October 02, 2007 @01:28AM (#20819847)
    Before discovering how useful Linux could be, I actually enjoyed developing for Palm OS more than anything because (1) there are on-board C compilers and assemblers and IDEs that run on Palm OS for coding on the go (I personally used the OnBoard C suite) and (2) there are Palm OS programming toolchains available for Cygwin and UNIX all available as FLOSS. Not only that, but Palm OS is *easy* to program for--reminiscent of DOS (i.e. no multi-tasking, direct control of the hardware, no time-slicing, very limited event-driven programming (except for Palm OS UIs, but I was mainly interested in graphical programming like games)).

    Now that I have a Sharp Zaurus C1000, which currently runs the latest testing image of Angstrom Linux and boots from a 1 GB SD card, I have more useful tools like gcc, binutils, vim, python, tcl/tk, GTK+, XWindows, etc. on-board with *native* ARM assembler support and best of all, no stupid 32k branching limit (i.e. Palm OS 5 implements a Dragonball M68k VM-like compatibility layer to run legacy apps on ARM hardware (in fact, all Palm OS 5 software needs at least a M68K bootstrap code segment to even run at all), but a side-effect of this is that the short-comings of the M68k are also emulated, such as the 16-bit data bus xP). PC-based development options include cross-compilers like Scratchbox, which is also useful for compiling *large* apps (i.e. new kernels). I'd say I'm better off with Linux--it's capable of so much more in embedded space than the competition.

    FTR, I never found a useful way to develop for Windows Mobile short of paying out the wazoo for CodeWarrior or MSVC++.
  • by gig ( 78408 ) on Tuesday October 02, 2007 @01:32AM (#20819869)
    Most hobbyist developers are Web developers today.

    You can make HTML+CSS+JS with any Unix to W3C standards and test in Firefox and your work will display beautifully on the iPhone or iPod, which also has an excellent HTML+CSS+JS debugger and Bonjour networking. Very low cost of entry, especially if you were going to buy an iPod or iPhone anyway, and the stuff you make also works on every Web 2.0 system. You can also include ISO MPEG-4 H.264/AAC media and you're compatible with everything, even Flash as of v10.

    There is very little you can do natively on mobiles anyway, the ones with native apps all have no memory and bad operating system software, that's why there is so much interest in native iPhone apps, because it's the first phone with the resources. Put that aside for now and you notice that many iPhone Web apps are better than native apps for other phones.
  • Hecl (Score:3, Interesting)

    by DavidNWelton ( 142216 ) on Tuesday October 02, 2007 @03:39AM (#20820431) Homepage
    Since I've worked pretty hard on it, I'll take a moment or two to promote my own 'platform': Hecl, at http://www.hecl.org./ [www.hecl.org] It's a scripting language built on top of J2ME, which means that no, you probably shouldn't write games with it, but on the other hand, it should make it far easier for the 'average Joe' to actually be able to successfully create an application, and for a good developer to do things much faster than with J2ME.

    Also, for fun, I created a prediction market about which platform will dominate, but since it's not played with real money, it's not worth all that much:

    http://home.inklingmarkets.com/market/show/6481 [inklingmarkets.com]
  • by siDDis ( 961791 ) on Tuesday October 02, 2007 @04:37AM (#20820633)

    I just don't get why J2ME development has to be so complicated: weird acronyms, half a dozen versions, different packages which may or may not be supported on any particular device, applications that sometimes run and sometimes don't, installers that sometimes work and sometimes don't, etc.

    Sun is snatching defeat from the jaws of victory; give it another few years and they'll have thoroughly destroyed the mobile Java market as well, just like they did with the Java desktop market.
    You should try NetBeans 6, the developers have implemented great support for developing J2ME applications. There is even a GUI/Flow designer for Mobile devices included. It's true that before I had to spend a week configuring just to get Hello World up and running, but with a clean NetBeans 6 install I(and probably all of you) can do it within seconds. Also an emulator is included so you can test/debug on your computer, still if you want to test your application on your mobile device you just have to copy the compiled jar file over.

    There are several samples included: like sounds, graphics, basic networking, games. I recommend everyone who is interested in developing application for mobile devices to check it out ;)

    But if you already hate Java, then just stick to the Windows platform. It's also very good.
  • Re:My Take (Score:3, Interesting)

    by MrBandersnatch ( 544818 ) * on Tuesday October 02, 2007 @05:11AM (#20820761)
    I read the parent article and comments thinking "Oh how marvelous. Things have really improved over the last 7 years since I last had to write a web-browser for CE/PPC because the IE one wouldn't connect to localhost properly"(!! Indeed. I had written one of the first webservers to target the PPC. In Java...). Obviously not!

    My quick take from a nightmare project about 8 years ago :

    Java : I actually believed them when they said "Write once, run anywhere". For me this became "Write once, run away". Ive not touched Java since.
    Windows CE/PPC : This platform was so well documented they would often have 3 or 4 versions of the documentation for an API. Which would have been fine if ANY of those versions had been either correct OR complete. This was the first project on which I actually quit from pure frustration at the toolset.

    Anyways, I feel for you :(
  • Re:J2ME (Score:3, Interesting)

    by efornara ( 1165681 ) on Tuesday October 02, 2007 @06:18AM (#20821041)

    I'm writing an OpenSource J2ME application as an hobby (shameless plug: http://jbit.sourceforge.net/ [sourceforge.net]) and I don't think J2ME it's that complicated. Its basic API (MIDP1) is very simple. Its second incarnation (MIDP2) is also simple. There are a lot of optional APIs, but I believe you can write interesting applications without them. Sure, if you want to use GPS, you need to use a specialized API and not every phone will support it. I think it's fair.

    But this IMHO is missing the point. Are there any other platforms besides J2ME? I'm sorry but I don't see that many SmartPhones around me (Italy). Most people I know think they are expensive and bulky. I have a friend who still has a Nokia 3310. Laugh as much as you like, but its display has better visibility under direct sunlight than most "Smart" phones I've seen.

  • by jordan314 ( 1052648 ) on Tuesday October 02, 2007 @06:20AM (#20821047)
    after purchasing my T-mobile Wing. The iPhone may be sleeker and faster, but because developers don't have to waste time hacking their way into the OS, and because the OS is not limited to one device, there are several times more applications available for Windows Mobile out there. I'm sure many developers will be discouraged by Apple's bricking, too. I think someone hacked together a NES emulator and skype for the iPhone, but I still haven't seen unique applications like the music making software Syntrax, GPS tracking software like Tracky, or games as complex as Riven and Myst for the iPhone like I have on my pocket pc. Cnet has an amazing collection of pocket PC games and they all actually work for the phone; I used to use Getjar all the time for my last java phone but it was amazing even with a cross-platform language like Java how many of the applications just didn't work as expected (or at all) with my previous phone. It was always a gamble. I agree with the author's stance that you can expect the same results the most with Windows Mobile, as much as I'd like to root for Apple, Linux or Java.
  • by torpor ( 458 ) * <ibisum.gmail@com> on Tuesday October 02, 2007 @06:32AM (#20821109) Homepage Journal
    I've got the GTA01 release, and its rockin' .. definitely the most open and easily approachable platforms for mobile development, even if its not really established market-wise quite yet .. time will tell when the GTA02 release (December) is done and we start seeing OpenMoko-based phones on the market .. in the meantime its sure nice to be hacking apps up for it in advance .
  • Re:J2ME (Score:5, Interesting)

    by teh kurisu ( 701097 ) on Tuesday October 02, 2007 @06:57AM (#20821195) Homepage

    Java EE is an utter mess, in my opinion. Too many acronyms and buzzwords and oh god the XML configuration files where everything has to be configured in three different places and then when you get something wrong it breaks and you can't figure out why... *deep breath*

    That was my impression of it anyway. Some of it was incredibly useful, but all the unnecessary configuration just got in the way.

    J2ME is nowhere near as complicated or difficult to get up and running. Eclipse, the EclipseME plugin and a compatible device are all you really need. The plugin does all the essential stuff for you, and having bluetooth on both the device and your PC makes deployment easy. For more serious stuff I use J2ME Polish (as in Mr Sheen), which handles handset compatibility and APIs quite well, as well as giving more control over the GUI.

    That said, I got the distinct impression from TFA that, on the subject of J2ME, the author didn't have a clue what he was talking about:

    As of today the they offer/highlight Sun Java Wireless Toolkit 2.5.1 for CLDC for download. But I have no idea about any device which offers support for it, I like the fact that I can use swing in Java ME applications but where am I supposed to test it. Unless they want a programmer to develop for a hypothetical platform which exists only as an emulator. They should offer/highlight Mobile Information Device Profile (MIDP) v2.0 which makes a lot more sense.

    For a start, MIDP 2.0 is part of the CLDC Wireless Toolkit. And as for "where am I supposed to test it"... well, the toolkit comes with an emulator for precisely that purpose. Most modern mobile phones are also MIDP 2.0 / CLDC 1.1 compatible, so that shouldn't be a problem. There are also optional APIs that the mobile manufacturers can provide according to the capabilities of the phone (for example, the Nokia N95 contains a GPS unit, so the Location API is included).

    I'm not saying that it's the best mobile development platform out there, as I've come close to tearing my hair out when faced with some of it's limitations. But if there's one thing I can't fault it on, it's the shallow learning curve. I suspect the author wasn't really trying.

  • Re:Badly written (Score:2, Interesting)

    by ricegf ( 1059658 ) on Tuesday October 02, 2007 @08:37AM (#20821567) Journal
    Microsoft certainly knows how to support their programmers, but could you address why you believe Maemo is a non-starter for hobbyists? I've programmed it as a hobby since 1.0, and it's always been fun and very forgiving to me. And with Ubuntu lining up behind Nokia, long-term viability appears to be a non-issue. And the Python support is top shelf, too. ;-)
  • Re:J2ME (Score:3, Interesting)

    by bjourne ( 1034822 ) on Tuesday October 02, 2007 @10:24AM (#20822771) Homepage Journal

    If you step back and squint, J2ME is handled exactly the opposite way that Java is handled. There are no standardized implementations you can deploy on, not even on PDAs, which would bring a lot of ideas and talent in from the developer community. This diametrically opposite effect explains why Java, which is so important in the enterprise, is a toy platform in the mobile world. You either develop for a specific device, or you develop trivial games that don't cause a lot of grief when they don't work cross platform.


    Oh really? If J2ME is a toy platform, what is the real platform then? J2ME is deployed on billions of devices and it would be insane for any ISV to ignore that. Yes, the platform is balkanized and you have to perform a lot of painful compatibility testing to ensure that your software works on a wide range of devices. Exactly the same problem you would have had if you wanted to deploy commerical apps targetting GNU/Linux. And yes, write once run anywhere is a myth. But what is your alternative? The Windows Mobile market is only about a few millions so that is right out.

    And which of Investigators, Sims 2, VRally-3D, Extreme Air Snowboarding 3D, Tomb Raider, Virtua Tennis and 3D Golf xPro is a trivial game? Which of them is developed for a specific device?
  • by suggsjc ( 726146 ) on Tuesday October 02, 2007 @11:03AM (#20823371) Homepage
    Just want to throw a couple more into the mix.

    First, SuperWaba [superwaba.com.br]. It is by no means a fully feature platform, but if you are just doing some basic programming and want to be able to support multiple platforms (WinMo, Palm, and Blackberry) then it is fairly easy to get up and running. Also, it based on java, so 90% of java examples will "just work" when programming with SuperWaba. FWIW, that is what we are using for our deployment of a mobile solution for our company. Also, it is GPL for the community version and if you purchase support, you can have the LGPL version.

    Second, OpenMoko [openmoko.org]. It has been discussed on /. before, but it is basically a completely open source platform. You can program with GTK+ or now that Qtopia has been released for the Neo1973 you can also try your hand at Qt. Very volatile project right now, but quickly stabilizing and progressing.

    I know that neither of those have the numbers of the 8 that the article evaluated, but for certain cases they are very viable platforms. Also, both have a lot more freedom than most of those platforms as well.

"May your future be limited only by your dreams." -- Christa McAuliffe

Working...