Logo

 · 3 min read

#2: Automate testing

Starting a new blog website, a newsletter, and book reviews, ... a lot of things I want to do. Because of that, this week I'm focusing on building the inner system so that I can manage work and time more efficient. Hope this newsletter get better overtime 🥳

Starting a new blog website, a newsletter, and book reviews, ... a lot of things I want to do. Because of that, this week I'm focusing on building the inner system so that I can manage work and time more efficient. Hope this newsletter get better overtime 🥳

What I’m reading

Building Mobile app at scale

This is a cool book that mention about challenges when building mobile app at scale. It’s a good book, but I think the author doesn’t go deep enough into the technical details. Because of that, I decided to investigate more time to dig deeper, and I will publish a book review at the end of the month. Stay tuned!

Great articles this week

1. Testing strategy in big tech companies

This is an old and famous thread about testing strategy in big tech companies. It’s a great thread to read if you are interested in testing strategy. It’s a long thread, but it’s worth reading. There are more to say about testing, but I will dig deeper into it in the other article.

2. Effortless iOS Snapshot Testing Using Emerge Tools

This week, while I was reading about Snapshot testing, I found this article about how to use Emerge Tools to make snapshot testing easier. I think it’s a great tool to help you write snapshot tests faster and more efficiently.

Some other tools like FBSnapshotTestCase, Pointfree’s SnapshotTesting, … works by creating reference image and store it locally, writing snapshot tests, and comparing the reference image with the new image. That techniques faces some problems like:

  • The reference image is stored locally, so it’s make the repository larger.
  • We need to write and maintain snapshot tests.

Emerge Tools leverage SwiftUI’s Preview to solve these issues:

  • It find all Previews in the project and generate snapshot tests for them.
  • The reference image is stored in the cloud, so it’s not make the repository larger.

3. Being a good citizen in the land of SwiftSyntax

Using SwiftSyntax has several challenges:

  • Versioning Complexity
  • Breaking Changes
  • Dependency Resolution

The article has mention detail about these challenges and how to solve them. It’s a great article to read if you are using SwiftSyntax in your project.

To solve that problem, there is a open source Github Action tool to check for the compatibility of your SwiftSyntax version with the latest SwiftSyntax version. You can find it here

4. A curious case of Mach-O Executable

I want to understand how Emerge Tools works, so I took a look at their implementation. There is a class called ConformanceLookup, which contains logic to find all the conformance of a specific protocols. They use a lot of low level code like Mach-O Executable, dyld, … to achieve that. To understand their logic, first you’ll need to understand what is MachO and how it works.

The article A curious case of Mach-O Executable from Tokopedia Engineering is a great article to read that will help you understand Mach-O Executable.