First, let's create a brand-new Flutter project named "github_client_app." The steps to create a new project may vary depending on the editor used by the reader, but they are relatively ···
1 Implementing Drawing Cache Using LayersIn this section, we will demonstrate how to use Layers in custom components by optimizing the previous "Drawing Chessboard Example."We initially used···
The drawing-related implementations are found in the rendering object RenderObject. The main properties related to drawing within RenderObject include:layerisRepaintBoundary (type: bool)needsCompositi···
1 Flutter Rendering PrinciplesIn Flutter, there are three objects related to rendering: Canvas, Layer, and Scene:Canvas: Encapsulates various drawing instructions of Flutter Skia, such as drawing line···
Layout ProcessThe layout process primarily determines the layout information (size and position) for each component. The Flutter layout process is as follows:The parent node passes constraint informat···
1 Application StartupIn this section, we will first introduce the startup process of Flutter, and then discuss the Flutter rendering pipeline.The entry point of Flutter is in the main() function locat···
1 Elementwe introduced the relationship between Widgets and Elements. We know that the final UI tree is composed of individual Element nodes. We also mentioned that the layout and rendering of compone···
1 What is a UI Framework?we discussed that Flutter is divided into three layers: the framework layer, the engine layer, and the embedding layer. We noted that developers primarily interact with the fr···
This section primarily addresses common issues encountered in internationalization.1 Incorrect Default LocaleIn some Android and iOS devices purchased from non-mainland channels, the default locale ma···
1 Adding DependenciesBy using the Intl package, we can not only easily implement internationalization but also separate string texts into individual files, facilitating collaboration between developer···
In the previous section, we discussed how the Material component library supports internationalization. In this section, we will explore how to support multiple languages in our own UI. As mentioned e···
1 IntroductionIf our application needs to support multiple languages, we need to "internationalize" it. This means that during development, we need to set "localized" values for ea···
12.2.1 IntroductionFlutter currently supports multiple platforms including macOS, Windows, Linux, Android, iOS, and Web. Among these, the Web platform is somewhat unique because, unlike the others, it···
This section will introduce packages and plugins in Flutter, along with some commonly used packages, but will not cover specific implementations.12.1.1 PackagesIn Chapter 2, we discussed how to use pa···
83.1 JSON to Dart Classes1. IntroductionIn practical applications, backend APIs often return structured data such as JSON or XML. For example, the data returned from requesting the GitHub API is a JSO···