Firebase
Firebase Storage Rules
Firebase follows a serverless paradigm that allows your client apps to access backend resources like your database (such as Firestore) and your storage buckets without having to set up an API gateway.
To keep your users' data safe and secure, you need to implement Security Rules.
In this article, Michael Dowden shows how to implement Security Rules for Cloud Storage. Starting with a simple sample, he shows how to use functions to keep your Security Rules easy to read and maintainable. He uses data validation to make sure users can only upload files up to a certain size. Finally, he shows how to implement role-based access control (RBAC).
Well worth a read if you'd like to see how to use Security Rules for more complex scenarios.
SwiftUI
What if Teenage Engineering built a pocket calculator app?
Drew Wilson created an absolutely amazing looking percentage calculator in SwiftUI, drawing inspiration from Teenage Engineering's OP-1.
Here's a walkthrough of the code.
Screen vs View in SwiftUI
How do you know if a View
in your SwiftUI app represents an entire screen or just part of it? Scott explains a very simple naming scheme that he's been using for some time.
I follow a similar approach, and approve of his message.
Vision Pro / visionOS
Moog turns Apple Vision Pro into a futuristic instrument for music creation
If you can’t afford buying an original Moog synthesizer, you can now use your Vision Pro as a virtual instrument.
All joking aside, this does look like a pretty cool use case.
The big demo
This is a great write-up of the in-store experience for the Apple Vision Pro.
A headset is a very personal device, and I can relate to what Michael said here:
Trying your buddy’s Vision Pro is more like trying on their shoes than playing with their iPhone: it might work if you’re the same size, but it’s going to be awkward and maybe even a little bit gross.
That - and the fact not very many people own a Vision Pro at this time - is one of the reasons why the retail experience is so important for this new device.
I’ve read many comments people had about their in-store experience when trying out or picking up their Vision Pro, and it seems that Apple once again really nailed their white gloves support.
Vision Pro use cases
The Vision Pro has been launched just over a week ago, and in the past couple of days, people have been excited to try out the new platform and explore all sorts of use cases for it.
Here are some use cases I found remarkable:
- Interacting with content in 3D. This is especially cool for 3D models, as shown in this tweet by Aaron Levie, CEO of Box: link
- Inspecting medical imagery, such as this MRT scan
- Seeing instructions while repairing your car (or assembling furniture)
- Seeing and experiencing products in your environment before buying them. (I particularly found the part where you go inside the tent pretty compelling).
- And, of course, Mac Virtual Display, which lets you use Vision Pro as a giant monitor for your Mac. Great for coding, and the use case I can't wait to try out myself.
Frame AI Glasses
Just the other day, Brilliant Labs launched their Frame AI glasses. They look very much like regular glasses, and much less … in your face than the Apple Vision Pro. There is not much information about the device, other than a video on their website and their launch announcement which got picked up by a couple of tech outlets, but it seems like it has one AR lens that can display information (text and images) directly in your field of view, and has both a microphone and a front-facing camera to support use cases such as detecting objects and translating text. It's not entire clear if there are built-in speakers.
Looking at their GitHub profile and the documentation for the predecessor product, the Monocle, it seems like on-device apps will be built using Python, and can connect to a companion app running on your phone. The interesting thing about this is that the entire stack is open source - even the Noa app that acts as the default conduit between the glasses and any AI services such as OpenAI GPT is open source, and can be replaced with your own implementation.
Unfortunately, it seems like there is only a rather limited (and pretty coarse-grained) selection of prescription lenses, but I assume most opticians should be able to manufacture prescription lenses for your prescription.
AI and ML
Using Vertex AI Gemini REST API (C# and Rust)
You can use Gemini, Google's largest and most capable model, from a bunch of languages (including Swift!) - but what if you want to use it for a language that is not (yet) supported?
In this blog post, Mete Atamel shows how to wrap Gemini's REST API for C# and Rust (courtesy of André Bandarra. In case you wonder - it's the same approach we used for the Swift SDK for Gemini.
Writing
Q&A with the Apple UX writing team
Ever struggle to explain technical ideas in your app without resorting to confusing jargon? Apple's UX writing team knows the feeling! This summary of their WWDC 23 Q&A sessions tackles big questions like making your instructions understandable and finding the right tone for your copy.
Curious why the text in apps is called 'copy'? I was too! Here is what Gemini had to say:
While "text" is a neutral term for written content, "copy" can indicate a specific purpose or style.
Want to dive deeper into tech writing? Check out these free Google courses:
Business
What do executives do, anyway?
Ever wonder what executives do every day? This article provides some insight into what they should (and should not) do.
Tools
CodeEdit - A Natively-built Code Editor for the Mac
CodeEdit is a native code editor for macOS that looks and feels a lot like Xcode. That's not by accident: when Austin Condiff tried to make VS Code look and feel more like a native macOS app, he quickly reached a dead end. Not willing to give up on having a great editor experience on macOS, he decided to roll his own.
Crazy? Not if you tap into the power of the open source community.
It seems like there's a vibrant community of contributors, and there's even a weekly meet-up on their Discord server.
As mentioned on their GitHub page, CodeEdit is in development and not yet ready for production use, but it's worth checking it out and keeping an eye on it.
Web
Using SwiftWasm to bring GoodNotes to the web
There is no shortage of frameworks for cross-platform app development - names like React Native, Xamarin, Flutter, or Kotlin Multiplatform come to mind.
Given GoodNotes was developed iOS-first, the GoodNotes team decided to go a different route and leverage their existing Swift code base instead, using SwiftWasm to bring the app to other platforms. This allowed them to reuse most of the existing code base instead of having to catch up a new implementation to the existing code base.
SwiftWasm compiles Swift code to WebAssembly, essentially allowing you to run Swift code in your browser.
If you're considering bringing your Swift app to the browser, check out the handy list of recommendations at the end of the article.
Conferences
The Importance of Attending Conferences
What's the main purpose of attending conferences? If you'd asked me this question at the beginning of my career, I'd have answered "attend the talks and learn from thought leaders".
And while that's certainly an important aspect of conferences, it misses the point.
Today, I consider meeting other people, exchanging ideas, and learning from each other to be as important (if not even more important) as the talks. I've been to countless conferences, and the so-called "hallway track" has always been where I learned the most.
In this blog post, David McCarter draws a similar conclusion, and encourages companies to start sending more engineers to conferences (again).
Here are his three top tips for attending conferences:
- Ask speakers questions. Give them feedback. Make sure you show your appreciation to the speakers. We work hard to present information at the conference.
- Try to meet new people and start a discussion. You never know what you will learn from others. I’ve learned a lot this way.
- Attend events to network with speakers and attendees. These events are fun so people are usually in a good mood.
Comment
Vision Pro has been launched just slightly over a week ago, and there is no escaping from the fact that people are enjoying this new platform.
While some use cases look pretty stunning (such as interacting with architectural models or analysing MRT scans), I am pretty sure the product managers at Apple might be a bit nervous about some of the videos people share: it doesn’t seem to be a very safe idea to use Vision Pro for skiing, for example - it’s not a safety device after all!
On the other hand, using it to make flying in economy class more bearable seems to be a good economic choice.
Also, if you're importing Vision Pro, please don't forget to declare it, or it might get confiscated. Or, you could just, you know - wait until it ships in your country.
Peter