iOS/macOS development is really interesting.
You can get domain knowledge in so many fields! You might learn the graphic techniques such as Bezier or 3D transform. And you need to understand how to work with database or design an efficient schema. Moreover, you should be able to manage memory in an embedded-system way (especially for those who were in the great MRC era). All of those make iOS/macOS development so diverse and also challenging.

In this article, we’ll learn yet another thing you probably need to know: Continuous Delivery (CD). Continuous Delivery is a software approach that helps you release…


Do you write unit tests for your apps? Whatever answer you have writing tests in Swift became a popular subject in the development community. Many developers published great articles, made outstanding talks and podcasts on writing tests in Swift. It became easier than ever learning with these materials. At the end of 2017, I decided to share my favorite materials that would be good for you to pickup unit-test skills from zero to one.

Happy learning :)

Before getting your hands dirty

Engineering for Testability

If you are a newcomer in writing unit tests, I highly recommend you start with this video from WWDC 2017. In this video…


In my previous article, How not to get desperate with MVVM implementation, we learned the Model-View-ViewModel (MVVM) architecture and saw how to create a simple gallery app by using it. With the help of the MVVM, we separate the business logic and presentational logic from the view logic. The separation of concerns (SoC) makes writing unit tests easier than ever. Even though the idea of the MVVM is simple, writing unit tests for its various use cases is still worth mentioning. So in this article, we will step further and learn how to brew unit tests for MVVM.

In short…


Let’s imagine you have a small project, where you used to deliver new features in just 2 days. Then your project grows bigger. The delivery date becomes uncontrollable, from 2 days to 1 week, then 2 weeks. It drives you crazy! You keep complaining: a good product shouldn’t be so complicated! That’s exactly what I have faced and it was really a bad time for me. Now, after working for a few years in this area, cooperating with many excellent engineers, I realized that the product design doesn’t really make the code so complex. …


Core Data is a framework that hides the logic of persistent layers such as object life cycle and object graph management, to help you managing the model layer objects in a high-level way. Yes, Core Data is kind of controversial to many developers. However, it’s still useful framework: the performance is good and it’s supported by Apple.

There are many good articles on the Unit Testing for Core Data, but most of them are focusing on mocking the context. Due to the release of the persistent container class, NSPersistentContainer, it getting harder to mock the context and write tests to…


Let’s face it, writing tests is not so popular in iOS development (at least in comparison with writing tests for backend). I used to be a solo developer and I wasn’t initially trained as a native “test-driven” developer. So I have spent a lot of time studying how to write tests, and how to write testable code. That’s why I’m writing this article. I want to share what I’ve found while doing testing in Swift. I hope, my insights will save you time beating around the bush.

In this article, we are going to talk about the beginning of the…

S.T.Huang

I’m ShihTing Huang(黃士庭). I brew iOS app, front-end web app, and of course, coffee and beer!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store