Developer beware: How to assess a device platform

I doubt there’s a developer out there who hasn’t been tempted by the mighty powerful marketing forces of device makers calling for apps on their HOT, NEW, COMING SOON device! I should know. As Chief Channel Evangelist for Litl, it was my job for much of 2010 to encourage developers to build apps for a set top box device that has yet to be released. Most devices launch, and when they do, their success can carry with them the talents of the developers and apps that follow.

To a developer, the chance to BE THE FIRST to build an app for an upcoming device and platform could represent the opportunity to have your app get major visibility upon a product’s launch. However, it’s also risky to get involved with a device too early and may or may not be the best use of your time. Due to complexities of the device’s platform, be it varied technologies, add-on SDKs (see below) and other limitations, it’s likely the app you write for one device will need to be heavily ported or fully re-coded if you ever want to deploy for other devices on different platforms.

To help in your assessment of “app for device” opportunities, I have put together a checklist of things to consider before you commit to building an app for a device.

1. What’s the potential market reach?


Apple has critical mass and promotes Apps alongside their products

If you’re expecting to make money selling the app, the device’s distribution is key. You should know from the company that makes the device as much as possible about how many they expect to sell and when exactly the device will reach a critical mass. Also, if you expect the device to be super successful, you’ll need to account for a lot of competition among other apps.

If the company making the device has other, successful products out, chances are they’ll be a success. If this is their first product in the space, it is a bit riskier but the reward for being an early adopter in the space could be huge.

2. Will working with the device’s platform technology add to your skillset?

Good developers love to code, even as a hobby. Even after they’ve closed out their work email, they’re still tinkering with other ‘side’ projects, hungry to learn the next big thing and keep sharpening their skills.

Picking up a device platform could be a great and fun way to cut your teeth on a new technology. If you’ve never coded for devices before, it can really be an enjoyable experience. Also, if you’ve been stuck coding the same language for a while, building an app for a device can lead to new technologies and broaden your horizons a bit.

3. Will building an app for the device be good for your career or business?

If you work at a company, and they are servicing clients interested in a certain target device, then having a deployed app under your belt could be very valuable. Just the same, if you’re a contractor, and have or sense demand from your clients to deploy apps for a device, getting an app out would be great.

In this climate it’s not hard to identify opportunities like these. This might be the best excuse to dive into a platform and not look back. Going into work or sharing with clients an app of yours freshly listed in the device’s respective store/marketplace can be a big highlight for you! So if you’re going to play with a device on nights and weekends, consider one that has great potential for your career and business.

4. Are you over-committing your app to the device platform?

As mentioned above, it’s likely that the app you’ll build may only work on a single device (or with other devices from the same company or platform). If you’re going through the trouble of learning the device’s technology and building an entire app, especially from scratch, consider the effort of having to re-write it for other devices. Many devices share baseline technologies and languages. However, a lot of new ones require add-on SDKs. This means that in addition to adopting a specific language/technology, you’ll need to download and maintain the SDK specific to the device. This can really lock you in and make your app a slave to the platform.

Check to see if the platform has a history of “breaking API”, which requires developers to fix their apps with major API version releases. If it’s a new platform or device, see how frequently they’ve versioned their platform and tools. It might be a sign their going to be trouble.

If you’re using a proxy technology, a method of deploying an app in something other than the device’s native platform/language, make sure that it gives you access to the device features you want to build your app for. Also, check that the company building the proxy technology is keeping up with the overall versioning of the platform.

5. How valuable are you and your app to the platform?

In some cases, your app (and more specifically, having YOU deploy the app) may be more valuable to the device maker than you realize. Dig deeper and find out what incentives the platform support or evangelism teams are offering to encourage you to build for their platform. They may have a fund setup, or more likely, some big marketing dollars to grant you in the name of ‘developer acquisition’. Make no mistake, you’re participation and ability to deploy a quality app is very valuable to them. See what you can get from them (money, free software, and especially, a free device) before you submit your app.

6. Get your hands on the device first or get a first-hand demo or review.


Touching the highly coveted and hyped Blackberry Playbook at CES

More important than the sample code and support you’ll get as a developer, you must know the device you’re coding for is of quality. It must be something people are going to want or need. In most cases, it will help if you also want and like the product. Getting a hands-on demo of the product is very important, especially if it’s not been released yet. This has turned me off of more products than not. It really helps if you believe in the product, and getting to play with the device can boost your interest and confidence in it.

It’s really hard to build a quality app for a product that you don’t have. When possible, you should have the device handy to test with. Platform SDK emulators/simulators are helpful, but with so many different interaction points, ranging from touch response to accelerometer, being able to use your app right on the device can make it so much better. Hopefully, if you’re committed to building an app on a new platform, you’ve managed to get a device for free in the process!

I’m not going to list out any devices or platforms in this post that you should jump on or avoid. For now, I’d appreciate your feedback, via comments below, on what factors you look at when assessing a device platform’s potential and deciding whether or not you should build the next great app for it! Most devices coming out are great. Usually, if the company has put marketing money behind promoting it, then it’s likely to be huge! Why not be a part of it?!


2 Comments

Leave a comment
  1. Antonio Holguin 03. Feb, 2011 at 2:33 pm #

    If you are on the hunt for a new job, getting to know different languages/platforms/devices/environments is a huge plus. You don’t have to be an “expert” in those specifically, but having the experience, and showing that you are interested in more than one is definitely a selling point when in interviews. When looking though resumes and speaking with candidates (either designers or developers), I like to look at level of excitement along with actual experience. If the potential candidate has a high level of excitement, but not necessarily the expertise, they are usually the ones that learn the best and are more driven to succeed.

  2. Scott Janousek 17. Feb, 2011 at 3:01 pm #

    This is a great post, Chuck.

Leave a Reply