Systems | Development | Analytics | API | Testing

A pragmatic guide to BuildContext in Flutter

As a senior Flutter developer, a big part of my daily job consists of reviewing code, mentoring other developers, and helping them with their problems. One mistake that I noticed developers repeating on many occasions is misusing BuildContext. I analyzed why this happens and came to the conclusion that it is because of an incomplete understanding of what BuildContext is, how it works, and its scope and lifecycle.

Testing Kubernetes Ingress with Production Traffic

Testing Kubernetes Ingress resources can be tricky, and can lead to frustration when bugs pop up in production that weren’t caught during testing. This can happen for a variety of reasons, but with Ingress specifically, it often has to do with a misalignment between the data used in testing and the traffic generated in production. Tools like Postman can be a great way of generating traffic, but they have the drawback of being manually created.

How-to configure SageMaker with GitHub Actions

GitHub Actions is a powerful continuous integration and continuous delivery (CI/CD) platform that allows developers to automate build, test, and deployment pipelines. Workflows automatically build and test code whenever an event occurs, such as a pull request or a deployment of merged pull requests to production. Best of all, you can use it without leaving the comfort of your own repository!

Ably Terraform provider: provision & configure Ably programmatically

The Ably Terraform provider greatly simplifies the provisioning and managing of realtime architectures that include Ably via HashiCorp Terraform. Our growing reliance on realtime applications is highlighted both by the impact of incidents such as WhatApp’s latest outage, and by an exponential growth in use cases for realtime technology. This growth is spurred on by the fast adoption of dynamically orchestrated, microservice-oriented cloud architectures.

Tiny Flutter: The future of Dart & Flutter on small devices?

Dart recently added experimental support for the new RISC-V CPU architecture and the first boards with these new chips are now starting to be available. One of these is the Sipeed Lichee D1, a RaspberryPi type device that is able to run Linux and Dart. At the same time, tiny but very cheap OLED screens are showing up in all sorts of devices, from soldering irons to high end music synthesizers. But what does it mean for Flutter and its mission "Beautiful apps for every screen" when the screen is 1 inch with a resolution of 128x64? Is that even possible? In this talk I'll cover how to get Dart running on one of these boards, how to use these tiny screens from Dart and what parts of Flutter can help with using screens this small.

An Overview of Traffic Mirroring Options in Kubernetes

Testing in production carries a lot of risk, like possibly causing downtime for users. However, the advantages of using real user traffic are many, which has led to the popularity of traffic mirroring. Mirroring can be implemented as part of pre-deployment testing, as well as other parts of the developer experience like the development itself. But, how do you get started with it?

Introducing the official Codemagic integration for Runway

Codemagic is now officially integrated with Runway, the DevOps platform for mobile. But wait, you might be wondering, isn’t Codemagic already that as a CI/CD for mobile? Aren’t the two services interchangeable? In fact, it’s quite the opposite — they’re powerfully complementary.

Building realtime infrastructure: Costs and challenges

Realtime digital experiences are in high demand. They keep users engaged, informed, and entertained in a fast-paced digital world, and they allow businesses to better serve their customers, provide more efficient and effective services, and gain the upper hand over competitors. This is the second post in a series that looks at what it takes to build and deliver realtime experiences for end-users.

The Role of Traffic Replay in Production Traffic Replication

Testing in production is one of the most effective—and risky—ways of testing. The ability to use real-world conditions ensures reliability of tests, as no bugs can appear as a result of misconfigurations of the environment. However, using the same environment as your users also has an obvious downside: any bugs discovered by testing will immediately affect users.