WWDC21 wasn’t the most exciting Apple keynote ever (especially for those of us hoping for some new hardware), but there were a lot of software things announced. Apple continues to iterate on Swift, and the new 5.5 beta has some really cool stuff in it. InfoQ has the rundown on its two flagship improvements.
OldOS is a testament to the days of yesteryear, showcasing what iOS once was ten years ago. The ethos of the app is to merge the technologies of today with a pixel-perfect recreation of the user experience of the past. The vast majority of apps in OldOS are fully functional — meaning they seamlessly integrate with the data on your phone to deliver a live, emulator-esque experience. What does this mean? Well, you can play your music in iPod, get directions in Maps, surf the web in Safari, view the current weather in Weather, and much more.
This is quite the undertaking!
Part of the goal with OldOS is to enable anyone to understand how iOS works and demonstrate just how powerful SwiftUI truly is. For that reason, the entire app will soon be open-sourced — enabling developers to learn about, modify, and add to the app. I thought building this over my last six or so months in high school and sharing it with the world would be a fun and productive endeavor.
It looks like there’s a build available today, but it’s not open source yet so I’m going out on a limb by linking it up now. I’ve +1’d a request for screenshots, which would be a great addition to the repo while we wait for code.
Karoy Lorentey with the announcement:
The Swift Standard Library currently implements the three most essential general-purpose data structures:
Dictionary. These are the right tool for a wide variety of use cases, and they are particularly well-suited for use as currency types. But sometimes, in order to efficiently solve a problem or to maintain an invariant, Swift programmers would benefit from a larger library of data structures.
We expect the Collections package to empower you to write faster and more reliable programs, with less effort.
You’ll need the latest (macOS Big Sur beta and Xcode 12 beta) to get this up and running, but if you’re interested in modern macOS development and SwiftUI, it’s probably worth it so you can poke around the source and see how it all fits together.
The most common setup for SSH keys is just keeping them on disk, guarded by proper permissions. This is fine in most cases, but it’s not super hard for malicious users or malware to copy your private key. If you store your keys in the Secure Enclave, it’s impossible to export them, by design.
You can get it on the App Store, but it is the author’s first foray into SwiftUI so you may be best served using it to learn as well.
Suitcase is a command line tool that can be “programmed” to display a SwiftUI interface that can trigger commands and scripts.
Dates and times. Every developer has to deal with them, and very few languages make it super enjoyable. This library aims to help out in Swift land:
Working with calendars can be extremely complicated and error-prone.
Timesolves these problems by clarifying concepts and restricting improper usage through type-safe APIs.
Erik Kennedy is back with an awesome resource for anyone doing iOS development.
Maybe you’ve never designed an iPhone app, and have no idea where to begin.
Maybe you’ve designed a dozen, but still want one place to reference best practices. Heaven knows Apple’s Human Interface Guidelines are awful to try and read.
Either way, this is the guide for you. I cover basically everything you need to know to create an iOS app that follows standard iOS 13 conventions.
Control Room is a macOS app that lets you control the simulators for iOS, tvOS, and watchOS – their UI appearance, status bar configuration, and more. It wraps Apple’s own
simctlcommand-line tool, so you’ll need Xcode installed.
The author posted a nice demo video on Twitter and the response was so positive that they open sourced the tool.
Ted Kremenek (member of the Swift Core Team and Project Lead) shared on the Swift Forums the broad topics that the Core Team wants to tackle for the next major version of Swift.
From more platforms to improvements on the language to support elegant APIs, but also including major language features such as memory ownership and concurrency.
Welcome to Publish, a static site generator built specifically for Swift developers. It enables entire websites to be built using Swift, and supports themes, plugins and tons of other powerful customization options.
Built to build swiftbysundell.com.
You can rearrange them with ⌘ + drag and then click the arrow icon to hide.
It can be used to build websites, documents and feeds, as a templating tool, or as a renderer for higher-level components and tools. It’s primary focus is on static site generation and Swift-based web development.
I’ve always enjoyed using DSL’s like this.
let html = HTML( .head( .title("My website"), .stylesheet("styles.css") ), .body( .div( .h1("My website"), .p("Writing HTML in Swift is pretty great!") ) ) )
This isn’t a full-fledged Reddit client (yet), but it looks like a nice example app if you want to see what SwiftUI is all about.
A little over a month ago, I released CwlViews and then followed up with an article suggesting that Apple might be about to release their own declarative views library. At WWDC this week, they did just that, releasing SwiftUI.
This article will look at how SwiftUI’s approach to declarative views compares to CwlViews, why the two approaches differ and what Apple changed to make this possible. I’ll end with some thoughts about how this will affect macOS and iOS development.
SwiftUI didn’t get as much air time as the new Mac Pro and its ridiculous (in multiple ways) 6K display, but looking back at Apple’s 2019 announcements, SwiftUI might end up being the most profound of them all.
If you want to cut straight to some working code and an XCode project that uses the brand new UI framework, check out the linked repo.
Swiftenstein is a partial reimplementation of ID Software’s 1992 classic FPS Wolfenstein 3D in Swift for iOS. It is not a complete game, just a single-level tech demo.
Not a complete re-creation of the original, but “close enough for nostalgia purposes” and definitely worth a read-through for education purposes.
I’ve wanted something like this for so long that I forgot I wanted it. Insta-install!
Not an official Google project, but written and maintained by Google engineer Samuel Groß. The README lays out quite a bit on the concept, implementation, and usage of the fuzzer, but there’s even more to learn in this presentation from Offensive Con 2019 and the associated master’s thesis for which the project was produced.
I’m logging this not because it’s super-useful in its current form (it is not). I’m logging this not because it’s a good example of a modern Swift app (it may be, I have no idea). Nope. I’m logging FeedCompass because it represents an idea that deserves more attention.
Independent websites, loosely stitched together via open protocols, are what make the web great.
Yeah, let’s do more of that.
This project aims to collect bizarre (but “legal”) Swift programs that the commmunity produces. Like esoteric programming languages, but for weird or nonsensical shit we can do in Swift that actually compiles. For fun purposes only.
Compiling some open source goodness just for the fun of it. Avant-garde!