Modern software development paradigms make a lot of use of APIs and SDKs. We live in a world that is more connected than it used to be. Apart from people being able to communicate with each other more intimately than they used to (video/audio calls, emails), different systems also communicate with each other much more than they used to. An example is a user making a ticket purchase to an event using mobile money. You will notice that the mobile money service is run by a different system/company and the ticketing service is run by another system/company, but ultimately the two will have to communicate. In a way, both concepts (API and SDK) overlap and are somewhat interrelated.

 

What is an SDK

The word SDK stands for Software Development Kit, SDKs can be looked at as a carpenter/workman’s toolkit that contains the various parts they use.

 

 

Sample tool kit.
Sample tool kit, image from Skygarden

Different manufacturers have different parts in their toolkits, the same also applies to SDKs. A basic SDK will include:

  • Debugger
  • Compiler
  • Drivers
  • APIs
  • Libraries
  • Documentation
  • Development environments
  • Testing and analysis tools

 

Some SDKs will include test projects/code snippets to allow developers to make quick references, for example how to take a photo from an Android device or an iOS Device

 

What is an API

API is an acronym for Application Programming Interface. It can be looked at as a connection between different software modules to allow for message passing. APIs contain specifications of how the communication is to occur.

Consider an API to be like a restaurant’s menu. The menu includes a list of available dishes as well as a description of each item, i.e. their prices. When you pick the dish(es) you want from the menu, the restaurant’s kitchen prepares them for you. You don’t have to know how the restaurant cooks the food, all you care about is the food being delivered to you on time and in the manner advertised on the menu.

 

A good example is the Safaricom M-PESA API (find a project on Github we did that enables developers to invoke the M-PESA STK functionality) that allows software developers integrate their system with the mobile money service.

 

Another example is an API inteface by the Kenya Revenue Authority to allow registered taxpayers (B2B, B2C, and B2G) to submit their invoice details to KRA by generating Electronic Invoices (E-Invoices) and sending the same to the Tax Invoice Management System (TIMS). There’s a deadline set for the compliance requirement, which is on the 31st of July 2022.

 

Symatech Labs is a Software Development company based in Nairobi, Kenya that specializes in Software Development, Mobile App Development, Web Application Development, Integrations, USSD and Consultancy.