# 43 : Archiving and Awakening Memories

Published on

Photo by Kelly Sikkema on Unsplash

Get weekly handpicked updates on Swift and SwiftUI!

Weekly Comment

Last weekend, I attended a high school reunion. While I’ve maintained close contact with many classmates, there were a few I hadn’t seen in decades since graduation. During the gathering, many classmates were immersed in reminiscing about our school days, with a projector on the wall displaying a meticulously crafted slideshow of old school photos.

Gazing at my younger self in those old photographs and listening to classmates recount anecdotes involving me, I once again fell into a daze: the person in the photos was indeed me, and the events they discussed were surely ones I had led or participated in, yet I had no recollection of them whatsoever. This scenario has occurred repeatedly at many gatherings.

I tend to view this phenomenon optimistically, not seeing it as a sign of declining memory. Perhaps the brain has stored these memories in a “deep archive” in some corner, requiring time and external assistance to retrieve them.

Fortunately, the iOS Photos app has the ability to automatically organize memories from vast collections of images. It occasionally presents events from the past decade or so in thematic collections, helping me awaken those archived memories.

I believe this is also the primary purpose of “journal” type apps - to intelligently aggregate information and preserve it as external digital memories. When I truly enter my twilight years, this information will become the key to awakening the dormant memories within me.

Choosing trustworthy data service providers, constantly upgrading storage space, and continuously paying for storage fees may sound easy, but with the explosive growth in the scale of data memories, long-term maintenance can consume considerable energy.

Perhaps it’s time to revive some old traditions, timely converting parts of our digital memories into physical forms (such as printed photos, handwritten texts, etc.). This not only adds a backup method but also, compared to purely digital experiences, the tactile quality of physical objects may more easily evoke deeply stored memories.

Originals

How to Tile Images in SwiftUI

Fatbobman

“I’ve got this!” I imagine this is the first reaction of most people upon seeing the title of this article. Although image tiling is not a commonly used feature, most developers can easily master its implementation. A search engine query reveals that almost all results point to the same solution — using the resizable modifier. However, for a powerful UI framework, it is clearly not comprehensive to have only one solution for a requirement. In this article, we will explore two different implementations of image tiling and from there, introduce a less commonly used Image construction method in SwiftUI.

Recent Selections

Exploring Writing Tools: Rewriting a Post About Writing Tools using Writing Tools

Rudrank Riyam

“Writing Tools” is part of the AI features introduced by Apple at WWDC 2024, offering capabilities such as proofreading, rewriting, and text transformation. In this article, Rudrank Riyam not only provides a detailed introduction to the various functions of Writing Tools but also shares his practical experience using them. Additionally, he explains to developers how to integrate Writing Tools into custom text views, how to control Writing Tools’ behavior, and how to handle specific text ranges (such as code blocks).

Going Indie: From Side Project to Going Independent

Antoine van der Lee

As a renowned blogger and expert in the field of Swift programming, Antoine van der Lee recently made a significant decision: resigning from his full-time job to fully dedicate himself to his personal projects SwiftLee, RocketSim, and course development. In this article, Antoine shares his exciting journey from full-time employment to becoming an independent developer. Moreover, to help more developers with similar aspirations, he has carefully crafted an online course “From Side Project to Going Indie”, aimed at guiding developers on how to successfully transform their side projects into full-time careers.

We sincerely wish him smooth sailing and great success in his new venture!

iOS WKWebView Page and File Resource Preload / Cache Research

ZhgChgLi

In this article, ZhgChgLi discusses page preloading and caching strategies when using WKWebView in iOS development. The article provides a detailed introduction to HTTP caching mechanisms and analyzes various possible preloading and caching approaches, including improving HTTP caching, WKWebView preloading, using URLProtocol and WKURLSchemeHandler, among others.

Running iOS Performance Testing on CI

Alexey Alter-Pesotskiy

To ensure valid results from XCTMetric, developers must run performance tests on the same machine and physical device. This limitation effectively prevents running performance tests in a Continuous Integration (CI) environment. In this article, Alexey Alter-Pesotskiy discusses how to overcome this challenge and implement iOS performance testing in a CI environment. He proposes an innovative solution and provides detailed code examples using fastlane to implement this approach. This method not only offers iOS developers a new way to conduct performance testing in CI environments but also successfully overcomes some inherent limitations of the standard XCTest Performance tool.


One of the main goals of Swift 6 is to eliminate data races as much as possible through strict compiler-level checks. This goal has led to some relatively radical language changes, significantly impacting the migration of existing projects.

Some Experiences and Minor Complaints about Swift 6 Adaptation

onevcat

The author expresses concerns about the direction of Swift’s development:

Swift’s current development doesn’t seem to be focusing primarily on ‘helping developers complete apps better and faster.’ I’m not sure of the specific reasons, but whether it’s the team prioritizing KPIs (such as rushing to transform the language and hastily releasing SwiftUI, or delivering on concurrent programming promises early), or eagerly trying to ‘show off’ in other areas (like Server Side or other operating system platforms), personally, I don’t feel any happier coding in Swift 6 compared to Swift 3 or 4.

In this article, Wang Wei (onevcat) shares his recent experiences migrating several projects to Swift 6 and provides some practical migration tips. At the end of the article, the author calls for Swift’s future development to focus more on improving development efficiency, helping developers complete applications faster and better.

Non-Sendable types are cool too you know

Matt Massicotte

Matt Massicotte discusses the importance and application of non-Sendable types in Swift’s concurrent programming. The article clarifies the concept of thread safety, explains the differences between Sendable and non-Sendable types, and provides solutions for related issues. As the article title suggests, the author emphasizes that non-Sendable types might be a better choice in certain situations and encourages developers to value these types.

Solving “Reference to captured var in concurrently-executing code” in Swift

Donny Wals

When migrating to Swift 6 language mode, developers may encounter a series of new compiler warnings. One common warning is “Reference to captured var in concurrently-executing code”. In this article, Donny Wals analyzes the reasons for this warning and provides several practical solutions, including converting captured variables from var to let, using explicit capture lists in closures, and creating constant captures before Task execution.

Weekly Swift & SwiftUI insights, delivered every Monday night. Join developers worldwide.
Easy unsubscribe, zero spam guaranteed