Advent Calendar
Let’s create an iPhone app that displays an advent calendar Lock Screen widget.
More …Let’s create an iPhone app that displays an advent calendar Lock Screen widget.
More …tl/dr advice to kids and parents aiming for admission to a good undergraduate CS program in 2022-2023:
Having just helped my three kids get into undergraduate CS programs at, respectively a top-10, a top-25, and a top-35 school, I want to share my family’s experience.
More …I wrote a solver for Hitman Go levels. You can use it to:
The code is available in four related projects:
In this screenshot of a simple test level, the “Agent” needs to pick up a red key to open the red door, followed by the blue key to open the blue door. The solver has correctly solved the moves required to solve the level as “east, east, south”.
More …Calming Ripples is a SwiftUI app that lets you draw animated ripples.
Available for iOS, iPadOS and macOS.
Study the source code to learn these techniques:
You could use the techniques in this project to create a 2D game.
My son’s away at college, without a TV. He wanted to watch the Superbowl. We realized that one way to do that would be for him to access our family’s Tablo DVR remotely. Tablo supports remote access, but there’s a catch: The client software has to be set up while the Tablo device and the client machine are on the same local network.
But my son was 1400 miles away.
This seemed like a good opportunity to experiment with a Tailscale private network. And therein lies a tale.
More …We can use trigonometry and finite differences to animate rigid objects along a SwiftUI path.
The SwiftUI Path class is missing several useful methods for evaluating properties of a path:
Happily, we can write these methods based on the existing trimmedPath
method.
With the aid of these methods it’s possible to create animations that move rigid bodies along arbitrary paths.
More …For the past three years I’ve been participating in the Advent of Code programming puzzle contest. It’s a free contest that has run every December since 2015. It’s appropriate for people who can write programs at the undergraduate college student level. (Which means that many high school students can do it.)
The way the contest works is that, starting at midnight East Coast time on the morning of December 1st, a puzzle is announced every day from December 1st to December 25th.
The puzzles are designed to be solved by an ordinary developer within a few hours. The focus tends to be on figuring out a good algorithm, and the problems are usually solvable using under a hundred lines of code in standard Python.
More …Apple’s new M1 Max SOC has good graphics performance. Some people are speculating that this would enable Apple to create a competitive video game console. I think that’s unlikely.
The bull case for Apple making a video game console is:
The bear case is:
In this blog post I explain why the video game console market is shaped the way it is.
More …iOS 15.0 introduced an AsyncImage SwiftUI view to enable asynchronously loading URL-based images. AsyncImage works well for many scenarios, but has several limitations:
AsyncImage doesn’t provide a mechanism for “inflating” an image before drawing it. This means that large images can take a long time to render the first time that they are drawn. This can cause “hitches” or “jank” when scrolling.
AsyncImage doesn’t provide a mechanism for pre-scaling large UIImages down to screen size. This can cause slow rendering and excessive memory use when displaying large images.
Here’s a replacement view, SmoothAsyncImage, that fixes these two problems.
More …Concurrency features are now available in Swift 5.5, released as part of Apple Xcode 13 beta 1. Let’s update our Web Scraping code to use the Swift 5.5 concurrency APIs.
More …