Weekly Comment
On January 19th, the Apple Vision Pro finally went on sale. Judging from the response speed of the Apple Store and the estimated delivery time of the product, the initial batch showed signs of being in high demand. Despite its high price, consumers still showed keen interest. However, how long this situation will last and what the public opinion will be after the product is delivered remains to be seen.
As Apple’s most significant new product in recent years, the Apple Vision Pro has garnered substantial attention. The stagnation and issues encountered with other products and software over the past couple of years may be attributed to the extensive resources devoted to the development of this product. Its hardware configuration and the experience it offers are unparalleled in the current market, yet its high price also stands unique. Despite the possibility that the Apple Vision Pro might have the lowest profit margin among Apple’s recent products, Apple has not opted for subsidizing its hardware cost to boost sales, as seen with gaming console manufacturers, instead aiming to derive long-term profits from software royalties. Therefore, reaching sales in the tens of millions in the next one or two years seems unlikely. This explains why many large development enterprises and streaming platforms maintain a wait-and-see attitude (with no plans yet to provide native applications and services for it). Limited hardware sales constrict third-party involvement. The absence of software and services that fully leverage the device’s capabilities can limit hardware sales and prevent cost reduction. This is undoubtedly a situation Apple would prefer to avoid.
Regardless, I sincerely hope that the product will be successful and bring more vitality to the somewhat lackluster Apple ecosystem in recent years.
Last week, Apple also started supporting third-party payments in the US App Store. The implementation details of this policy are similar to those enacted in South Korea two years ago, and from the Korean experience, it did not significantly impact the sales of the App Store. Similarly, it can be foreseen that the policy allowing sideloading to be implemented in the EU in a few weeks will also not cause much upheaval.
On the one hand, large companies need to comply with laws set by governments; on the other hand, they also have sufficient resources to devise strategies that comply with the law but do not overly harm their own interests. In this process, developers and consumers often find themselves in the position of spectators, while legal professionals gain substantial benefits.
Originals
Relationships in SwiftData: Changes and Considerations
In previous two articles, Mastering Relationships in Core Data: Fundamentals and Mastering Relationships in Core Data: Practical Application, we explored in detail the concepts and techniques of relationships in Core Data. While much of this knowledge is also applicable to SwiftData, Core Data’s successor, SwiftData introduces several significant changes in handling relationships. This article focuses on the changes that have occurred in the aspect of relationships within SwiftData, as well as the potential challenges and noteworthy details arising from these changes.
Recent Selections
How to pass References from Swift to C Functions with Unmanaged Type
This article explores methods for effectively passing references between Swift and C languages. Developer Dimas Ashidiqi, while developing a macOS application using Swift, encountered a unique challenge: the need to use C functions as callbacks, which unlike Swift closures, cannot capture dependencies. To address this issue, Ashidiqi, after thorough research, proposed a solution: converting the self reference in Swift into an UnsafeMutableRawPointer
, and then passing it to the opaque pointer parameter in the C function. In the callback function, this UnsafeMutableRawPointer
can be converted back to its original type. The article not only details this process but also emphasizes the effectiveness and practical value of this method in addressing specific issues encountered in macOS application development.
Remove background from image in SwiftUI
In iOS 17, Apple introduced a striking new feature that allows users to easily extract subjects such as people or animals from photos and videos by long-pressing on them. The API behind this feature has also been made available to developers. In this article, Artem Novichkov thoroughly discusses how to utilize the new iOS 17 API VNGenerateForegroundInstanceMaskRequest
to remove image backgrounds in SwiftUI. By using this powerful tool, developers can implement similar functionalities in their own applications.
App Store screenshot requirements need to change
As the screen sizes and resolutions of iOS devices continue to increase and vary, preparing screenshots for the App Store has become more complex and time-consuming. In this article, Jesse Squires provides a brief overview of the history of iPhone and iPad screen sizes, emphasizing that screen ratio, rather than device size, is the key factor affecting screenshots. He points out that the different screen ratios of various devices mean that the displayed content will significantly differ. Squires believes that the current screenshot requirements of the App Store pose a heavy burden on developers, especially independent ones. He specifically notes that compared to the requirements for the Mac App Store, Apple’s regulations for iOS app screenshots are more stringent and cumbersome.
Idle Talk About the Quirks of APPLE’s APP REVIEW
In the Epic versus Apple lawsuit, as more insider details were revealed, the veil of mystery surrounding Apple’s App Review team has gradually been lifted. In this article, Zhang Siqi (Sketch) reviews and compiles a series of interesting facts and lesser-known information about this team. Topics such as the working data of the App Store review team, the review process, and interpretations of the App Review guidelines are covered. Additionally, the article includes practical advice on handling app rejections, offering guidance to developers navigating the App Store review process.
Notes on SwiftData
In this article, Luke Harback shares his notes and experiences from developing with SwiftData. The article explains how to effectively utilize Swift packages to separate models and application code, thereby optimizing and organizing the code. Additionally, it explores migration techniques and how to define and use models in migration versions through type aliases, among other topics.
Event
Let’s visionOS 2024
The first Asian visionOS Developers Conference, “Let’s visionOS Conf”, co-planned by SwiftGG and XReality Zone, will kick off on March 30, 2024, in Beijing! The event will feature numerous renowned speakers from both domestic and international circles, sharing their practical experiences and industry insights!
In addition to programming technology, the conference content will also encompass product design, human-computer interaction, and commercialization, aiming to help entrepreneurs stand out quickly in the visionOS track!
We eagerly look forward to everyone’s participation, whether you are an attendee, sponsor, guest speaker, or volunteer. We warmly welcome you to join us in embracing and exploring this exciting new field!
For more details, please visit the official website of the event.
At that time, I will also attend as a guest speaker to discuss topics related to Observation and SwiftData with everyone.