1
00:00:03,112 --> 00:00:08,172
Hey folks, it's been a while, but welcome
to another episode of Empower Apps.

2
00:00:09,232 --> 00:00:14,572
I got back from my wonderful trip
to England and speaking and doing a

3
00:00:14,612 --> 00:00:20,562
workshop at Swift Craft just recovered
from a wonderful case of strep, but

4
00:00:20,952 --> 00:00:24,672
I am excited to be here to talk to
you about what's new and what's been

5
00:00:24,792 --> 00:00:26,432
happening in the last 10 months.

6
00:00:27,932 --> 00:00:34,581
Obviously, the big thing in software
development has been AI and AI dev

7
00:00:34,661 --> 00:00:39,821
tooling, agentic-assisted development.

8
00:00:40,461 --> 00:00:43,481
So we'll definitely be
talking about that today.

9
00:00:43,501 --> 00:00:46,471
But I want to start off by talking
about my conferences this year.

10
00:00:47,501 --> 00:00:52,931
So that's essentially my plan for
the summer is I just finished up

11
00:00:53,091 --> 00:00:55,181
Swift Craft That was wonderful.

12
00:00:55,241 --> 00:00:58,261
That was in Folkestone back in May.

13
00:00:59,361 --> 00:01:03,101
I ran a three-hour workshop
on Swift automation.

14
00:01:03,181 --> 00:01:07,121
I'm hoping to continue posting
blog posts, videos about that.

15
00:01:07,681 --> 00:01:13,481
If you've seen my work on Tuist
and Mise, I go into details about

16
00:01:13,541 --> 00:01:18,851
how to set up a project there, and
hopefully that that will be a start

17
00:01:18,891 --> 00:01:20,371
of a blog series I'll be doing.

18
00:01:20,431 --> 00:01:25,831
I'm working on a thing on Fastlane
and Swift packages and CI, so

19
00:01:25,851 --> 00:01:27,151
be on the lookout for those.

20
00:01:27,891 --> 00:01:32,051
And then, of course, I did my
talk on CloudKit for the server,

21
00:01:32,071 --> 00:01:36,931
and specifically talking about
MistKit which we'll get into later.

22
00:01:37,011 --> 00:01:39,111
And I just had a really great experience.

23
00:01:39,351 --> 00:01:42,611
Kevin put on a great conference,
and it was great to see folks like

24
00:01:42,711 --> 00:01:49,371
Joannis talk about WendyOS and
Daniel do his talk on Breathe.

25
00:01:49,811 --> 00:01:55,231
Which, you know, nowadays I
find this myself, that, I feel

26
00:01:55,241 --> 00:01:57,051
like my work is more focused.

27
00:01:57,171 --> 00:02:02,091
I've … If I can find the article that
I had read, but I find that my work

28
00:02:02,211 --> 00:02:06,591
is faster and more intense with AI.

29
00:02:06,971 --> 00:02:12,291
So, you know, I really appreciated
pun intended, Daniel's f- breath of

30
00:02:12,321 --> 00:02:15,841
fresh air in regards to that, and just
taking breaks and things like that.

31
00:02:15,981 --> 00:02:21,061
Really great talks from Oliver Binz on
foundation models, which I've just started

32
00:02:21,071 --> 00:02:25,921
playing around with, and I'm excited to
see what more gets done next week at WWDC.

33
00:02:26,741 --> 00:02:32,401
And then Jan from the Apple Developer
Academy in Naples, which was really

34
00:02:32,461 --> 00:02:41,601
cool, and stuff from Lucy about the
about enums, which I totally agree with.

35
00:02:41,981 --> 00:02:44,601
They'll hopefully share videos, 'cause
there were some really good talks.

36
00:02:45,281 --> 00:02:46,821
I can't even go and list them all.

37
00:02:47,621 --> 00:02:55,001
But yeah, and then that was Swift Craft
and then I'll be speaking in Grand Rapids

38
00:02:55,081 --> 00:02:57,661
this August fift- 14th through 15th.

