What Is an SDK in Automotive?

Whether using a meal kit to whip up a restaurant-quality dinner at home or an IKEA kit to put together a trendy Scandinavian desk, we are all familiar with the notion of using a kit to help us build something faster and more efficiently than creating it entirely from scratch.

In the world of commercial software, where speed is of the essence, a software development kit (SDK) provides a standardized, easily downloadable foundation upon which developers can build new applications on an existing platform. 

For example, Apple wants to attract developers to build mobile apps for its iPhone platform, and Google wants developers to build mobile apps for its Android platform. Each company has created its own SDK aimed at making it as easy as possible for developers to write applications that run on its platform. Similarly, all of the major software vendors (think Microsoft) and the leading online platforms (think Facebook) have created and made available their own SDKs.

As vehicle architectures become more software-defined, and the user experience becomes more personalized, the need for automotive SDKs becomes clear. Instead of distributing functions throughout a vehicle in highly specialized electronic control units, auto manufacturers are consolidating related functions into powerful domain controllers — and eventually these are likely to become open serverized platforms, such as the approach Aptiv takes in our Smart Vehicle Architecture™. By creating an automotive SDK to easily empower OEMs and other third parties to develop solutions on those platforms, we can open the door to a host of innovations that unlock value for all parties.

What is in the kit?

Generally speaking, an SDK includes the building blocks, framework and toolkit for developers to create an app. It often has configuration data, documentation, software libraries, code samples, build automation tools, code editors, debuggers, guidelines and programs used to develop apps for that specific platform.

SDKs also include application programming interfaces (APIs). APIs, also referred to as “hooks,” enable pieces of software to easily communicate with other pieces of software. So, SDKs help software developers write applications, while APIs, which are included in the SDK, provide the mechanisms for applications to connect with one another and with the platform.

Complexity makes SDKs even more important

In a simpler world, application developers might be able to use one SDK to write an application, but today’s applications are exceeding complex. Just picture an e-commerce application that has some code running in the cloud and other components running on-premises, pulling data from multiple sources, querying data stores, and connecting with payment verification and delivery applications. A complex application might require multiple SDKs, each one helping the developer shave some time and effort from the development process.

Vehicle architectures are headed toward that same level of complexity, with software running on the vehicle itself potentially communicating regularly with other apps in the vehicle — or in the cloud through over-the-air communications. Automotive SDKs will be critical pieces of the puzzle to accelerate development toward a fuller ecosystem of mobility applications.