Introduction to Kotlin Flows
A Kotlin flow is an asynchronous stream of data that you can subscribe to and receive objects one by one or all at once. It's like subscribing to a newspaper. You don't have to go to the newsstand every time and check if they have something new today. You...
How to implement realtime updates with Live Activities
Live Activities were introduced in iOS 16.1 as a way to display up-to-date information on the iPhone Lock screen and in the Dynamic Island. In this article, we're going to explore the Live Activity API by implementing a fake Delivery App where the user wi...
iOS Accessibility Support Within SwiftUI
Accessibility in our iOS applications is something we should all strive for. To be inclusive and have our applications available to all is a massive goal for us at Monstarlab in every project we undertake. To accommodate to each user, whatever their needs...
Accessing AWS RDS databases remotely with no exposed ports
Ok, I admit it. The title might sounds weird because, how it is supposed to connect to an SQL service without a port, right? Well the catch is that there IS a port, but it is not an inbound port, therefore nothing is exposed. And it is fully managed by AW...
Creating custom layouts with Compose -part 2-
In the previous article, we talked about creating custom layouts with Jetpack compose. This article will dive deeper and cover creating a custom modifier with a custom scope. We created a star layout in the previous article and it looked like this: You c...
Code Coverage with SonarQube and Bitrise for Swift
At Monstarlab, we are using SonarQube to gather metrics about the quality of our code. One of the metrics we were interested in is code coverage. However, just running sonar-scanner on the project will not upload the coverage data to our instance of Sonar...
A Guideline to GitHub Actions with CI Pipeline
CI Pipelines help improve efficiency by automating complex workflows. With GitHub Actions, it's easier than ever to bring CI/CD directly into your workflow from your repository. Put together with the CI pipeline, a series of automated workflows that help ...
Navigation parameters, and dynamic startDestination with Jetpack Compose
Our team was recently given the opportunity to work with Jetpack Compose on a brand new project in collaboration with a client who required two separate Android applications. It was successfully released and the client was very satisfied with the end prod...
Creating custom layouts with Jetpack Compose
Classic Android layouts are good for creating general purpose layouts, but when it comes to creating more complex layouts, you might find yourself creating custom views, and with Jetpack Compose it is now easier and more performant than ever to do so. In ...