Would people be interested in a free macOS app completely built with SwiftUI to generate fully customizable QR codes?
💻 The app started as a demo project for an upcoming conference but I have started usign it myself a lot, so I just thought I might get it on Testfligth? 🤷
Before you go ahead and create your own abstraction to add type-safety to URLRequest fields such as the HTTP method or the headers, you should check out this pretty cool Swift package by Apple!
🎉 The typed throws proposal is now accepted and implemented in Swift's main branch behind the TypedThrows experimental feature flag.
#iosdev
#swiftlang
Started to have a play with Apple's new swift-testing library and I really like it!
💡 If you want to migrate some XCTests classes over to this new paradigm, their docs have an amazing migration table for classes and functions you should check out.
⚠️ Unfortunately there won’t be an issue of the iOS CI Newsletter this evening and there won’t be a weekly article on my blog this week.
Yesterday morning I lost my dad, one of the most important people in my life and I don’t have the energy or brainspace for content atm so I’m
✍️ Today marks the start date to writing my first ever book! It might take a while to get published but, by July I am hoping to have a pre-release version and update it throughout the year.
Would you be interested in reading it? Feedback would be super useful! 🙏
🚀 Career Update 🚀
Friday was the last day of my tenure at Glovo and, as of today, I am focusing entirely on freelancing, building indie apps and creating content!
This is a step that I have wanted to take for a long time and the time to do so has finally come!
🔐 TIL that there is an Apple SDK that can help your BE verify that the requests come from a legitimate instance of your app!
🎉 This sounds great for protecting services using paid resources (like OpenAI)
Now that Xcode 15.3 has been released, I wanted to do a bit of an investigation and report on the current state of support in the most popular mobile CI/CD providers.
Check out the thread and get a clear picture of availability 🧵
💡 I recently discovered a Binding initializer that lets you safely unwrap its wrapped value and wrote a short article showing how to use it!
#iosdev
#swiftlang
#swiftui
There's a brand-new top-level Swift Packages in the website! 📦
The new page provides a way of discovering packages and has a number of categories you can filter by!
12 months ago today I lost one of the most important people in my life: my dad.
I loved him and admired him immensely, he always supported me in every decision I made and he was a constant source of inspiration.
His loss left a massive void in my heart that I will never be
🚀 App launch day! 🚀
Today I am releasing my first-ever solo app on the App Store: QReate. A native and fast QR code editor to make stunning QR codes ❤️
🎉 To celebrate the launch, I have set a special reduced price of £2.99 for the next two weeks!
As of Swift 5.9 (which ships with the Xcode 15 betas), you can make network requests from Swift Package Plugins! 🎉
I wrote an article a while back about how this works if you want get started 💪
#WWDC23
#iosdev
#swiftlang
Hit a big milestone on Twitter today 🎉
This means a lot not just because of the number but because of all the amazing people I have met on this platform, thanks everyone! ❤️
So happy to announce that I will be speaking at
@IOSDEVUK
this year! 🎉
This was the first in-person conference I ever attended and it means so much to come back this year as a speaker ❤️
Been working on a project recently called XcodeCloudKit.
The goal is to provide an Xcode Cloud focused SDK that brings together a bunch of App Store Connect API calls (which can be quite hard to follow and make) and provides a nice API ✨🧼
I'll Open Source it very soon! 👀
Today is my final day working at the BBC, and it also marks the start of my last two weeks in the UK as I'll be moving to Spain in October.
Although I'm feeling very sad about wrapping up my fantastic two-year journey at the BBC and bidding farewell to the incredible nine years
📝
@googledevs
have released a Swift SDK for running generative AI models such as Gemini!
💡 With the SDK, you can generate text from text or images and even build chat conversations as with ChatGPT!
#iosdev
#swiftlang
#ai
#gemini
💡 TIL that there is a way to validate that the associated domains for your app are set up correctly directly from your phone's developer settings!
✅ Used this recently to validate different paths of the NowPlaying website!
#iosdev
#swiftlang
Just a quick reminder that you can use URLComponents to build URLs with query components.
🌟 It is great because it automatically percent encodes any query item strings!
🔗
#iosdev
#swiftlang
A couple of weeks ago I was super lucky to give a talk at GitHub and got to speak about macOS and GitHub Actions with the team that builds the feature ❤️
If the experience hadn't been incredible enough already, yesterday I received a box full of GitHub swag too as a thank you
Had such a blast speaking at
@nyswifty
on Tuesday!
For anyone who couldn't make it, I thought I would make the slides available if you want to take a look. Feel free to reach out if you have any comments/questions about the talk!
👀 Well... I guess this is happening now! I have made a small football app so that you can collect tickets for all the football games you have been to, themed with your team's colours too! ❤️💙
🚀 As soon as it has been approved for external testing I will drop a TestFlight link
Really enjoyed giving my first ever talk in my hometown Barcelona last night! ❤️
Thanks so much for having me
@nsbarcelona
and
@icanzilb
for inviting me! 🙌
Great article from
@MarcoEidinger
on using `canImport(_:)`. 👏
I have been doing a lot of ServerSide Swift recently and `canImport` has proved to be my best friend to ensure cross-platform framework compatibility.
#iosdev
#swiftlang
📣 Calling all iOS Developers who want to skill up and learn about CI/CD 📣
I am running a FREE 2-hour webinar where I will give an introduction to CI/CD for iOS Developers and build a real-world CI/CD workflow for an iOS app!
👀 All you have to do is follow the instructions in
💡A couple of Xcode 16 tricks that can help you out during a refactor:
📋 Create a file from the clipboard (thanks
@hiddevdploeg
for letting me know about this!).
✂️ Create a file directly by pasting content directly into the file navigator.
#iosdev
#swiftlang
One of my favourite things (that I started doing more after
@dimsumthinking
's talk at
@IOSDEVUK
) about Previews is that you are free to simulate the environment the view will be showed in.
For example, when working on a component that will be shown in a navigation view 👀
I am at the airport now ready to return home after yet another amazing edition of
@IOSDEVUK
!
It is always great to be back in Wales, learn from so many inspiring speakers, meet many new people and see great friends!
Thanks for having me
@digidol
and
@chrisinaber
and congrats to
🛝 The slides for the talk I gave yesterday at
@swiftheroes_it
on how to build on-device Stable Diffusion experiences with CoreML are now available!
👀 If you couldn't attend and are interested in learning more about the topic, please message me!
I have just realised that, with tonight's article, I will have published 100 articles on my blog. Still feels surreal to think about how scared I was publishing the first one and how much I enjoy sharing weekly articles now 😱
✒️ Friendly reminder to all iOS content creators: If you have a blog, newsletter, podcast, YouTube channel or stream, make sure you add it to the iOS Dev Directory.
💡 Most newsletter curators, including myself, use this directory to discover content!
🚨 The Call For Papers for
@swift_leeds
has officially opened today! 🎉
🤞 I will be applying to it with a few talk ideas I have, so wish me luck! Anyone else applying to it?
Back from some much needed rest and time off with the family in Rome 🇮🇹
Ate loads of great food, drank amazing coffee and got to see pretty much everything too!
💡 Cool trick if you're namespacing
#SwiftData
models for each schema (as they do in WWDC Sessions).
Create a typealias to the model of your current schema and use this across your app so you only have to make a single type change when you update to a new schema version!
💡 Learnt about this at
@0xTim
's awesome talk on Tuesday at
@nyswifty
.
⭐️ The Swift Server group are currently working on a tool similar to rustup which allows you to install and manage multiple Swift toolchains regardless of your OS.
📝 Do you need a privacy manifest file that states why you're using one or more of Apple's required reason APIs?
🤩 Don't do it manually! Use
@DonnyWals
' website to generate it!
#iosdev
#swiftlang
Had such a great time at
@swiftheroes_it
this weekend and met loads of amazing people ❤️
As promised, I have now made the code and slides for my talk available for everyone to check out! ✨
👨💻 Code:
⬇️ Slides:
🎉 Had a blast speaking about how to make developer tools with Swift at
@IOSDEVUK
on Tuesday.
🛝 In case you missed the talk or are interested in taking a look at the slides, I have now made the deck available for everyone too!
📣 So happy to announce that I am going to be collaborating with
@RunwayTeam
as a part-time dev-rel!
I'm joining them on a mission to build their Open-Source presence and to also help them with content creation, which is something I love doing! ❤️
✍️ New article is live on my blog!
This time I show you how you can make a beautiful interactive picker component for your Swift CLI ✨
#iosdev
#swiftlang
I'm a big fan of Swift 5.7's Regex API and how much it simplifies things.
😞 It is a shame that it is only iOS 16+, maybe there is potentially for a back port library?
#iosdev
#swiftlang
A couple of weeks ago I learnt that you can add an Info.plist to single-file Swift executables.
🔓 This unlocks a number of possibilities, such as being able to use MusicKit directly from the terminal!
👉
As of Swift 5.9, we'll be able to make network requests from Swift package plugins with a single permission and without having to disable sandboxing 🎉
Read more 👉
#iosdev
#swiftlang
TIL there is an app which lets you change the colour of Xcode's app icon. 🎨
🌟 Useful if you have multiple versions of Xcode on your dock and want to tell them apart.
#iosdev
#xcode
Nearly done with prepping for my talk at NSBarcelona next week and App Talks in Manchester the week after!
I am super excited about this one, and I am also trying a new font pairing which is just 🔥
✍️ New article is live!
📦 This week I look at the upcoming Swift Package Manager changes in Swift 5.9 which allow making network requests from command plugins
#iosdev
#swiftlang
Asset symbol generation in Xcode 15 has to be one of the
#WWDC
highlights for me! 👏
💡 We no longer need a third party tool like R.swift of Swiftgen to generate Swift interfaces for Colour or Image assets!
So excited to announce that I will be speaking at
@nyswifty
in New York this year! I am over the moon, it will be my first time speaking in the US as well 🇺🇸
Hope to meet a lot of new people there!
#iosdev
#swiftlang
Xcode Cloud is Apple’s brand new CI/CD service deeply integrated into Xcode. In this talk, I’ll show you how to set it up for an existing app project completely from scratch and I will give tips and tricks on how to make it match your project’s needs.
If you are looking at making a
#Serverless
application using AWS lambdas, you should know that you can use Swift to build it thanks to the awesome swift-server group.
I have an article on the topic if you'd like to get started
#iosdev
#swiftlang
New Speaker 🤩
We are super excited to announce our next speaker as
@polpielladev
, who is currently an iOS Engineer
@BBCiPlayer
@BBCCareers
Other than coding, Pol loves football and making music. 🎹🎤
Grab your ticket now ⤵️
🚀 Conference ready!
🎉 All stickers have arrived, if you want an iOS CI Newsletter or a QReate sticker come up to me and ask for one at
@IOSDEVUK
or
@swift_leeds
🚀 New app alert! 🚀
I have built an app called Fosi that lets you save digital copies of tickets for football games you have attended. Your tickets come to life in Fosi with details such as in-game stats and pictures from the day.
#buildinpublic
First and foremost, if you are not familiar with micro-app architecture and using Swift Packages to modularise an iOS app,
@tundsdev
gave a brilliant talk on the topic at
@iosconfsg
📦
Very sad and gutted (waited until the last minute to see if I was feeling better) but unfortunately I won’t make
@swift_pl
this week 😭
Been under the weather for a couple of days and it’s gotten worse, so decided not to travel.
Have fun everyone attending, I’m sure it will be
Had such a great time at the first edition of
@swiftcraftuk
last week! ❤️
😊 It was great to meet new people, meet online friends IRL for the first time, and catch up with good friends I hadn't seen in a while!
⚠️ Has anyone been able to perform any SwiftData tasks in the background?
@hiddevdploeg
and I have been trying to do this for
@NowPlayingGold
and we're really struggling to find a way.
We have tried creating an actor conforming to SwiftData's ModelActor protocol and running all
✍️ Did you know you can now perform automatic a11y audits directly from Xcode 15?
You can make sure your app's elements:
🎨 Have enough colour contrast
💬 Resize with dynamic type
🔊 Labels are readable by VoiceOver
➕ Many more!
👉
#iosdev
#swiftlang
A nice surprise before the weekend. Say hi to our two new speakers
@leah_m_vogel
and
@polpielladev
They are joining our already fabulous list of speakers. ❤️
Meet them all on November 8 and 9 in Amsterdam.
(7 more speakers to go.)
Info and tickets at:
⏰ Friendly reminder that Swift 6 is right around the corner and that you can start getting your app ready for the big release!
⚠️ There are some source incompatible changes behind feature flags you can start adopting now!
#iosdev
#swiftlang
Finally done redesigning my blog, I am honestly sooo soo happy with the way it turned out ✨
💪 Still a few bits to do like updating the OG images, which I'll work on next week!
Massive thanks to
@nyswifty
for having me! ❤️
Met loads of awesome people and couldn’t have asked for a better place to do my first talk outside of Europe!! 🤩