39
00:02:58,501 --> 00:03:01,581
I'll be speaking the
15th at Beer City Code.

40
00:03:01,761 --> 00:03:08,101
I'll be doing my Swift automation
workshop, but as a talk, and

41
00:03:08,181 --> 00:03:11,751
then I'll also be talking about
vibe coding and agentic software

42
00:03:11,771 --> 00:03:14,471
development there as well.

43
00:03:14,551 --> 00:03:17,331
So be on the lookout for that as well.

44
00:03:18,091 --> 00:03:24,041
If you're interested in getting a preview
of that, I did that at the Boston and New

45
00:03:24,071 --> 00:03:26,911
York developer groups earlier this year.

46
00:03:27,731 --> 00:03:31,881
So if you I'll put a link to
the Boston talk specifically

47
00:03:32,501 --> 00:03:33,791
so you can check that out.

48
00:03:34,381 --> 00:03:41,201
And then I will be in Wales this
September to speak at iOSDevUK

49
00:03:43,841 --> 00:03:48,481
and there I will be giving my
talk on CloudKit as the backend.

50
00:03:49,201 --> 00:03:53,301
So, more stuff about MistKit so
I'm excited for that as well.

51
00:03:54,001 --> 00:03:57,741
Just kind of want to give you,
you know, my brief views on AI,

52
00:03:58,041 --> 00:04:01,341
'cause there's been a lot going on.

53
00:04:01,351 --> 00:04:07,311
I feel like we're current- sort of at a
somewhat bubble phase with regards to it.

54
00:04:07,881 --> 00:04:09,541
I'm kind of hearing a lot more

55
00:04:12,452 --> 00:04:17,753
Companies are not really interested
in getting you to spend as

56
00:04:17,813 --> 00:04:20,172
much on tokens as you used to.

57
00:04:21,032 --> 00:04:24,293
And I was pretty skeptical of
it at first, just with being

58
00:04:24,373 --> 00:04:27,772
burnt on VR NFTs in crypto.

59
00:04:28,333 --> 00:04:31,013
It felt like the latest new thing.

60
00:04:31,213 --> 00:04:35,853
But then as I started using ChatGPT in
'22, you know, I could see, yeah, this

61
00:04:35,913 --> 00:04:37,513
is actually really useful for things.

62
00:04:38,353 --> 00:04:41,433
And lately I've deep dived into it.

63
00:04:41,533 --> 00:04:46,192
A lot of my work over the last year
has been all done through Claude Code.

64
00:04:46,953 --> 00:04:50,293
Starting to try to get more into Codex
and other things I wanna learn, like

65
00:04:50,473 --> 00:04:53,733
skills and agents and that kind of stuff.

66
00:04:54,693 --> 00:05:00,846
And I think where it really excels is a
lot of boilerplate and tests and docs.

67
00:05:01,006 --> 00:05:05,146
If it, if there's a pattern, existing
pattern out there, it's pretty good

68
00:05:05,186 --> 00:05:06,836
at applying that to what you're doing.

69
00:05:08,236 --> 00:05:11,846
I think what's gonna end up being a
problem in the next couple weeks is Apple

70
00:05:11,866 --> 00:05:16,246
is not gonna have a lot of… Well, Apple
will have some example code, but the

71
00:05:16,286 --> 00:05:18,566
models at least won't be trained on it.

72
00:05:18,686 --> 00:05:22,346
So I think that's gonna
be a problem next week.

73
00:05:22,386 --> 00:05:26,546
We'll see if new APIs and various
things are gonna be available.

74
00:05:26,706 --> 00:05:32,946
I know it took me six months to teach it
that macOS 26 and iOS 26 were actually

75
00:05:32,986 --> 00:05:36,626
real and released, but hopefully we
don't run into that again with 27.

76
00:05:36,986 --> 00:05:38,246
We'll see.

77
00:05:38,346 --> 00:05:42,526
But yeah, in my talk I go over more
stuff like power grabbing issues and

78
00:05:42,876 --> 00:05:45,876
misaligned testing and things like that.

