Systems | Development | Analytics | API | Testing

How to Use MapKit in iOS with SwiftUI

In this article we’ll learn about Apple’s MapKit framework. MapKit is the native way to include map views in our iOS application to display map or satellite imagery. It is quite useful for any map-centric view and to show coordinates, annotate on them with a custom annotation, or just generally view world locations or specific map features. This article will be very hands-on and will include several examples on how things are done using MapKit and the mapkit api.

How to Read and Analyze iOS Crash Reports: A Developer's Guide

The crash-proof app doesn’t exist. It never has, and it probably never will. Because apps can crash for all kinds of reasons, some of them impossible to foresee. No matter how well we build them, crashes are going to happen to our apps. So, as devs, we need to know how to react to a crash when it happens. And in this context, understanding crash reports is crucial. They provide the clues we need to put the pieces together.

Android Emulator Setup Guide for App Testing

The Android emulator is an Android virtual device that is used to test and debug Android code. It looks and behaves the same as a physical Android device, and while it has some limitations (more of which later), it provides real time and cost savings for developers. Unlike the iPhone, which is limited to one manufacturer and a specific number of iOS versions, there are thousands of Android device types out there.

Jetpack Compose Fragments: How to Migrate and Integrate in Android Apps

Imagine you’re a toolmaker. You’ve got an old-school toolshed with loads of ancient equipment: hammers, pickaxes, all the stuff people used hundreds of years ago. And then one day you walk into your toolshed to find laser cutters, 3D printers and loads of other digital tools at your disposal. Life would suddenly seem a lot simpler, right?

Tracing, Logging, Metrics: Unifying Observability with OpenTelemetry

Software development has always evolved with new paradigms to meet the growing demands of modern systems. One of the most significant shifts has been the adoption of microservices. Emerging in the early 2010s, this architectural pattern moved away from monolithic applications in favor of smaller, independent services that interact with each other over a network.

Kotlin Apply and other Kotlin Scope Functions

Last week, we got a question from one of our users asking us how to use Kotlin Apply. Specifically, the reader wanted to know whether it was best to use the apply function in their Android application, or another of the many Kotlin scope functions. So we got to thinking: Why not write an article about the whole topic of Kotlin scope functions? After all, they’re awesome: they let us write readable, concise code in Kotlin, and work with an object without the need for repeated references.

Swift Concurrency Explained: GCD, Operation Queues, and Async/Await

Concurrency is the ability of an app to perform multiple tasks at once, and it’s a crucial concept for apps that need to perform multiple tasks at once in an efficient, usable way. Thankfully Swift has made great strides with concurrency, and now provides simple tools for writing robust apps that are responsive and enjoyable to use. In this article we’ll explore two main ways of using threads for concurrency models.