About the Author
Avatar photo

Rachel Walker

Rachel has worked in software for 9+ years as a developer and a team lead. Her work has primarily been Java-based, but she has also worked with a variety of web frameworks. She has a background in migrating legacy monolithic applications to web frameworks and microservices. When she isn't writing code, she is likely working in her vegetable garden with her dogs or losing sleep thinking about the social construction of time measurements.

Handling Time in Software Development

Recording & Communicating Time in Software

Rachel Walker Articles, Programming 1 Comment

When I first started writing software to handle time, I went into it with a naive perspective that it couldn’t be that hard. After all, it’s just time, and I’ve understood how that worked since elementary school! It took my first daylight savings time transition to disabuse me of that notion. I began daydreaming that one day all systems would fully run on UTC and people would adapt to that as a standard.

No more writing code to handle time zones in different regions. No urgent time zone library updates to account for new government legislation around daylight savings time. Being able to add and subtract time without having to account for crossing time zones…

It sounded great to me at the time, and sometimes when I’m neck-deep in tricky code, I feel that way still. In calmer moments though, I’ve learned that’s not a philosophy that serves me. When I talk to people about my birthday, a holiday, or give vague time measurements like “twice a day” or “first thing tomorrow,” I’m not speaking to them about timestamps. I’m conveying an idea that just happens to involve time. Time isn’t just a number; it is communication that is tied to our days and nights and the lived human experience.

A good software product handles, records, and displays time accurately. A great piece of software captures, stores, and displays time and date information in a format that conveys the full idea to the intended recipients. Good software works; great software communicates.

Unlock the Power of Collapsible Text in Flutter

Flutter Essentials: Strategies for Collapsible Text in Flutter

Rachel Walker Articles, Development Technologies & Tools, Flutter, Mobile, Tutorial 1 Comment

As a mobile developer, I have had to create a lot of listing pages. The content, styling, and layout may all differ, but structurally, they are the same. When I first started using Flutter, I was immediately impressed by how fast they are to stand up. Nearly out of the box, the ListView and the Card work extremely well and support a wide variety of devices and use cases with no additional styling – all while remaining extensible.

With this in mind, when I needed to create a listing page that displayed variable lengths of pre-generated text that could be expanded and collapsed, I was not particularly concerned about the complexity of the task. However, I very quickly realized that Flutter is less optimized for handling large blocks of text than it is for displaying lists. I quickly encountered unexpected complexities that I had to manually account for. In this post, I’ll walk through the basic structure and explore which components can be used for solving this problem and creating collapsible text in Flutter.

Automating Flutter Deployments: Configuring CircleCI

Automating Flutter Deployments: Part 3 – Configuring CircleCI

Rachel Walker Articles, Automation, CI/CD, Flutter, Mobile Leave a Comment

Recently, I’ve worked on automating some internal processes for building and releasing Flutter applications. Part of this effort included utilizing Fastlane with a Continuous Integration/Delivery platform to build and deploy the app. This blog post will outline the process I followed to run the build on CircleCI after I had configured Fastlane to build and deploy the application from my local machine.

Automating Flutter Deployments: Part 2 – Screenshots

Rachel Walker Articles, Automation, Development Technologies & Tools, Flutter Leave a Comment

Recently, I worked on automating some internal processes for building and releasing Flutter applications. Part of this work has involved integrating integration test runs and screenshots as part of the release and deployment process.

I wanted to be able to use the same set of tests to validate our code on Android and iOS devices without having to write large amounts of platform-specific code or configuration. These tests needed to be able to integrate with Fastlane, so they can be utilized by CI/CD. Specifically, this restricted setup runs using command line tools with no manual steps in Xcode or Android Studio, aside project level configuration.

This blog is Part 2 of a three-part series exploring automating Flutter CI/CD on CircleCI. Part 1 covered setting up Fastlane to build and deploy applications locally, this post outlines automating screenshot capture and test runs, and part 3 discusses configuring CircleCI to automate these processes.

Automating Flutter Deployments: Part 1 – Fastlane Configuration

Rachel Walker Articles, Automation, Development Technologies & Tools, Flutter, Tutorial Leave a Comment

This blog is Part 1 of a three-part series exploring automating Flutter CI/CD on CircleCI. This post covers setting Fastlane to build and deploy applications, Part 2 will outline automating screenshot capture and test runs, and Part 3 will discuss configuring CircleCI to automate these processes.

The documentation for configuring Fastlane for Flutter is fairly comprehensive, however now that I have done it once, there are some things I wish I had known. As mentioned, this blog post will go through the steps for setting up Fastlane to run locally and provide some advice and resources for structuring the setup to easily migrate to a CI/CD platform.