Firebase
Firebase 2022 Recap
I might have mentioned it before - Firebase keeps on releasing new features on a rolling basis, and it pays to subscribe to our YouTube channel and watch our Release Notes show to stay up-to-date.
David and Puf took the time to compile a list of some of the major releases we shipped in 2022.
Have a look - it might contain a couple of things you weren't aware of. For example, did you know that we
- Improved cached data performance for Firestore
- Added support for authentication middleware
- Enabled App Check with DeviceCheck and App Attest on more Apple devices
- ... and more
Swift
The Swift Programming Language book now published with DocC
The Swift Programming Language book is a great resource both for learning the Swift language and using it as a reference guide. Keeping it up to date with all the latest developments in the language is a huge task. I have no idea how many Tech Writers Apple has working on this, but open sourcing the book was definitely a smart move, as it made it easier to resolve typos and other smaller mistakes.
Moving the book to use DocC for publishing is great news. It shows Apple's commitment to DocC, and paves the way to some of DocC's rich features to the book (such as interactive tutorials).
If you'd like to contribute, check out the contributing guide in the books repo.
SwiftUI
Styling Components in SwiftUI
In this series, Kasper Lahti of Moving Parts explains how styling SwiftUI views works.
As I've written before, SwiftUI's styling API is more powerful than you might expect, and Kasper takes us on a deep dive how to style views, build your own view styles, propagate them, and compose them.
Definitely worth reading not only if you're considering building your own SwiftUI views.
Software Engineering
Contributing Guidelines
The hardest thing about software development is not so much writing code, but working together with other people: everyone has their own opinions (tabs vs. spaces, vim vs Emacs, the list goes on), and it's often hard to reach a conclusion.
Especially when working on open source projects, it can be really useful to write down some guidelines for contributing. This will help potential contributors understand what is expected of them, and it will make it a lot easier for the maintainers to collaborate with contributors.
Manu Herrera shares a template he's set up for a project, and it includes some good and opinionated guidelines. I like how short and concise it is.
The template also includes some coding conventions for SwiftIU view models, and suggests to use namespaces.
AI and ML
What Is ChatGPT Doing … and Why Does It Work?—Stephen Wolfram Writings
This is a very long read, but if you're curious about how large language models (LLMs) like GPT-3 and Bard work, this is one our of your time invested well.
Stephen Wolfram walks the reader through the individual stages of building a system like ChatGPT. All with hands-on code snippets that you can try for yourself in Wolfram|One (you can create a free trial account).
But the remarkable—and unexpected—thing is that this process can produce text that’s successfully “like” what’s out there on the web, in books, etc. And not only is it coherent human language, it also “says things” that “follow its prompt” making use of content it’s “read”. It doesn’t always say things that “globally make sense” [...] it’s just saying things that “sound right” based on what things “sounded like” in its training material.
Some LLM vocabulary
Confused about what prompt design, fine-tuning, PETMs, and instruction tuning are?
Here are some useful definitions for talking about LLMs by Dale Markowitz, Generative AI DevRel Lead @Google.
Productivity
Xcode Multi-Cursor Editing
Multi-cursor editing is one of the super powers of the Xcode editor. I don't know about you, but I always tend to forget the keybindings, as different editors seem to have different ideas how to invoke this feature.
In this post, Keith Harrison walks us through the different ways to use use multi-cursor editing in Xcode, from simple (⌥+Click+Drag) to a complex, copy-and-paste example that shows how to use this with enums.
Conferences
CfP: SwiftConf 2023
"SwiftConf is a small conference for great developers.", with two days of sessions and networking.
I've heard good things about this conference, and plan to submit one or two of my own talks.
The CfP is open until April 30, 2023 - all the details can be found on their landing page.
CfP: iOSDevUK
iOSDevUK is a great conference with a friendly and open atmosphere, taking place in Aberystwyth (yeah, I had to look up the spelling...) in Wales. One of the really charming aspects of the conference is that it is hosted at Aberystwyth university, with all the speakers and attendees staying on the university campus (the student accommodations are actually really comfy), which makes it really easy to connect with people.
Check out the CfP page for more details about how to submit a talk. And if you're unsure about how to write a proposal, feel free to reach out to the community on Twitter - I've found that most other speakers are happy to provide guidance and feedback!
The CfP closes on February 24th, so don't delay!
Fun stuff
Drum Transcription: Mr. Bean's "Invisible Drum Kit"
I had forgotten about this fantastic Mr. Bean sketch. Someone actually took the time to create a note-for-note transcription for the entire piece. Amazing!
Comment
After everybody got excited about Microsoft's AI-enhanced Bing search last week, the news this week look a little bit more nuanced. It's not the first time people perceived chat bots to be behaving in human-like ways, and it is worth keeping in mind how LLMs work. In this issue, I've got a deep dive into how ChatGPT and other LLMs work by none other than Steven Wolfram. It's a long read for a lazy afternoon with a good cup of tea.
In other news, Apple shipped another minor release of iOS and Xcode to beta (do yourself a favour and use the excellent Xcodes app for downloading), and the Xcode release notes contain a number of really exciting news.
I am willing to go on a limb and predict that Apple is going to make SwiftUI completely back-portable with the next major release. I wrote about back-deploying before in my blog post about SwiftUI List Bindings, in which I describe how the SwiftUI team used
Peter 🔥@_alwaysEmitIntoClient
to make new APIs available to earlier versions of the runtime. The fact that they're now adding a non-underscored attribute (@backDeployed(before:)
) tells me they're serious about making it possible to back-deploy new APIs to older runtimes. Check out the code sample in the release notes to see how this works.