Developing an Infinite Four-Direction Scrollable Pager with SwiftUI
The advent of SwiftUI has brought revolutionary changes to Apple ecosystem development, but it still faces some challenges when addressing certain complex requirements. Recently, I developed a component called Infinite4Pager, which supports infinite four-direction scrollable paging. In this article, we will analyze the key ideas in the implementation process, discuss the points that need special attention, and candidly review the shortcomings of SwiftUI in coping with such scenarios. Through this case, we not only learn the specific technical implementation but also better understand how to break through the convention and solve problems creatively within the framework of SwiftUI.
Swifter and Swifty: Mastering the Swift Testing Framework
Since the inception of the Swift language, XCTest has been the preferred testing framework for the majority of Swift developers. However, deeply rooted in Objective-C, its API design heavily borrows from the traditions of that language, failing to fully reflect the modern best practices of Swift programming. In some respects, this has even become a barrier to further development. To overcome these limitations, Apple officially introduced Swift Testing at WWDC 2024—a new testing framework specifically designed for the Swift language. This framework has been integrated into Xcode 16 and positioned as the official testing tool of choice. In this article, we will delve into the features, usage, and unique aspects of the Swift Testing framework, analyzing how it helps developers write test codes faster (Swifter) and more in line with Swift programming habits (Swifty).
Mastering TipKit: Advanced
In the previous article, we introduced the basic usage of TipKit. In this article, we will discuss some advanced topics related to TipKit, such as how to fully customize Tip views (not using TipView and popoverTip), how to use TipKit with UIKit, and how TipKit can share data across different applications, as well as how to reuse Tip declaration code. Additionally, we will attempt to address some common questions and concerns about TipKit.
Mastering TipKit: Basics
TipKit is a framework introduced by Apple at WWDC 2023 that allows you to easily display tips in your applications. It can be used to introduce new features to users, help them discover hidden options, or demonstrate faster ways to accomplish tasks, among other scenarios. TipKit is compatible with different hardware environments and operating systems within the Apple ecosystem, including iPhone, iPad, Mac, Apple Watch, and Apple TV.
The Composable Architecture (TCA)
The Composable Architecture (TCA) is a SwiftUI framework that provides state and side effect management, testing and dependency injection. This article describes TCA's benefits, features, changes, learning, performance, and resources.
SwiftUI Overlay Container 2: Customizable, Efficient, and Convenient View Manager
SwiftUI Overlay Container is a view container component for SwiftUI. It is a customizable, efficient, and convenient view manager. With just a simple configuration, the SwiftUI Overlay Container can handle basic tasks such as view organization, queue processing, transitions, animations, interactions, and display style configuration. This allows developers to focus more on the implementation of the application's views themselves.
SwiftUIOverlayContainer — A SwiftUI Library for Creating Customized Popup Views
SwiftUI currently offers popup views such as sheet, fullScreenCover, alert, action sheet, etc. to enrich UI interactions. However, the variety is somewhat limited. To write code for various popup windows more conveniently, I created a simple SwiftUI library — SwiftUIOverlayContainer.
Installation and Configuration of Vapor4
This article introduces how to install the Vapor command line tool on mac 10.5.4 and ubuntu 18.04, create Vapor projects, simple debugging of projects, and the process of deploying to a production environment. The runtime environment in this article is Vapor 4, Swift 5.2, Catalina 10.5.4, Ubuntu 18.04.