Recently, the Swift community established the Swift on Android Community Workgroup, aiming to promote the use of Swift in the Android ecosystem. This initiative follows a similar path to how the Arc browser advanced Swift’s development on the Windows platform. Notably, members of the Skip team, which specializes in cross-platform development, have also joined the working group. Although still in its early stages, this undoubtedly marks an important step for the Swift community in breaking down platform barriers.
For developers deeply entrenched in the Apple ecosystem, the possibility of using the familiar Swift language to develop Android applications is an exciting prospect. However, the path to cross-platform development is far from smooth. Much of Swift’s infrastructure, from official frameworks to numerous third-party libraries, is tightly intertwined with Apple’s platforms. To achieve true cross-platform development, the community needs to build a comprehensive set of platform-agnostic APIs, which remains a significant challenge for most developers.
Fortunately, the open-source community is contributing to Swift’s cross-platform journey. The OpenSwiftUI project recently released the implementation of ViewList, a critical component for understanding the private APIs of SwiftUI’s View protocol. Combined with the progress of OpenGraph, the development pace of OpenSwiftUI is expected to accelerate, and a version supporting basic view functionality could be available to developers within the next few months. Meanwhile, the Point-Free team’s Sharing GRDB project offers a fresh approach to cross-platform data persistence.
Despite Swift’s impressive potential in the cross-platform space, the challenges ahead cannot be overlooked. Beyond technical hurdles, nurturing the community ecosystem and refining the development toolchain are equally crucial. For Swift to truly break free from the Apple ecosystem, it will require not only the community’s relentless efforts but also the active participation of developers at large.
I also hope that Apple will open up more of its official Swift frameworks. Swift’s success on other platforms will not undermine the Apple ecosystem; on the contrary, such openness could attract more developers to embrace Apple’s platform.
The vitality of technology lies in its openness and universality. A more open Swift will not only advance cross-platform development but also bring more innovation and possibilities to the entire developer community. Let Swift evolve from being “Apple’s language” to becoming “the world’s language” as soon as possible.
Original
[Mastering SwiftUI Scrolling: Implementing Custom Paging](https://fatbobman.com/en/posts/mastering-swiftui-scrolling-implementing-custom-paging/?utm_source=fatbobman weekly issue 71&utm_medium=web)
Since iOS 17, SwiftUI introduced scrollTargetBehavior
, providing developers with more precise scrolling control, such as paging and view alignment. However, in landscape mode, the default paging
behavior has alignment offset issues. This article explores how scrollTargetBehavior
works through a real-world case study and discusses how to customize ScrollTargetBehavior
to achieve precise and stable paging scrolling.
Recent Recommendations
Exploring MLX Swift: Getting Started with Tool Use
LLMs can surpass their training data limitations by calling external tools (Tool Use) to access real-time information and execute tasks. Swift developers can now achieve this capability with MLX Swift. In this article, Rudrank Riyam introduces how to use tool calling in MLX Swift, demonstrating a real-time weather query example—from defining tools, parsing LLM calls, fetching weather data, to applying the retrieved information. The corresponding code is available in the MLX-Outil project.
Configuring Deep Links in SwiftUI
Deep Links allow users to navigate directly to a specific page or feature within an app rather than just opening the home screen. In this article, Fang Junyu provides a detailed guide on configuring URL Scheme and Universal Link, as well as handling deep link events in SwiftUI. The article explores multiple approaches for deep link event propagation, including @AppStorage
and @EnvironmentObject
, to support multi-level view navigation. Additionally, it explains the Universal Link setup process, covering Apple App Site Association (AASA) file deployment, domain association in Xcode, and the time delay after modifying the AASA file, helping developers better understand and apply deep linking techniques.
Swift Localization in 2025: Best Practices You Couldn’t Use Before
While String Catalogs have significantly improved localization efficiency in Xcode projects, using English text as keys enhances readability but introduces issues such as lack of grouping, unclear context, and inconsistent translations. In this article, Cihat Gündüz introduces TranslateKit, an open-source Swift SDK designed to address these challenges. It offers automatic semantic key generation (#tk macro), pre-translated UI components (supporting 40 languages), and context-aware translations, making localization more efficient and consistent.
What is a Configuration (.xcconfig) File in Xcode?
.xcconfig
files are essential for decentralized management of build configurations in Xcode projects, helping developers decouple environment variables (such as API URLs, build options, and logging levels) from the Xcode UI and Swift code. Compared to direct configuration in code or Build Settings, .xcconfig
files provide a clearer, more maintainable structure and are better suited for CI/CD automation, avoiding merge conflicts and redundant manual settings in team collaboration. In this article, Abhinay explains how to create and use .xcconfig
files, explores hierarchical inheritance and variable references for optimizing project configurations, and addresses potential conflicts between CocoaPods and .xcconfig
, offering solutions to ensure correct dependency management.
Swift Interoperability with C
Swift can seamlessly interoperate with C code, allowing developers to call C-written libraries within Swift projects. In this article, Mirza Učanbarlić demonstrates how to create a simple C library and use it in Swift, covering compiling C code, generating static libraries, creating Clang modules (module.modulemap
), and calling C functions from Swift. Additionally, Mirza introduces essential Swift compiler (swiftc
) parameters for handling C interoperability, such as -I
, -L
, and -lfoo
, ensuring proper linkage between C code and Swift projects. This article serves as a practical guide for developers looking to integrate C code into Swift applications.