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···
82.1 Introduction to SocketsThe Socket API is a set of basic, standardized APIs provided by the operating system to implement application-layer network protocols. It encapsulates transport-layer netwo···
The HTTP protocol is stateless, meaning that clients can only initiate requests, and servers respond passively. The server cannot actively push content to the client, and once the server's respons···
80.1 Principles of HTTP Chunked DownloadThis section will demonstrate the specific usage of Dio through an example of "HTTP chunked downloading."The HTTP protocol defines the Transfer-Encodi···
79.1 Introducing DioAs mentioned in the previous section, directly using HttpClient to make network requests can be cumbersome, as many aspects require manual handling. When it comes to file uploads/d···
The Dart IO library provides several classes for initiating HTTP requests, and we can directly use HttpClient to make requests. Initiating a request using HttpClient involves five steps:Create an Http···
The Dart IO library includes classes related to file reading and writing, and it is part of the Dart syntax standard. Therefore, whether it's a script running under Dart VM or Flutter, file operat···
In this section, we will introduce how to draw text and perform off-screen rendering by implementing a watermark component.In practical scenarios, watermarks usually need to cover the entire screen. I···
In this section, we will implement a DoneWidget that performs a checkmark animation upon creation, as shown in Figure:The implementation code is as follows:classDoneWidgetextendsLeafRenderObjectWidget···
74.1 CustomCheckboxThe default Checkbox component in Flutter does not allow for custom sizing. In this section, we will demonstrate how to create a CustomCheckbox component that supports customizable ···
In this section, we will implement a circular background gradient progress bar with the following features:Support for multiple background gradient colors.Arbitrary arc angles; the progress bar does n···
Custom Drawing in Flutter For some complex or irregular UIs, we may not be able to achieve the desired result simply by combining other components. For instance, we might need a regular hexagon, a gra···
Implementing a TurnBox Component in FlutterWe have previously introduced the RotatedBox, which can rotate its child components, but it has two drawbacks: first, it can only rotate its child nodes in m···