1
00:00:01,272 --> 00:00:01,822
Hey, everybody.

2
00:00:01,862 --> 00:00:04,182
Welcome to the July update.

3
00:00:04,252 --> 00:00:07,602
It's been a half a year, but I wanted
to give you updates since the last

4
00:00:07,602 --> 00:00:12,851
episode back in 204 about what I've been
working on and how things are going.

5
00:00:12,952 --> 00:00:21,141
So WWDC has come and gone, and the one app
I'm working on that is heavily into the

6
00:00:21,161 --> 00:00:24,012
foundation model stuff is my app Celestra.

7
00:00:24,842 --> 00:00:30,051
I started building it after last year's
WWDC and really haven't picked it back up

8
00:00:30,141 --> 00:00:34,422
because, I just wasn't really satisfied
with the suggestions I was getting.

9
00:00:35,182 --> 00:00:41,602
So it's a RSS reader, and one of the
key parts about it is suggesting RSS

10
00:00:41,602 --> 00:00:47,961
feeds, and it tended to be kind of very
repetitive about what it suggested.

11
00:00:48,531 --> 00:00:53,791
So I'm gonna go through that again and
see what I can do to improve that now that

12
00:00:53,792 --> 00:01:00,702
we have a lot more tools in foundation
models and core AI and all of those APIs.

13
00:01:01,991 --> 00:01:07,352
I want an app that somebody who's kind
of a novice when it comes to RSS can pick

14
00:01:07,352 --> 00:01:12,241
it up and start reading articles from
feeds that they don't even know about.

15
00:01:12,621 --> 00:01:17,312
So that's kind of the gist of what
I'm gonna be doing this summer.

16
00:01:17,821 --> 00:01:22,641
There's a few things with VM stuff and
virtualization I wanna pick up with Bushel

17
00:01:22,641 --> 00:01:25,432
and some new, new stuff with workouts.

18
00:01:25,461 --> 00:01:31,211
But otherwise, yeah, Celestra's gonna
be the main focus as far as things

19
00:01:31,211 --> 00:01:33,341
I'm gonna do that involve WWDC.

20
00:01:33,361 --> 00:01:35,641
So be on the lookout for that.

21
00:01:35,701 --> 00:01:36,482
Swift Build.

22
00:01:36,482 --> 00:01:42,841
is my open source GitHub action for
building Swift packages on multiple

23
00:01:42,871 --> 00:01:44,721
operating systems and platforms.

24
00:01:45,161 --> 00:01:49,071
Recently done some fixes to the
way the caching works, added

25
00:01:49,071 --> 00:01:51,081
support for nightly Swift versions.

26
00:01:51,081 --> 00:01:55,951
So if you wanna go on Ubuntu and build
it for what is currently nightly is

27
00:01:55,961 --> 00:01:59,401
6.4, which will be coming out probably
sometime in September or October.

28
00:01:59,771 --> 00:02:03,231
So you can start building off
of beta versions of Swift, 6.4.

29
00:02:04,341 --> 00:02:05,701
Let's see, what else have I done?

30
00:02:07,049 --> 00:02:09,839
We've auto-calculating Xcode schemes.

31
00:02:09,859 --> 00:02:12,829
You had to put in the scheme
for building a Swift package.

32
00:02:12,839 --> 00:02:17,119
If you're doing anything Swift packages
and you wanna test it on WASM or Android

33
00:02:17,119 --> 00:02:19,409
or Windows, definitely check that out.

34
00:02:19,499 --> 00:02:21,039
It's pretty solid there.

35
00:02:21,869 --> 00:02:24,549
The big app I've been working
on lately has been At Least.

36
00:02:24,609 --> 00:02:28,079
At Least is what I like
to call a reverse timer.

37
00:02:28,089 --> 00:02:34,729
It's for folks who do meditations
or exercises and don't wanna be

38
00:02:34,729 --> 00:02:36,649
notified when the timer has gone off.

39
00:02:36,649 --> 00:02:40,039
They wanna be notified when to keep
going and when not to keep going.

40
00:02:40,619 --> 00:02:43,429
For instance, like, I like to
just have, like, a breathing

41
00:02:43,429 --> 00:02:45,859
exercise that I do, and we'll do it

42
00:02:45,979 --> 00:02:49,699
I'll say, "I wanna do it for at least
five minutes." I don't want to have

43
00:02:49,709 --> 00:02:51,459
the buzzer to go off at five minutes.

44
00:02:51,539 --> 00:02:54,069
I just wanna know that
I need to keep going.

