Weekly Comment
According to a report by MacRumors, Apple engineers have been instructed to pause ongoing development of new versions and focus on fixing existing bugs and improving software performance. This pause is expected to last for one week.
We won’t discuss whether one week is enough time to fix the numerous issues in the current system, frameworks, and development tools. But at least Apple is showing the intention and determination to address the bugs, something that many developers and users have been expecting for a long time.
I’m not a demanding developer or user, but I do have some small complaints about the many software issues Apple has had in recent years.
After the release of iOS 16 last year, I wrote a blog post, and here are some excerpts:
By 2022, SwiftUI had entered its fourth year. While previous updates of SwiftUI encountered some issues, none were as significant as those in its latest version. This trend of numerous bugs was not limited to SwiftUI but was also prevalent in iOS, macOS, and other Apple products.
This issue is not unique to Apple; it reflects a broader societal trend of relentless development. The pursuit of speed, change, and efficiency permeates all aspects of life, affecting both businesses and individuals.
Regardless of whether consumers have plans to purchase new products, the most prevalent voice on the internet whenever a new product is released is “incremental upgrades”. This, in turn, affects the business strategy, as companies continuously introduce new models just to cater to the market, changing for the sake of change, and being different for the sake of being different.
However, consumers’ seemingly endless desire for change is also fueled by corporate strategies. When companies fixate on annually releasing new versions of their products and shift from one-time purchases to subscription models, their primary goal often shifts to creating an impression rather than offering practical utility.
The use of over-the-air (OTA) updates, originally intended for certain specific fields, has been applied as a mindset in various areas such as management, design, manufacturing, and so on, which is shocking. Expecting no bugs or fewer bugs has become a luxury, and rapid iteration has become mainstream - fixing bugs during iterations, and creating bugs during iterations.
Do we really need to move so fast?
Originals
GeometryReader: Blessing or Curse?
GeometryReader has been present since the birth of SwiftUI, playing a crucial role in many scenarios. However, from the very beginning, some developers have held a negative attitude towards it, believing it should be avoided as much as possible. Especially after the recent updates of SwiftUI added some APIs that can replace GeometryReader, this view has further strengthened.
This article will dissect the “common problems” of GeometryReader to see if it is really so unbearable, and whether those performances criticized as “not meeting expectations” are actually due to problems with the developers’ “expectations” themselves.
Recent Selection
Maintaining Seamless Compatibility with Apple and LLVM Compiler Technology
In Apple’s development environment, bitcode used to be an important component of apps submitted to the App Store. Apple servers could use bitcode to generate optimized binary files for different device architectures, such as Intel or ARM. However, as Apple’s hardware devices have gradually unified into arm64, starting from Xcode 14, the App Store no longer accepts bitcode submitted from Xcode. This also means that the “optimized bitcode” originally used to reduce app size will no longer be effective since there are no longer different architectures, and the build target will be unique. This article delves into the evolution of Apple’s compiler technology, with a particular focus on the decision to gradually phase out bitcode in the App Store and the role of LLVM in the Apple development ecosystem.
PEP 730 – Adding iOS as a supported platform
Russell Keith-Magee
Although iOS has a significant market share in the mobile device market, the official CPython currently does not support iOS. While iOS runs on a similar Darwin kernel as macOS, there are significant differences at the implementation level that require distinguishing between these two platforms. Recently, the Python community submitted a proposal suggesting iOS as one of the platforms supported by CPython. The goal is to achieve third-tier (Tier 3) support in Python version 3.13. The proposal emphasizes the importance of introducing iOS support in Python and discusses in detail the technology and project management challenges required to achieve this goal.
Your Life With (and Without) Observation
The Observation framework is one of the most important new features in Swift 5.9. In the recent Swift Connection 2023, Aviel Gross provided a comprehensive introduction to Observation. The content covers the history of Observation since its inception, the reasons for the need for a new framework, a comparison between Observable and ObservableObject, the advantages of Observable, new syntax and behavioral changes, how Observable works, and various considerations. Finally, recommendations and best practices for using Observable are given, emphasizing the importance of understanding how Observable works and its potential impact on SwiftUI views and application architecture.
22 Tips for New iOS Developers
Many developers who are new to iOS development often face various doubts and difficulties. For example, they may wonder how to choose a better learning path, how to avoid taking detours, and how to seek help when facing challenges. In response to these issues, Enid has provided 22 tips to help beginners quickly overcome the confusion of being a novice.
Swift Roadmap (includes explanations, examples, visual examples and resources)
This is a recently highly praised post on the Reddit forum. In the post, Antonel shared a meticulously crafted roadmap for learning Swift and SwiftUI, aiming to help those who want to learn iOS development. The roadmap is rich in content and summarizes a wealth of excellent resources available on the internet. It covers various aspects of knowledge, including the basics of Swift, creating and manipulating views in SwiftUI, state management, animation, gesture control, and more. It provides abundant examples, visual illustrations, funny jokes, and even includes breaks in between. This roadmap is suitable for Swift developers of all levels, from beginners to experienced developers, and everyone can benefit from it. You can check out the visual version of the roadmap here.
The Complete Guide to JSON Web Tokens (JWT) Authentication in iOS
JSON Web Token (JWT) is a compact, self-contained standard for securely transmitting information between two parties. It is widely used for authentication and information exchange in web applications. In this article, Mohammad Azam provides a detailed guide on how to use JWT for authentication in iOS applications. The article covers the methods for setting up JWT authentication on the server-side and seamlessly implementing this security measure on the client-side using SwiftUI. Additionally, the article discusses using ExpressJS as the primary framework on the server-side and mentions Vapor as an alternative solution for the Swift and iOS ecosystem. This article serves as a comprehensive guide for iOS developers on JWT authentication.
Fun Project
Let’s xrOS
Since the WWDC 2023 event, many beautiful concept images and demonstration videos of visionOS apps have emerged on social media. However, due to the unofficial release of Apple Vision Pro, it is difficult for us to try out other developers’ works.
To address this issue, XReality Zone has created the Let’s xrOS application. With it, developers can try out visionOS apps created by other creators in the community.
You can also submit your own visionOS applications here to share with enthusiasts from around the world, without the need to submit the source code.