79
00:05:46,036 --> 00:05:51,296
So we'll, yeah, we'll talk about
that in a future video hopefully.

80
00:05:51,946 --> 00:05:55,526
And you can also check my talk as
well at Beer City Code, or check

81
00:05:55,546 --> 00:05:57,606
out the video I did at Boston.

82
00:05:59,566 --> 00:06:04,236
So when it comes to s- the Swift
automation stuff, what I talk about

83
00:06:04,296 --> 00:06:11,296
there is kind of how we have this great
AI tool available to us, and what I'm

84
00:06:11,316 --> 00:06:20,136
trying to set up now is a way to like
automate a lot of the process that takes

85
00:06:20,196 --> 00:06:24,836
away from the creativity, I guess, and
the coding of developing a, an app.

86
00:06:25,176 --> 00:06:30,116
Things like setting up your Xcode project,
setting up your App Store, Fastlane

87
00:06:30,276 --> 00:06:36,706
stuff so you can get a smooth delivery
to the App Store CI, your developer

88
00:06:36,796 --> 00:06:42,516
tools, et cetera, and have it easily
re- repli- replicatable, not only in CI,

89
00:06:42,616 --> 00:06:44,836
but for other developers on your team.

90
00:06:44,956 --> 00:06:48,626
One of the things I do is I've built
and I just released a new version,

91
00:06:48,806 --> 00:06:52,866
1.5.5 I believe, of swift-build
which allows you to easily build a

92
00:06:52,906 --> 00:06:57,246
Swift package for any platform or OS.

93
00:06:57,286 --> 00:06:58,296
And that means for visionOS,

94
00:07:00,436 --> 00:07:07,286
for Windows Server 2025, for Android,
for WASM if you're doing web stuff.

95
00:07:07,886 --> 00:07:09,026
It does all that.

96
00:07:09,126 --> 00:07:13,526
And it makes it really easy for you to set
up a Swift package CI for all those OSs.

97
00:07:14,986 --> 00:07:16,246
So yeah, I'm kind of working on that.

98
00:07:16,286 --> 00:07:23,066
That was basically the crux of my workshop
and it is what what I'll be doing my

99
00:07:23,106 --> 00:07:27,606
blog series on and hopefully we'll
get some videos out on that as well.

100
00:07:27,726 --> 00:07:31,686
So yeah, that would be the
Swift automation side of things

101
00:07:31,746 --> 00:07:33,216
as far as AI is concerned.

102
00:07:34,901 --> 00:07:40,621
And then as far as projects that I've
been working on, so we've got packages.

103
00:07:40,901 --> 00:07:44,441
I jumped back into MistKit I did
a whole talk about how I jumped

104
00:07:44,481 --> 00:07:49,321
back into it, thanks to Cl- Claude
Code and the OpenAPI generator.

105
00:07:49,841 --> 00:07:52,921
Hopefully that'll come out,
and then you probably will see

106
00:07:53,001 --> 00:07:54,541
my blog post on that as well.

107
00:07:55,261 --> 00:07:59,561
But basically, the idea behind MistKit is
I've run into situations … Previously

108
00:07:59,561 --> 00:08:05,062
with Heartwitch I had been doing some
stuff where I was allowing you to link

109
00:08:05,121 --> 00:08:10,672
your Apple Watch to the website using
CloudKit, and so I had to use MistKit

110
00:08:11,263 --> 00:08:17,022
for, of the Vapor app to pull your
Apple Watch essentially from that.

111
00:08:17,062 --> 00:08:19,542
And then the, that way your Apple
Watch can easily authenticate

112
00:08:19,603 --> 00:08:20,982
and send health stats.

113
00:08:21,882 --> 00:08:25,843
So, that was the private database,
but then I've started more dabbling

114
00:08:25,884 --> 00:08:27,363
into the public database stuff.

115
00:08:27,983 --> 00:08:33,643
With Bushel, I wanna move over all the
restore images and that, that database