45
00:02:54,389 --> 00:02:55,609
And the way I do that is I use haptics.

46
00:02:56,559 --> 00:03:00,979
So it taps your wrist when to
keep going every minute or so.

47
00:03:00,979 --> 00:03:03,729
And once it stops tapping you,
you know you've met that minimum

48
00:03:03,729 --> 00:03:07,949
time and can either stop or
just keep going if you want to.

49
00:03:08,519 --> 00:03:12,189
The big feature I'm working on is
iPhone to Apple Watch communication.

50
00:03:12,469 --> 00:03:13,589
I've been doing that a lot.

51
00:03:13,839 --> 00:03:21,303
And what I've ended up building is a new
package product called SundialKitContext.

52
00:03:21,843 --> 00:03:24,793
And if you know anything about my
suite of libraries when it comes to

53
00:03:24,793 --> 00:03:29,523
SundialKit, they're specially for
iPhone to Apple Watch communication

54
00:03:29,583 --> 00:03:31,063
as well as network awareness.

55
00:03:31,523 --> 00:03:38,633
And SundialKitContext has really
improved the experience as far as

56
00:03:38,643 --> 00:03:40,903
communicating between watch and phone.

57
00:03:40,913 --> 00:03:44,383
It does a lot of stuff with, like,
revisions, stale windows, and

58
00:03:44,383 --> 00:03:48,503
things like that, so that way it's
a much more cleaner experience.

59
00:03:48,503 --> 00:03:52,193
So now you can go on the phone, you
can pick, you know, your minimum time.

60
00:03:52,563 --> 00:03:56,123
The watch will update, and then you
just tap start on the watch to begin.

61
00:03:56,663 --> 00:04:00,453
Eventually I'll be adding stuff like
being able to do the timer with just the

62
00:04:00,453 --> 00:04:05,963
phone or being able to use the HealthKit
workout API to just be able to start

63
00:04:05,963 --> 00:04:07,863
the timer right on the phone itself.

64
00:04:08,763 --> 00:04:12,583
But for now that's what will
be coming out in the next beta.

65
00:04:12,603 --> 00:04:15,593
And then after that, I'm
gonna really work on haptics.

66
00:04:15,623 --> 00:04:20,263
I've had some feedback about
haptics being too subtle, so be

67
00:04:20,263 --> 00:04:21,723
on the lookout for that as well.

68
00:04:23,537 --> 00:04:27,037
The other big project I've been
working on is updating the website.

69
00:04:27,097 --> 00:04:30,627
It shouldn't look any different,
but behind the scenes I'm

70
00:04:30,627 --> 00:04:32,177
working on doing a major upgrade.

71
00:04:32,187 --> 00:04:36,537
It uses, Publish by John
Sundell, a fantastic library.

72
00:04:36,907 --> 00:04:39,057
But I'm in the process of upgrading it.

73
00:04:39,117 --> 00:04:42,697
I created a fork, and then I'm upgrading
it, and then I'm removing a lot

74
00:04:42,697 --> 00:04:46,097
of third-party libraries in favor
of first-party ones, for instance.

75
00:04:46,527 --> 00:04:52,667
So like migrating from Shellout
to Subprocess, Ink to Swift

76
00:04:52,667 --> 00:04:54,537
Markdown, and things like that.

77
00:04:54,907 --> 00:04:57,357
A lot of upgrades to my
own open source libraries.

78
00:04:57,387 --> 00:05:02,577
I'm trying to upgrade to Swift 6.4,
which is still obviously in beta, or

79
00:05:02,577 --> 00:05:06,147
Swift 6.3, and I'm working on that.

80
00:05:06,447 --> 00:05:08,307
It's been working pretty smoothly.

81
00:05:08,967 --> 00:05:12,277
The next step, I'm gonna try to see
if I can work with the Swift-Node

82
00:05:12,327 --> 00:05:15,027
Interop stuff there to get NPM to work.

83
00:05:15,567 --> 00:05:19,337
So you wanna run like a node
module or like some sort of

84
00:05:19,357 --> 00:05:21,007
post-processing stuff with node.

85
00:05:21,357 --> 00:05:22,467
You can do that as well.

86
00:05:22,477 --> 00:05:24,427
I currently do that with
the website with Tailwind.

87
00:05:24,957 --> 00:05:28,387
Yeah, you can check out
the brightdigit.com repo.

88
00:05:28,407 --> 00:05:29,197
It's open source.

89
00:05:29,217 --> 00:05:30,617
I'll put a link in the show notes.

