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!

Subscribe to my space 🚀

Stay updated on my weekly readings about Swift & iOS, Software Engineer, and book review.

100% free. Unsubscribe at any time.

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.

Related Newsletter