116
00:08:33,703 --> 00:08:38,503
to a public CloudKit database, and then
that way there's a central repo where

117
00:08:38,563 --> 00:08:45,055
you can pull up all the versions of
macOS that you can run in a Bushel VM.

118
00:08:45,154 --> 00:08:46,275
So I'm working on that.

119
00:08:47,194 --> 00:08:51,014
And there's another app I'm working
on, if you've heard about, where I was

120
00:08:51,055 --> 00:08:58,004
gonna u- have MistKit use that to pull
RSS feeds and store that in CloudKit.

121
00:08:58,425 --> 00:09:01,944
So there were a lot of things
where CloudKit on the server made

122
00:09:02,024 --> 00:09:04,925
sense, and that's where MistKit is.

123
00:09:05,044 --> 00:09:09,704
I'm, like, got … I wanna say
there's a few things with Zones I

124
00:09:09,745 --> 00:09:14,145
gotta finish up and some stuff with
sharing that I need to get into.

125
00:09:14,204 --> 00:09:17,724
I just added subscriptions and
notifications, which is really sweet.

126
00:09:17,804 --> 00:09:23,465
So yeah, we talked about swift-build
SyntaxKit I want to keep working on that.

127
00:09:23,515 --> 00:09:26,955
Building a DSL for creating Swift code.

128
00:09:27,215 --> 00:09:31,285
It'll be really helpful for folks who are
doing anything with macros 'cause they

129
00:09:31,315 --> 00:09:35,735
can h- basically write Swift code using
s- kind of like a SwiftUI-type syntax.

130
00:09:36,555 --> 00:09:40,075
I'm excited for that, and I'll
be… It's a really great way to

131
00:09:40,115 --> 00:09:44,935
experiment with AI and agentic coding,
so yeah, that's gonna be awesome.

132
00:09:45,555 --> 00:09:49,615
And then as far as apps, obviously
I'll keep working on Bushel.

133
00:09:49,735 --> 00:09:53,195
I'm working on some really cool stuff
with guest tools and the thing with

134
00:09:53,405 --> 00:09:55,445
CloudKit, so that'll be moving along.

135
00:09:56,165 --> 00:09:59,965
And then I've run into an issue where
there's some tools, agentic tools,

136
00:10:00,035 --> 00:10:02,365
where the tokens reset every month.

137
00:10:03,305 --> 00:10:11,665
So I've begun a r- launch an app called
MonthBar which allows you to see how much

138
00:10:11,705 --> 00:10:17,425
is left in the month, and that way you can
kind of gauge whether what type of model

139
00:10:17,525 --> 00:10:23,805
you wanna use and whether you want to
use a more high effort, expensive model,

140
00:10:24,105 --> 00:10:29,355
or you want to use a cheaper model until
your time is up and then start switching.

141
00:10:29,445 --> 00:10:31,505
So definitely check out MonthBar there.

142
00:10:32,505 --> 00:10:36,545
And then I am currently working
on a watchOS app called At Least.

143
00:10:37,445 --> 00:10:42,595
I do s- stuff like exercises
or meditations where it's not

144
00:10:42,625 --> 00:10:46,525
really a… Like I don't want
to set a timer for when to stop.

145
00:10:47,325 --> 00:10:50,525
I want to set a timer for how
long I want to do it for at

146
00:10:50,585 --> 00:10:51,885
least a certain amount of time.

147
00:10:53,225 --> 00:10:58,605
And so the idea would be is like
I want to do like pushups for a

148
00:10:58,645 --> 00:11:03,665
minute, but I, if I do it more than a
minute, like b- better for it, right?

149
00:11:03,745 --> 00:11:08,335
Or I'd want to do a meditation for
15 minutes, but at least 15 minutes.

150
00:11:08,345 --> 00:11:09,825
But if I go over, that's fine.

151
00:11:09,845 --> 00:11:11,285
If I go under, that's a problem.

152
00:11:11,705 --> 00:11:17,045
And so the idea behind At Least is
it uses haptics to tap your wrist

153
00:11:17,325 --> 00:11:19,795
while you're active doing something.

