# 69 : Fireworks and Drones

Published on

Article Image

Photo by Jack Patrick on Unsplash

This year, I experienced a quieter Spring Festival than usual.

According to ancient Chinese legend, there was a mythical beast called Nian—a ferocious creature with long antennae that would terrorize humans. Every Lunar New Year’s Eve, as the old year gave way to the new, Nian would emerge to wreak havoc. However, the beast feared three things: the color red, flames, and loud noises. To ward it off, people would paste red couplets on their doors, set off firecrackers, and keep their lights burning throughout the night. This tradition evolved into what we now call “Guo Nian” (celebrating the New Year).

For Chinese people, the New Year has always been inseparable from the brilliance of fireworks and the lingering scent of sulfur in the air. In recent years, however, many cities have restricted firework displays for environmental and safety concerns. Even in my city, where fireworks were traditionally unrestricted, core urban areas faced new regulations this year. While the city has indeed grown quieter, something of the festive spirit seems to have dimmed with the silence.

With advances in drone technology, many celebrations now feature choreographed drone formations in place of traditional fireworks. The first time I witnessed thousands of synchronized lights painting three-dimensional patterns across the night sky, I was genuinely awestruck. Yet over time, compared to fireworks, these displays began to feel somehow lacking in spirit. While drones execute their perfectly programmed routines, fireworks—despite their occasional imperfections—spark deeper wonder in their brief, explosive brilliance. This perhaps reflects a broader truth about art: overly precise expressions can limit imagination and audience engagement.

Technological progress need not demand absolute precision and order. Life’s most memorable moments often spring from the unexpected and unpredictable. Drone shows and robotic performances are certainly products of our time, driving innovation and delivering impressive spectacles. Yet they should complement tradition rather than replace it. Today’s cutting-edge technology may seem commonplace tomorrow, while the “primitive” rituals that have coursed through our veins for centuries—these are what truly sustain a civilization’s soul.

Finding harmony between safety, environmental protection, cultural heritage, and technological advancement remains an ongoing challenge—one that deserves our continued exploration.

Recent Selections

The Next Chapter in Swift Build Technologies

Although Swift has been open source for many years, Xcode and Swift Package Manager (SwiftPM) have long used different build engines. This not only led to inconsistent build experiences but also prevented non-macOS developers from accessing many of Xcode’s unique build features. On February 1, 2025, Apple made a significant move by open-sourcing Swift Build, a powerful build engine based on the llbuild project. It supports various product types (such as libraries, command-line tools, and GUI applications) and maximizes parallel build efficiency through build graph optimizations. This provides a unified build experience, improves development efficiency, and further enhances Swift’s cross-platform capabilities, especially for Linux and Windows. Apple also plans to collaborate with the community to unify the build system, laying the foundation for future performance optimizations and new features. Written by Owen Voorhees.

A Swift Concurrency Glossary

Swift has introduced many new terms and concepts for concurrent programming. Matt Massicottei organizes these in a glossary format, with each term including its type, purpose, introduction version, and author commentary. Massicotte not only defines the terms but also provides usage scenarios, precautions, and further explanations to help developers avoid common pitfalls. With clear explanations and examples, the article lowers the learning curve for Swift concurrency programming, encouraging more developers to adopt this model. For those looking to master Swift concurrency, this article is an essential reference.

Multiplatform Development for Apple Devices

Although SwiftUI offers many conveniences for multiplatform development, Apple’s “Learn once, apply anywhere” design philosophy requires developers to optimize and adjust their projects for different platforms. In this article, Darryl Bayliss shares his experience migrating the Christmas Chill project from UIKit to SwiftUI, adding Apple Vision Pro support, using conditional compilation blocks, and leveraging build phases for dependency injection. Through these steps, he demonstrates how to utilize SwiftUI’s cross-platform capabilities while optimizing for each platform.

Choosing the Best Way to Send Emails in an iOS App

On iOS, developers have multiple options for sending emails within their apps. Douglas Hill analyzes the pros and cons of each method, helping developers choose the best approach based on their app’s needs. Hill’s recommendations are:

  • ShareLink/UIActivityViewController: Suitable for general sharing scenarios, supporting multiple sharing methods (e.g., email, messaging apps), but not ideal for sending to specific addresses.
  • mailto links: Ideal for prefilling recipient, subject, and body fields, with cross-platform support (iOS, macOS, visionOS) and compatibility with the user’s default email app, but does not support attachments.
  • MFMailComposeViewController: Best for sending attachments or prefilling email content, but limited to iOS devices and dependent on Apple Mail.

Understand Photo Storage Model on Apple’s Photos App and PhotosKit

As the developer of PhotonCam, Weichao Deng delves into the workings of PhotosKit in this article, comparing Android and iOS photo storage and processing based on his Android development experience. The article explains the roles of PHAsset and PHAssetResource, as well as how PhotosKit manages multiple versions of photos and auxiliary data (e.g., Apple/ISO Gain Map, Segmentation Matte). Additionally, it offers practical advice for cross-platform developers, emphasizing the need to ensure consistency in photo storage models when designing and developing photo apps.

Provide macOS System-wide Services from Your App

System-wide services allow macOS apps to extend their functionality across the entire system, enabling users to invoke app features via context menus or the Services menu from any application. Natalia Panferova uses her utility app EncodeDecode as an example, detailing how to define a service provider class, register the service, and configure the Info.plist file to implement system-wide URL encoding and decoding. The article also provides testing and debugging tips, such as using the pbs tool to verify service registration, making it a valuable resource for developers looking to integrate system-wide services into their macOS apps.

Get weekly handpicked updates on Swift and SwiftUI!