Blockchain is here
Hi, this is Bitcoin and from now on it will live with us! Traditional money has long been outdated and is gradually losing its popularity. In most cases, we already use electronic money. But e-money is not much different from cash, except in form, but the...
Handling bounced emails by SES with Rails (ActiveMailer)
If you are thinking of implementing a mailing system for your application, you would surely need to find a way to know if the sent emails are successfully delivered or not. With AWS SES (Simple Email Service), it is possible to set up bounce webhook notif...
A cheat sheet for acing your coding test when applying for a job at the Monstarlab Tokyo office
Hi there. I'm An, a Front-end Tech Lead at Monstarlab, Inc. (“Monstarlab”.) If you are intimidated by coding tests, this article will wash your test anxieties away. You will be able to optimally allocate time on the evaluation sections and be evaluated on...
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...