154
00:11:20,675 --> 00:11:24,895
And you could set how strong
you want those taps are, and

155
00:11:24,995 --> 00:11:28,935
then the taps will… It'll stop
tapping you when the timer is up.

156
00:11:30,319 --> 00:11:35,459
And then you can tap it on your wrist
to stop the timer, and it'll let you

157
00:11:35,479 --> 00:11:37,889
know if you're done or not, basically.

158
00:11:37,919 --> 00:11:41,079
So that is currently in TestFlight
so you can check that out.

159
00:11:41,119 --> 00:11:42,239
I'll post a link to the website.

160
00:11:42,279 --> 00:11:45,219
It's atleast.app, and
MonthBar is month.bar.

161
00:11:45,779 --> 00:11:48,649
Really memorable names for domains.

162
00:11:49,209 --> 00:11:50,409
So check that out.

163
00:11:50,529 --> 00:11:55,569
I'm looking forward to more testers
and users of these apps and ideas, so

164
00:11:55,609 --> 00:12:01,309
let me know in the comments below or in
the reviews or social media, whatever.

165
00:12:02,259 --> 00:12:05,649
So, as far as, like, work right
now, I I am looking for new work.

166
00:12:05,949 --> 00:12:10,569
I am looking to help your team when it
comes to Swift, agentic development.

167
00:12:10,599 --> 00:12:12,929
It could be freelance,
contract, part-time, full-time

168
00:12:13,869 --> 00:12:15,499
dev relations, SDK work.

169
00:12:15,889 --> 00:12:16,389
Let me know.

170
00:12:16,429 --> 00:12:17,589
Reach out to me.

171
00:12:17,709 --> 00:12:20,189
I am available for that this summer.

172
00:12:20,229 --> 00:12:26,068
And then I'm gonna be offering my time
for free to folks who need help with

173
00:12:26,098 --> 00:12:29,858
their software development career,
need some guidance or coaching.

174
00:12:29,938 --> 00:12:34,218
Or if you want some help with
AI-assisted development automation,

175
00:12:34,338 --> 00:12:39,178
CI automation, Swift-specific
automation yeah, let's chat.

176
00:12:39,398 --> 00:12:41,078
I'm offering my time to you.

177
00:12:41,648 --> 00:12:43,108
It's 30-minute slots.

178
00:12:43,618 --> 00:12:48,507
I'll post a link to the consultation
s- calendar through ZCal.

179
00:12:48,568 --> 00:12:52,388
It's zcal.co/leogdion/consultation.

180
00:12:53,168 --> 00:12:55,978
Or you can just email me
leo@brightdigit.com or

181
00:12:56,028 --> 00:12:56,988
reach out to me on social.

182
00:12:57,088 --> 00:13:00,608
But if you wanna get a slot,
get them quickly it… 'cause

183
00:13:00,628 --> 00:13:01,608
they're gonna be going fast.

184
00:13:01,708 --> 00:13:04,278
So free 30-minute consultation,
zcal.co/leogdion/consultation

185
00:13:10,960 --> 00:13:14,260
last but not least, as far as
podcasts, I'll be recording

186
00:13:14,300 --> 00:13:15,620
episodes at least this summer.

187
00:13:16,280 --> 00:13:21,100
With WWDC coming, I wanna get those
in, and I wanna talk about what's new,

188
00:13:21,160 --> 00:13:24,020
and I wanna talk about AI, I wanna
talk about what the future of Swift.

189
00:13:24,900 --> 00:13:28,550
So reach out to me if you're
interested in coming on.

190
00:13:28,620 --> 00:13:29,600
I'd love to hear from you.

191
00:13:30,580 --> 00:13:34,100
The next episode will be the one with
Joannis which I'm recording tomorrow.

192
00:13:34,820 --> 00:13:38,970
So I'm excited to talk to Joannis His
stuff with WendyOS is really interesting.

193
00:13:39,050 --> 00:13:42,230
I enjoyed his show- his showcase,
his what do you call it?

