My blog

Learn from my blog posts about web development, design, and more.

Avatar of Onee
Onee

Jan 10, 2024

How SwiftUI Preview Works Under the Hood

A deep dive into how SwiftUI Preview works in Xcode 16, including the build process, JIT execution mechanism, and three different rebuild strategies. Understanding these principles not only helps solve common Preview issues but also enables developers to better utilize this important tool.

Avatar of Onee
Onee

Sep 8, 2022

How Does Browser Generate RenderObject

This article mainly explains how browsers generate corresponding RenderObjects from DOM nodes, and summarizes some internal implementation logic of how browsers generate anonymous blocks.

Avatar of Onee
Onee

Feb 7, 2022

WebKit Source Code Debugging Guide

This article is a WebKit source code debugging guide, providing detailed steps and tips. It includes preparation steps such as pulling source code, setting environment variables, compiling code, opening projects with Xcode; debugging entry points such as creating Document objects, parsing HTML StyleSheets; debugging tips such as identifying the Element corresponding to the current RenderObject, dumping Render trees, etc. Additionally, reference links are provided at the end for further learning.

Avatar of Onee
Onee

Sep 10, 2021

How to Implement Flow Layout?

Flow layout is the default layout method in browsers. This article explains the principles of Flow layout from the perspective of browser internal implementation.

Avatar of Onee
Onee

Sep 11, 2019

How Does Browser Implement CSS Testing?

As a project with massive codebase, quality assurance of browser engine is crucial work. This article mainly explains the primary methods of CSS testing within browsers.

Avatar of Onee
Onee

Dec 24, 2018

Why Do We Use RVM / Bundler?

As iOS engineers, we're familiar with CocoaPods. However, in our daily development, we might not be very familiar with Ruby, the language used to write CocoaPods, let alone Bundler and RVM. Therefore, when we encounter Ruby environment-related issues, we might be completely lost. If you happen to be curious about what these two tools do, in this article, I'll try to explain the principles and functions of RVM / Bundler progressively, helping everyone gain a deeper understanding of Ruby environment management.