Coding for cars: The next generation of mobile apps
- 03 April, 2015 01:46
For several decades, enterprise developers had to support one simple platform: computers on desks. Then the smartphone came along and we had to find ways to deliver the data to a smaller, more mobile rectangle. All of these challenges, however, prepare us little for the next big platform to come: the automobile.
General Motors has been one of the largest purveyors of computers for the past decade, as the average car comes equipped with dozens of chips running everything from the fuel injectors to the brakes. These machines, though powerful, have offered little connected to the outside world.
That's changing. Car manufacturers aren't blind to the fact that the next generation of car owners are more interested in a fast smartphone than a fancy car. The speed and sophistication of the Internet has made poking along in traffic more unbearable. And if cars are going to compete in the coming market, they'll need to give people access to their music, the news, and much more.
Supporting the automobile as a development platform will be a significant challenge. But with the likely incursion of robot drivers and autonomous cars to come, developing apps for cars may be our toughest task yet. While there are currently no autonomous cars for sale, Google and all the major car companies have demonstrated working prototypes that are tantalizing.
Delivering data to cars, autonomous or not, will take a whole new way of thinking. Rectangles will always be rectangles, but automobile network connections are spotty and the user interface needs to compete -- if that's the right word -- with the objects on the road for the right amount of attention from the driver.
Here are eight ways developers will need to rethink their app strategies when it comes to delivering apps for cars.
Auto companies think they own the platform
In the early days, companies like AOL or Microsoft tried to own their version of a tiny Internet, but the dream faded quickly as the real Internet exploded. The car companies are still in this early stage when they think they own the platform. They all have their own proprietary systems and make developers jump through hoops to enter them. It's not so easy to deliver an app to Ford, GM, and Daimler cars because, well, they have their own silos for data.
This problem will not change in the near term because these companies are not known for being entirely open. Third-party parts manufacturers had to sue long ago to maintain access to the platform. Today, there are two tiers of access to the OBD-II connection: Basic information is available through an open interface, but only those blessed by the manufacturer can use proprietary codes to access the onboard computer.
The manufacturers, though, are already opening up their platforms cautiously. They've seen the power of the app marketplace, and they'd like to encourage the right kinds of interaction that they control. Cautious companies with easily explained services should be able to find common ground, but don't expect gonzo social apps -- say, a Yik Yak -- for cars that would allow drivers to insult each other while hurling down the road commanding the motion of two tons of metal apiece.
Networking is inconsistent
Many issues that developers will face in targeting automobiles for their apps might be easier to solve if the network was as quick as a good connection to a house, but that's not what mobile users get. The network connections are slower, more inconsistent, and full of jitter and lag.
Much of this is caused by geography. In dense cities, the cells are often overwhelmed by too many users. In the rural hinterlands, there are so few users that the companies don't even put up a tower. The amount of bandwidth available is rarely exactly right.
This is a challenge for developers because they can't rely on the same assumptions of constant connection. Desktop users are spoiled by features like automatic completion that rely on getting an answer from a central server in milliseconds. Developers could solve this problem by downloading the entire database to the car, but that would introduce a new issue: Keeping the car's downloaded local version up to date.
All this means that developers need to pretend they are back in the mid-1990s when the Internet was new and many people were still using a dial-up modem.
There may not be a human in the loop
The traditional model for cars and computers has a human at the center of the mechanism. All of the data flows to the human who makes all of the decisions. That will fade as robot drivers begin to catch on. While the ultimate goal of automobiles will still be to get some human from one place to another, the data won't always serve the humans directly.
Traffic information that flows directly to human drivers now will go to robot drivers in the future. The same goes for weather predictions, route changes, red-light patterns, and more. Even some of the ads could be aimed at robot drivers who might be configured to shop for the lowest prices on fuel.
The enterprise platform should anticipate these changes by designing the API to handle requests from both humans and algorithms. Then they can wrap a UI around the API feed to handle the user.
Search is more valuable
It's one thing to run the search engine that people use when they're at home sitting in an easy chair. It's another to run that same engine when people are in a car driving right by the convenient store, the restaurant, or the mall. The search box in the auto is that much closer to the point of sale, which means it's that much more valuable.
This power will grow as robot drivers take over. Humans still have minds of their own, with which they develop shopping patterns. But robot chauffeurs will be connected directly to the search engine and will likely be configured to take the captive human to the venue that bids the highest, all other factors being equal. How much will convenience stores bid for search terms like "milk"?
Hands-free use is new UI
The user interface for cars is more complex, especially when humans are still driving them. Ford, for instance, is very sensitive that new apps will distract the human driver, and it says it will reject apps that are too "visually oriented" or "do not translate logically to voice commands." App developers will need to rethink their user interfaces and maybe even the entire architecture of their app.
This will fade as autonomous cars begin to dominate because the riders won't need to watch the roads. When that time comes, riders will probably use the same devices that they do in any sofa or lounge.
It's tempting to imagine that robot cars will need even more entertainment options. After all, kids consume DVDs like candy when you're driving them around. Won't their parents do the same, once they're freed from the job of driving?
The reality is that the adults will be lucky to spend the time in the car binge-watching Netflix. The bosses will be ready to send you that new proposal to review, then all of the bills and housework will follow us into the cars too.
Location is more complex
It's one thing to use an IP address to find the rough position of a user sitting at home. It's another to track this location as it changes at 60 miles per hour. If the network lag is running high and the server takes 15 seconds to respond, the car could be more than a quarter-mile away from where it was last. Oh sure, the car will generally be moving along the highway, but potential turns could change everything. This will make search much more complex and time-dependent.
Robot drivers can share tons of data
The modern car generates a huge amount of data, and this will only grow larger when robot drivers become common. Many cars already have backup cameras, and the robot fleet will probably come with 10 to 20 cameras per car, all generating HD video. All of this will be ready for analysis by new and unexpected business opportunities.
The U.S. Postal Service is already exploring using its fleet to track the environment. The robot car fleet will be able to keep an extensive watch on any place that humans regularly travel. Will lawn-care companies rent time on these platforms to track when clients' grass needs a trim? Will painters look for prospective customers with peeling homes? Will bird watchers receive alerts about rare species from roving cars?
These options may seem a bit silly and far-fetched now, but when the data is available at an extremely low cost, people will find clever uses. It's hard to imagine them now, but your boss will expect you to figure them out by the time the data arrives.