194
00:13:43,490 --> 00:13:44,050
Workshop.

195
00:13:44,890 --> 00:13:48,530
So I'm really excited to check
that out and talk about that on

196
00:13:48,550 --> 00:13:50,610
the podcast about Swift Everywhere.

197
00:13:51,590 --> 00:13:55,600
So we did that episode with
Mark on Android, so we'll be

198
00:13:55,640 --> 00:13:56,920
kind of expanding on that.

199
00:13:57,900 --> 00:14:03,360
And then, I will be doing another
episode with Peter next Monday June 8th.

200
00:14:04,080 --> 00:14:09,060
The … We'll figure out a time,
but basically another keynote and

201
00:14:09,219 --> 00:14:11,160
platform state of the union discussion.

202
00:14:12,080 --> 00:14:17,080
If you're on Patreon, you can check
out the live stream we'll be doing.

203
00:14:17,340 --> 00:14:19,420
We might even do it on
YouTube for everybody else,

204
00:14:19,520 --> 00:14:22,760
so check that out for sure.

205
00:14:22,800 --> 00:14:26,740
And then I'm working on getting
the newsletter back up, moving

206
00:14:26,780 --> 00:14:30,280
that from Mailchimp to Buttondown,
which is gonna be so much nicer.

207
00:14:31,000 --> 00:14:34,380
So if you're not a subscriber to
the newsletter, I'll post a link

208
00:14:34,660 --> 00:14:36,980
in the notes, so check that out.

209
00:14:37,920 --> 00:14:41,310
And then I just wanna thank everybody
first of all, my Patreon supporters,

210
00:14:41,890 --> 00:14:47,280
like Steve Lipton, who've really
helped me a lot with everything and

211
00:14:47,360 --> 00:14:51,240
that's been fantastic, but the folks on
social media as well who've been really

212
00:14:51,280 --> 00:14:54,340
encouraging and loved some of the stuff
I've been putting out this year already.

213
00:14:55,100 --> 00:14:57,900
If you're not a Patreon supporter,
definitely consider it, because more and

214
00:14:57,920 --> 00:15:03,040
more stuff is gonna be going there and
early access to episodes, discussions,

215
00:15:03,640 --> 00:15:05,180
you know, first access to stuff.

216
00:15:05,220 --> 00:15:06,340
So check that out.

217
00:15:08,055 --> 00:15:10,175
Subscribe to the newsletter
https://buttondown.com/brightdigit

218
00:15:12,975 --> 00:15:14,515
Link again in the show notes.

219
00:15:14,815 --> 00:15:19,114
And then if you like my show, a
review would be super helpful.

220
00:15:19,854 --> 00:15:23,633
Please leave a review in your
podcast player or subscribe.

221
00:15:24,394 --> 00:15:27,235
Like and subscribe, I believe is
what they say on YouTube, so that

222
00:15:27,274 --> 00:15:28,915
would be super helpful as well.

223
00:15:29,774 --> 00:15:30,554
Thank you again.

224
00:15:30,814 --> 00:15:34,774
I am glad to be back, and I'm looking
forward to chatting with Joannis tomorrow

225
00:15:34,835 --> 00:15:36,194
and chatting with Peter next week.

226
00:15:36,734 --> 00:15:39,654
So subscribe to the podcast, subscribe
to the YouTube channel if you wanna

227
00:15:39,675 --> 00:15:40,994
make sure you don't miss those.

228
00:15:41,734 --> 00:15:49,154
And then, yeah, follow me on social
media @leogdion, @leogdion@c.im.

229
00:15:49,195 --> 00:15:50,474
My company is BrightDigit.

230
00:15:51,434 --> 00:15:54,474
Again, if you wanna chat
with me, I'm available.

231
00:15:54,794 --> 00:16:00,554
You can schedule a time at
zcal.co/leogdion/consultation.

232
00:16:02,515 --> 00:16:05,374
Thank you everybody, and I
look forward to talking again.

233
00:16:05,634 --> 00:16:05,874
Bye.