“I’m building a special application for [my company]…can I just use an iPad/Galaxy/off-the-shelf tablet? Or should I use the Amber?”
As much as I could be self-serving in answering that question (mwahahaha!), the real answer is that it depends. The more targeted question to ask is:
“If I just build an Android or iOS app, without hardware accessories, does it get the job done?”
There’s a bit of a gray area, and a lot of instances where you really could go one way or the other. But my take boils down to the fact that, if you can avoid building custom hardware, I’d recommend that. But if there’s no way around it, it’s usually worth putting in some effort to make the path as quick and painless as possible.
Embedded development can typically be broken down into three levels:
Application Level. The front-end. Anything that can be downloaded on Apple’s App Store, or Google Play. This is anything that the end-user will interact with, and also constitutes permissions and access to resources within the OS and hardware.
Operating System Level. This involves kernels and ROMs that provide access to functionality on a piece of hardware. With Android on consumer devices, this usually includes rooting the device, then adding functionality or removing OEM restrictions on the hardware.
Hardware Level. On one end of the spectrum, this entails something as “simple” as an accessory device, like Square’s credit card reader:
That said, not all accessories are made equal, and when added functionality, higher bandwidth, and larger amounts of data are required, the accessories become increasingly complex. (A common theme is the analog-sensor-to-Android-device project, which gets the Arduino and Amber/Android involved…subject of an upcoming blog post!) The more complex the accessory, the more likely it is to require OS level tweaks as well.
When to use an off-the-shelf tablet:
When it comes to custom applications, I typically recommend Android because of the simplicity in pushing down your own custom .apk file. The off-the-shelf tablet is ideal when…
1) Stock permissions are adequate. If the front-end app can be built without running into OS-level obstacles, that’s a great first sign that maybe going with a portable app that can be run on any consumer device is the way to go.
2) Low-complexity hardware accessories. Similarly, if power and data transfer to the device is simple, it may be easiest to use an existing interface – in most cases, Apple’s 30-pin (soon to be 19-pin?) docking connector, or the micro USB OTG on Android devices. As soon as higher data rates are needed, level shifters come into play and you want to start transmitting across SPI, I2C, and have a million uses for various GPIO…it’s not a bad idea to think about a custom device.
3) Low volume/high speed deployment. If an extremely quick turn is required (say, a weekend-ish) for a prototype solution, and the deployment is pretty limited, supply chain and manufacturing concerns are just going to get in the way. Get an unlocked device and make modifications. There’s no time to burn sifting through custom specifications on potential hardware options. A device in the field is worth a hundred on paper, even if it’s not quite perfect. (One of my personal heroes, Guy Kawasaki, is big on this.)
4) Minor OS Tweaking. In many cases, it’ll be necessary to root a device, and flash a custom Android ROM or kernel. For a few units, it’s not too big a deal, especially if you have some strong Android coders to navigate the low level, or maybe some skilled developers have already taken care of the heavy lifting. Even better if you can get the devices “pre-rooted” or loaded with your custom version of Android.
5) Low-cost Networking/Battery. This weighs in quite heavily for mobile applications that meet all of the above. Aside from the CPU and display, WiFi/Bluetooth/3G/4G and good power management systems drive significant cost in any embedded device, especially in a compact package. Customizing an off-the-shelf device for these purposes takes advantage of the economies of scale of consumer products, and in some cases, subsidies from from cellular providers.
Bonus: Branding. This one has typically been a dealbreaker for many companies based on preference. Sometimes it doesn’t matter if the user knows that this is an off the shelf device, or that it’s running an OS behind the app, but this factor alone has driven teams to search for a fully customizable device.
Stay tuned for Part II on when a custom Android tablet might just fit the bill. In the meantime, if you’re not sure about your project, or want to share your experience, feel free to comment below or email me: justin dot huynh at liquidware dot com.