90
00:05:31,107 --> 00:05:32,877
So be on the lookout for that.

91
00:05:33,587 --> 00:05:36,877
Part of the like the big thing that I've
been doing lately is working on open

92
00:05:36,877 --> 00:05:39,757
source libraries within certain products.

93
00:05:39,837 --> 00:05:44,347
So brightdigit.com at least, and some
of the other work I've been doing

94
00:05:44,457 --> 00:05:46,437
I use what's called, Git subrepo.

95
00:05:46,437 --> 00:05:50,547
So you probably heard of submodules
and a few other ways of working on

96
00:05:50,717 --> 00:05:52,377
multiple repos at the same time.

97
00:05:52,867 --> 00:05:56,207
Ben Sherman got me into Git
subrepo, so you can check that out.

98
00:05:56,727 --> 00:06:00,027
And what is really great
about it is it works.

99
00:06:00,037 --> 00:06:02,237
It's like a lot better than submodules.

100
00:06:02,237 --> 00:06:05,817
And so what I'll have is like a
directory of packages, and each

101
00:06:05,817 --> 00:06:07,637
will have been a subrepo clone.

102
00:06:08,217 --> 00:06:14,447
And subrepo has its set of commands to
do up pulls and pushes and dealing with

103
00:06:14,447 --> 00:06:16,927
that, and sometimes I run into conflicts.

104
00:06:17,377 --> 00:06:20,307
Thankfully, we live in a AI-assisted
age that can help with that.

105
00:06:20,837 --> 00:06:24,737
I use, local packages to
refer to other dependencies.

106
00:06:25,167 --> 00:06:28,707
So you can check out brightdigit.com
for an example of how I do that.

107
00:06:29,007 --> 00:06:32,267
If this is a topic you're interested
and wanna hear more about, let me know.

108
00:06:32,607 --> 00:06:36,797
I'd love to talk about how I can
develop, say, a closed source product

109
00:06:37,157 --> 00:06:41,987
with open source packages or
multiple open source Swift packages

110
00:06:41,987 --> 00:06:44,297
at the same time using subrepo.

111
00:06:44,407 --> 00:06:46,237
Let me know if that's
something you're interested in.

112
00:06:47,453 --> 00:06:51,293
Before I go I wanted to let you know
I'm still available for consultation.

113
00:06:51,313 --> 00:06:56,353
Again, if you need help with Swift
automation, AI-assisted development,

114
00:06:56,843 --> 00:07:02,663
or just career coaching you can
reach out to me, on my ZCal link and

115
00:07:02,723 --> 00:07:06,093
just reserve a spot, and I'd love
to see what I can do to help you.

116
00:07:06,593 --> 00:07:11,023
I've had some really great meetings with
some awesome developers who are just

117
00:07:11,263 --> 00:07:14,843
wanting to know what's the next steps
in their career, so check that out.

118
00:07:15,483 --> 00:07:20,523
And, I can't go without saying thank
you to my Patreon supporters, like

119
00:07:20,523 --> 00:07:22,223
Steve Lipton, thank you so much.

120
00:07:22,253 --> 00:07:25,733
It's been providing me a lot of the
momentum that I need to keep going.

121
00:07:26,213 --> 00:07:30,913
If there's anything you want , I
highly recommend joining our Patreon.

122
00:07:30,913 --> 00:07:32,253
Episodes come out early.

123
00:07:32,293 --> 00:07:36,443
There's a lot of exclusives as far as
things I'm working on and stuff like that.

124
00:07:36,993 --> 00:07:40,013
Let me know also if you have
any suggestions about topics you

125
00:07:40,013 --> 00:07:41,253
want me to talk about as well.

126
00:07:41,683 --> 00:07:46,633
I'll be posting the episode for Donny
pretty soon, and then I'll be doing an

127
00:07:46,653 --> 00:07:51,773
interview with Saleem who is basically
the person behind Swift for Windows.

128
00:07:51,803 --> 00:07:55,493
So I'll be setting up Windows sometime
in the next, week so I can play

129
00:07:55,493 --> 00:07:57,273
around with that before I talk to him.

130
00:07:57,743 --> 00:07:58,643
So check that out.

131
00:07:58,693 --> 00:08:03,053
If you haven't subscribed, subscribe to
the newsletter, subscribe to the podcast.

132
00:08:03,583 --> 00:08:06,673
And if you like this, post a review
in your favorite podcast player.

133
00:08:07,323 --> 00:08:08,693
We'll talk to you later.

134
00:08:08,723 --> 00:08:09,333
Bye, everybody