In this article, we’re going to build some MVI View Models on Android and explore how we can test them efficiently.
Mobile App Development Blog
We love Swift as a lean and intuitive programming language and recently, SwiftUI made our hearts beat faster for providing us with great tools to create amazing user experiences with very little, simple code. But with the introduction of property wrappers, a lot of @-signs, $-signs and underscores suddenly popped up. Didn’t it just get […]
What do you prefer: creating user interfaces visually or in code? This question has split the Apple developer community for years. Could this year’s WWDC finally mark the end of that? Last year, Apple made a huge step forward in UI development with the introduction of SwiftUI: For the first time, the visual approach and […]
MVI is a common architecture pattern to design your Android apps. There are lots of articles out there about MVI but most of them use RxJava. In this article we instead use Kotlin Coroutines & the Kotlin Flow API to implement an MVI architecture. As a part of this, we specifically explore the new StateFlow […]
Facing the Corona virus, many companies around the globe need to switch to remote work right now. While this is required by law in some places, we see it as our social obligation towards society. Doing home office for a couple of weeks or months won’t kill us – but if we refrain from doing […]
“Your code sucks!” – It’s usually not what the reviewer said, but that’s how we perceive it sometimes when our code is being reviewed. We feel challenged or even provoked. Our pride is at stake! So we either begin lengthy discussions to defend ourselves or we blindly adapt the code for the sake of friendship and […]
In this article, we focus on iOS App Security and show you concrete techniques on how to improve security in your iOS apps.
In this article, we collected best practices to keep your users’ data secure in Android Apps. We are going to talk about how you can implement mobile app security for storing data, communicate between client and server and other aspects like logging and analytics.
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. […]
With SwiftUI and Xcode 11 released just recently, we decided to investigate different app architectures that can be used with SwiftUI. We’re going to look into a rather simple Model-View architecture, the Redux architecture pattern and the ViewState MVVM.
Many people criticized Dart because it was missing features like Extensions that programmers knew and love from other programming languages like C#, Swift or Kotlin.
This Year at Google IO, the Dart team announced three new features. One of them is Dart Extension Methods.
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 […]
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 […]
Declarative UI Frameworks are on the rise. After third-party frameworks such as React Native, Litho and Component Kit, Apple and Google finally published their own solutions called Swift UI and Android’s Jetpack Compose. Today, we will take a look at both and see where the main differences are, why those frameworks exist and how they […]
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 […]
— 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. […]
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 […]
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 […]
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 […]
You and your team developed a sophisticated App for iOS, but now you want the same on e.g. on Android and the Web. The problem: the project is so big, where should you even start with the implementation? First, implement all the model classes or rather start with the User Interface classes? Who gets assigned […]
It’s the year 1602 and Gordon is the best blacksmith in the country. Lords from everywhere are making the journey to his smithy to order one of his fine swords. Today, we are taking a look why Gordon is such an extraordinary blacksmith, and more importantly what you can learn from Gordon to become a […]
We at QuickBird Studios are working on large-scale apps that grow over years and that’s why our team worked really hard to find suitable architectural patterns for our use cases. We described our use of MVVM and Functional Reactive Programming in some of our previous blog posts like this one. One topic we didn’t […]
The new buzzword to impress your friends: Functional Reactive Programming (FRP) Using Functional Reactive Programming, you write less code, you have fewer bugs, you can program asynchronously without killing yourself, it’s just awesome. That’s what they told me. Everybody talks about it but many people don’t really know what it fundamentally is. So what is […]
We at QuickBird Studios are often faced with a wide variety of problems. Some of them are very easy to solve, some of them are very, very hard and some are … let’s say… „very unique“ 😅. We tried a lot of different patterns and strategies to solve those problems and one pattern that we […]
Over the last couple of months, Realm became the go-to mobile database solution. It’s a mobile, offline-first database solution to store your app’s data without the need of working with lower level solutions like SQLite or Core Data. And most importantly: It’s platform independent and works on Android and iOS. But what happens if you […]
A common problem while developing apps is that you end up with over-complicated classes containing View logic as well as business logic. Both are so intertwined that it’s impossible to test them independently. Code-readability suffers and future code changes are hard to implement. Since there are almost no constraints to your architecture in Flutter, it’s […]
The problem with the way many people implement and explain their app architecture is something like that: The Fragment or UIViewController becomes a massive class that contains business logic as well as view details. Both are so intertwined that it’s impossible to test them independently. Code-readability suffers and future code changes are hard to implement. […]
Like any piece of software, mobile apps need to be tested to make sure they work correctly. Otherwise, your app might crash on your user’s devices or has other bugs. You get bad ratings, people uninstall your app. You lost the race faster than you can say Jack Robinson. In this article, we cover the […]