Mobile App Development Blog

Kotlin’s Sealed Interfaces & The Hole in The Sealing

Sealed interfaces were just introduced in Kotlin 1.5 and are a very powerful new feature. But with great power comes great responsibility, so we need to learn when to use and when to not use this newly achieved power. In order to understand sealed interfaces and their use cases, let’s accompany our cute little QuickBirdTM […]

Cover Image

Supporting Both CocoaPods & The Swift Package Manager

When creating a library, we usually strive to support all commonly used package managers. For iOS libraries, the most popular ones are Cocoapods, the Swift Package Manager (SPM), and Carthage.Different package managers have different ways of organizing your project’s dependencies. Thus, supporting multiple package managers is a little challenging. In this article, we’ll show you […]

Cover Image

How to Use the Coordinator Pattern in SwiftUI

When developing iOS apps with UIKit, many developers have used the Coordinator pattern to abstract away the connections between individual view components. This increases the reusability of view components (such as view controllers), reduces responsibilities of the frequently overcrowded UIViewController implementations and makes connections, such as transitions and data exchange, between view components more visible. […]

Unsafe Territory! Understanding Raw Bytes and Pointers in Swift

It’s rare that you juggle with bits and bytes in Swift because of its neat static type system. Most of the time, you don’t care what’s under the hood – you just work with classes, structs, and enums or primitive types like Int, Float or String. But sooner or later, almost every Swift developer gets […]

How to Validate Your Data with a Cyclic Redundancy Check (CRC)

The cool thing about programming is that there is an absolute truth in every Bit: It’s either black or white, 1 or 0, true or false. In theory. But whenever you transmit data or store it somewhere on a physical drive, it can get corrupted. Individual bits can get flipped or even bursts of multiple […]

Mobile App Security: Best Practices on Android & iOS

Mobile apps often deal with really private and sensitive user data like personal health information or banking information. Losing data or getting hacked, therefore, can have huge consequences. There is no bigger nightmare for any app developer than knowing that his application was involved in a huge data leak scandal and user data was stolen. […]

I hated Gradle! Kotlin and the buildSrc Plugin made me love it

Let’s talk about the elephant in the room… Gradle… To be honest, I hated Gradle. It was always one of the biggest pain points in my carrier as a developer. Whenever I ran into a „Gradle issue“ during Android development, I immediately knew: This is going to be a bad day. All I could then […]

Combine vs. RxSwift: Should you switch to Combine?

Roughly one month ago Apple showcased SwiftUI at the WWDC 2019. Since we humans can only focus on one new thing, all the hype was reserved for SwiftUI and people almost missed Apple’s second big announcement: Combine. A lot of folks were seeing Combine only as an enabler for SwiftUI, but Combine also introduces first-class […]

How KEEP-87 & Typeclasses will change the way we write Kotlin

What is KEEP-87 At QuickBird Studios, almost all of our projects are implemented in either Koltin or Swift. It’s only natural, that we compare these languages and find features in one of them, that we would also like to see in the other. While Swift’s protocols can sometimes be a little bit painful to work […]

Functional String Parsing in Swift with Ogma: Implementing a Game of Thrones search engine

— No Game of Thrones knowledge required and NO spoilers included. Promised. — Engineers deal with a lot of issues on their day to day: complicated flows, race conditions, general error handling. But one issue that always sticks out is that of parsing strings. At QuickBird Studios, we see ourselves always coming back to it. […]

Is Kotlin/Native production ready? Why we are not using it (yet)

Edit A lot has changed since this article was initially released. Many issues that we had are solved. This article is now officially “out of date”. We started using Kotlin Multiplatform and Kotlin/Native. You can expect a follow-up article somewhat in the near future. A very special thanks to the Kotlin-Tooling team, especially to Liliia […]

Flutter: Pull-To-Refresh was yesterday. Check out Pull-To-Reach!

Still stuck with Pull-To-Refresh in your Flutter app? 🙄 You’ll be thrilled to get to know Pull-To-Reach then. That’s a new way to access controls in your app that are normally hard to reach with your thumb. This is based on the following problem: Phones are getting bigger and bigger. I remember that I could easily […]

Dependency Injection Strategies in Swift

Today we will take a deep look at Dependency Injection in Swift, one of the most important techniques in software development and a heavily used concept in many programming languages. Specifically, we’ll explore which strategies/patterns we can use, including the Service Locator pattern in Swift. The intent behind Dependency Injection is to decouple objects by […]