{"id":26929,"date":"2020-09-01T07:50:29","date_gmt":"2020-09-01T05:50:29","guid":{"rendered":"https:\/\/www.intellias.com\/?p=26929"},"modified":"2024-04-26T12:34:47","modified_gmt":"2024-04-26T10:34:47","slug":"migrating-a-mobile-sdk-from-opengl-to-metal-api","status":"publish","type":"post","link":"https:\/\/intellias.com\/migrating-a-mobile-sdk-from-opengl-to-metal-api\/","title":{"rendered":"Migrating a Mobile SDK from OpenGL to Metal API"},"content":{"rendered":"

Business challenge<\/h2>\n

Back in 2016, a world-known leader in navigation and location-based solutions partnered with Intellias to develop a mobile SDK for creating Android and iOS applications with advanced location-based services<\/a> at their heart. They offered this SDK as two independent products (for iOS and Android) that share the same location-based services and provide advanced location features including routing capabilities<\/a>, interactive maps<\/a>, advanced search through a broad set of geographical content, and much more. Built on OpenGL, the SDK features sophisticated functionality for rendering 3D and 2D vector maps and 3D building models.<\/p>\n

However, in 2018, Apple presented their new 3D graphics iOS Metal API and announced that they would stop supporting OpenGL, which meant that applications created using our client\u2019s mobile SDK may not work on future Apple devices running the latest versions of iOS. Our client challenged us to eliminate the risks posed by OpenGL support being removed from iOS devices.<\/p>\n

\"Migrating<\/p>\n

Solution delivered<\/h2>\n

Our client had an ambitious goal to deliver the updated mobile SDK by the official launch of iOS 14 and iOS Metal API. To adjust our solution to emerging technologies on time, we assembled a dedicated team of software, DevOps, and QA engineers headed by an experienced project manager.<\/p>\n

The project started with a thorough investigation of the optimal solution. To address the client\u2019s evolving needs, our team suggested two approaches to enable a smooth transition to the iOS Metal API:<\/p>\n