Leo Dion (host): Welcome to another episode, Empower Apps.
I'm your host, Leo Dion.
Today I'm joined by Antoine van der Lee.
Antoine, thank you so much for coming back on the show.
Antoine van der Lee (guest): Thank you for reinviting me over.
It's a pleasure to be here.
Leo Dion (host): It's been a while in, just in case there's like two
or three people listening to this podcast who don't know who you are.
Cuz they live under a rock.
Can you go ahead and introduce yourself?
Yeah, totally,
Antoine van der Lee (guest): totally.
Yeah, so I'm probably most known from my form of my blog called
Swiftly, where I write articles.
I think since 2000.
Every week.
I got my newsletter as well, sweetly weekly.
And in my day to day job I'm working at, WeTransfer where I'm a iOS
engineer, making sure that everything mobile is as perfect as it can be.
Leo Dion (host): How long have you been at WeTransfer?
Antoine van der Lee (guest): It's actually gonna be 6 years This.
That's
Leo Dion (host): awesome.
That's, well, isn't that, that's awesome, . Yeah, that's,
I mean, in a good way though.
Like, they love you, you like them, so, absolutely.
That's, that's fantastic.
What was I gonna say?
I love WeTransfer, by the way, if you're ever looking for a way, like
they're not a sponsor or anything.
So just if you're looking for a really easy way to transfer a super big file,
like it's the simplest way to do it.
I find whatever Dropbox, I mean, I'll use Google Drive on occasion,
but that's more for like mm-hmm.
, I think like if you have a shared folder, but like if you have just
a file you wanna send to someone.
Yeah.
Like, WeTransfer solid.
And it's just super easy to use.
Antoine van der Lee (guest): Yeah.
As, as, as long as the listeners know that it's not about money transfers, you
know, we, we get people applying for the.
Right.
We ask them, why do you wanna work for WeTransfer?
And they say like, yeah, yeah, I've been using we for years to transfer my
money and you know, and I wanna work
Leo Dion (host): for the company.
They do this in an interview.
Antoine van der Lee (guest): They, they, that's amazing.
They do that when they apply for a job.
And I'm like, how can you transfer money if we don't even support it?
So it's all about file
Leo Dion (host): transfers.
And, and NFTs, right?
You can transfer NFTs, right?
Maybe you're doing that this year.
May . You never know.
Sarcastic.
You don't never know.
Assuming there's still a thing in 2023.
Yeah.
So last episode I gave my solo year in review.
You wrote an article giving your year in review, and I figure we'd
deep dive a little bit in our.
Mutual year in reviews, but also kind of talk more because I didn't
really talk a lot about the technical aspect of how things changed in
the Swift and Apple world in 2022.
But before we begin, I'll just let you kind of give your quick thoughts on 2022
as far as being a developer in this space.
Yeah, so
Antoine van der Lee (guest): 2020.
Has been quite an amazing year.
Mostly from a personal side of things to be honest, because I
became a dad in March and I married my, my wife now in in December.
Altogether quite significant offense I'd say, but still I had, yes, somehow
if I look back what I achieved from the technical side of things with
the releases of my side projects.
I, I can't really tell that I had such major events in my private life as well.
It's, it's been a quite a crazy year.
We had two Swift releases with 5.6, 5.7, and I remember preparing a talk in June,
two weeks after WWDC and the idea was to.
A topic from, that's kind of like the whole new thing to talk about.
And if you look back at previous years, we had major releases
in Swift Package Manager, Xcode Cloud, Async/Await, Catalyst.
You know, there, those were kind of like easy topics to pick for a talk
if you wanna do a talk about WWDC.
And this year I was like, What is the most obvious one to pick?
Right.
That was an interesting journey.
I, I ended up doing a talk about opaque types, existential any generics,
and kinda realized which conference
Leo Dion (host): was this?
Several actually.
Antoine van der Lee (guest): I did it at yeah, quite, quite a few honestly.
That's the thing with the talk, right?
It takes a lot of time to prepare it.
Chances are low, that one Visiting Fran Kit also visited Ab devcon.
Right.
So yeah, plus if I do my talk again, it becomes better and better.
And the last version and the last one I did was in Poland.
Yeah, that was, that was much better than the first version.
I can tell.
Yeah.
But either way, if I look back, it feels like really like a year
with, with improvements, right?
So improving the things that we already have, making them even
better to watch the roads of yeah.
Swift 6 that will hopefully
Leo Dion (host): arrive next year.
Yeah.
Right, right.
Trying to think of what I've seen on Swift 6.
What was the, there was one thing I, I just saw recently.
That.
Well, we'll get into it later when we talk about server side Swift stuff too.
Cause that was a big thing a few weeks ago.
But Yeah, we also had big improvements to Swift ui as far as opening
up navigation and layout stuff.
And then one thing, one thing I didn't, I didn't actually put on our notes, but just
you talking about conferences, it's kind of here on the other side of the world.
We don't have a lot of conferences so Bette.
We do now, but last year just the only conference I remember in the US
was 360iDev and so we talked about in the last episode they're ending
that, but now this year we have.
You know, a few more new ones that have grown.
New York Swift.
Yep.
Deep Dish.
Josh is putting together deep dish and then I guess Toronto
is also coming back again.
I heard that like yesterday.
So.
Nice.
That's good.
Finally, health America has some more conferences so I kind of envy that you,
you have them, but I'm glad we're growing more here on the other side of the ocean.
Yeah, but
Antoine van der Lee (guest): this is a good point, right?
2022 was the first year again that we had in-person conferences,
or at least many of them.
Cause the year before it was all online.
And honestly that didn't felt as good as the ones in person where you really
got to meet people, hang out with them.
Yeah.
In terms of conferences, it was a great.
Leo Dion (host): Do you think things are back to normal?
Well, normal.
As normal as they're gonna be?
Yeah.
Antoine van der Lee (guest): I, I mean, I guess, I guess what makes it mostly
back to normal is WWDC this year.
If that's going to be as good as it was a few years back when it was in person,
then I would say it's all back to normal.
But I think the, the.
Different way of working during covid you know, opened up doors for companies as
well, but as well as for conferences like wwc where they notice, you know, like the
online format might actually work better.
You know, we, we get so many great videos that are shorter in time.
They're more to the point.
Everybody can watch them, everybody can reach them.
But yeah, the one thing that I, I, I still missed honestly, is, Everybody
from the community gets together and wwc.
I mean, that used to be the thing, right?
You had parties everywhere.
Every evening there was a company hosting a party where you could go to and such.
I wish that comes back and if that comes back, then we're back to normal.
Leo Dion (host): Do you, do you think WWDC will be in person this year at, at the
Antoine van der Lee (guest): minimum it will be like they did last year.
But yeah, I'm not, not not sure about you, but at least for me, going
all the way there for just one day, pretty much, that was a bit too much.
And yeah, it's hard to say how it'll be this year.
Think about it, right?
If it's back to what it was.
But with the videos, like we are used to.
How will it be to be there every day, Monday, Tuesday, Wednesday?
You know, watching the sessions in person while they have the new format, I think.
I think that will be tricky.
So they need to find a new format, maybe where, where you can watch the
prerecorded sessions in person there.
Kind of like a cinema or something?
Leo Dion (host): I don't know.
I think, yeah, I mean, the thing, the big thing is, is like Apple, when they
started wwdc, I don't know where, late nineties maybe, or early two thousands.
They were a different company.
They weren't the mammoth, like biggest company in the world that they are now.
And so like.
There's a lot of benefit to a lot of people to just do remote for
like the base content of wwdc.
I do like that they've stretched out.
One thing that we've seen this year is we've seen more of the
one-on-one appointments and the slack Q & A say what you will, but.
It's something where like things are more spread out throughout the year
and it's not just like, here's one week where you can talk to an Apple developer.
You have more.
It's, it's like, I've had a couple, I've talked about 'em, I've had a
couple of meetings with folks at Apple and that's been super helpful for me.
Getting those appointments.
It's not as good as like what it might have been when WWDC was totally
in person, but at least we're able to do it more frequently, I guess.
Yeah.
And,
Antoine van der Lee (guest): and, but this, this one is
interesting as well, right?
Because in a way you could also say it's better than how it was at top wc.
I re I remember especially the year that Swift UI was announced, there were so
many big lines for questions about it.
If you look now, you can actually access all the questions.
That are asked by others in the select threats, right?
So there are people compiling those questions in a gate of repository so
you can look them up afterwards, but it allows you to gain insights that
you would otherwise never, never see.
And I think there, there might also be the downside that
you can't really go in depth.
Share your screen next to a developer that works on the
CoreData framework or something.
I dunno.
Yeah, that, those are still things that, that we missed, but Yeah.
I dunno, there, there there's better be a balance now, right?
Like they need to find the sweet spot.
Leo Dion (host): Do you think Here's, here's one.
We're totally going, not on our notes, but I, I figured I'd ask , especially
considering like there's been a lot of rumors about a certain Apple product
that people put on their heads.
Do you think we're gonna get any more in, in person press events
for like, say a March event or a September event or an October event?
Especially with a product like that, I can't, I can't see how,
like, how do you show that off?
I guess you could show it off in a video, but like, it's such a, it's
such a product that you have to feel and interact and immerse yourself in.
Exactly.
Antoine van der Lee (guest): Exactly.
So I guess they, they would really benefit from an in-person event at least.
For, for press and media which they did last year as well, right?
Like press and media was, was invited as well, I believe, for the keynote.
But yeah, for developers I guess as well, there must be like a developer.
Or anything similar.
It reminds me as well about the bowling game with ar when AR was released first.
Right.
You could do a bowling game play against each other, right, right.
Yeah.
Those, those are the things you need to do.
Leo Dion (host): Yeah.
Right.
Yeah, exactly.
Okay, so I, I looked over at your top articles and if I remember correctly,
you had an Async Await article that was really popular this year.
You had a combined article that was popular this year.
What was the other one?
I can't remember now.
Do you remember?
I think it
Antoine van der Lee (guest): was JSON Handling.
Okay.
Just, yeah.
Leo Dion (host): Decoding and.
Yeah, right.
Like advanced co decoding, but like, it seems like a big thing had been
that people were really interested in still in Async way and combined.
What's kind of your view of the relationship between those
two and, and how, how they work and the ecosystem in 2023?
Yeah, this
Antoine van der Lee (guest): is a, a hot topic I would say.
Many people wonder.
Whether combined will still be alive in a few years, especially because we didn't
see any major updates to the combined framework and this year's release.
I think the, the main point for me is that if you look at Swifty heavily,
Relies on combined under the hood, right?
Like things like the public property or the state property, all those
kind property wrappers underneath, they use combined observable object.
They actually comes with a a publisher in its definition, the object will change.
So to me it's very clear, combined is not going anywhere.
And I think the.
They didn't update it this year, is that it's quite mature.
Combined is nothing new.
Right?
Like we had a Swift, reactive, Swift for years.
The whole reactive paradigm was already known or sorted out.
So to me it does make kind of sense that combine was good from the get go in a way.
So how, how
Leo Dion (host): do they lift together?
What would you look for if you, if you were gonna look for an update
to combine, what would you look?
Well, I guess
Antoine van der Lee (guest): if I look into the projects that,
that I work on we would mm-hmm.
often visit the combined extensions.
Austria getup.
It's quite a popular one where it's mostly just convenience extensions of publishers.
But you can compare it to.
You know, foundation comes with certain types, but you, you're
still not completely fulfilled.
So you write your own extensions on strings or, or, or collections or, right.
That's the same with combined.
I don't think I really in a updates in the core combined framework, to be honest.
It's pretty solid and yeah.
So I didn't really expect something new there.
Leo Dion (host): I think like, you kind of hit it on the nose
though, like what, what's kind of developed out of the community is
kind of what we expect from Apple.
Cuz I'm in the same boat where I'll u I use Combine quite a bit and I
have the same extensions I have to put in all my apps because I need
to do a particular thing like, you know, like, oh, I wanna return an
optional or I need a return, I need to.
Silence and error and just return the value or or the, so there's that, right?
There's extensions on, on combined, common, combined methods like a map or a
tri map or whatever, or, or a flat map.
But then there's also, there's, so we had, you know, when combined came out, we got.
One for notification center, one for I know I'm gonna forget
this notification Center timer.
And I feel like there's one other one I'm missing.
Oh, url.
URL session.
Maybe.
I think we got three publishers.
Mm-hmm.
From older APIs.
But There's still a lot of older APIs that don't have com.
Like you have to like write your own combined scaffolding for, like, for
instance, I wrote a whole series of articles in Core location and how to
hook that up into Combine Health Kits.
Common one that I use where there's, I have to do my own work
to get it to work with Combine.
So I think, yeah, like you said, those are kind of the missing pieces
where the community can fill those in.
That's fine, but.
You'd think like Apple would kind of be like, Hey, by the way, here's a,
here's a, here's the Apple way to do it.
You should use this way.
Yeah, I kind of think that's what's missing in combined.
It's not, it's not like the end of the world because obviously the
community has filled that in, but.
If there's anything you're gonna expect from Apple, it'd be those things.
I mean, I do know they have, what's going back to the whole thing about Async eight?
They do.
I believe that there's some stuff like even Health Kit where they've moved
some of that over to Async eight.
So I find that interesting.
Whereas they haven't built like publishers for a lot of those older APIs.
Yeah, but
Antoine van der Lee (guest): I, I think this comes from the angle, how
Apple looks at use cases for combined.
If, if, if we really come back to your initial question, like how does Async
live together with combined, I think there's a certain use case for combined
that that's not really logical to do with Async, but the way around as well, right?
Like stream of publishing values.
You could use async sequence as well, but to me that.
Much less naturally versus a combined streamer.
It's more fairly active.
Yeah, I mean, it makes it just a lot easier to create like a funnel of, of,
of, you know, operators that handle the over time you know, deep bouncing
techniques, all those kind of things.
And there is a repository from Apple that allows you to do all those
kind of operations like sipping and, and all those kind of things.
It doesn't read naturally to me.
Even the, the asing sequence with the four loop where the four loop can
run and then it doesn't run for a few minutes maybe, and then it runs again.
It doesn't feel natural to me cause it's structured concurrency.
So you expect it to go from top down, but eventually it would
reach the latest part of your code.
And when Asing sequence, I feel like we're.
Somewhere.
Whereas with Combine, I totally agree.
Yeah.
With, with combined, it makes sense, right?
Cause we're used to that paradigm of a stream
Leo Dion (host): of values over time.
Reacting like a pipeline of, of, of a stream of data from
multiple sources or Yeah.
Things like that.
Antoine van der Lee (guest): Exactly.
So I, I guess it comes down to, for me at least, like an aing piece of
code that goes from A to B, but it, it will go from the beginning till the.
In one in one flow, then I would use ay weight.
Yeah.
And that, that's how I use
Leo Dion (host): it.
Yeah.
Ay away.
Just to me it makes more sense when you have a single asynchronous operation that
you're doing, whereas like when you need to react to a stream of data or you need
to manage multiple streams of data to.
Syncs, I guess, or, or published properties then combined makes more sense.
I, I, I think that's one of the, my gaping holes of knowledge that
I'd like to fill this year is figuring out how Async Stream works.
Yeah.
And kind of getting more of that perspective.
But it seems like you're, you're kind of in the same boat as as I am where
it's like I've, we'll talk, you know, I've jumped into group activities and
group activities is big into Async Await for managing stuff as it comes in.
And for me, it.
. It doesn't look natural.
Like it doesn't.
I , I still haven't figured out like I get what's going on.
But like you said, that for Loop is just, it looks strange to me from what
I expect from an async away process.
Antoine van der Lee (guest): Yeah.
And, but it, it's interesting what you say, right?
Like you, you still need to wrap your head around and it's something still
need to figure out bit this year.
It, it could also very well be something we need to get used to.
When I did my talk on Existential "any" and Opaque types.
Generics are now rewritten using like a "some" keyword.
" Some" is equal to T where T conforms to protocol.
It's, it's like a short hand that reads more naturally.
It's e in a way, easier to understand.
But at that point I realize like if you're like, like a developer that
developed for years, you're used to the generic syntax getting used
to the new syntax of using opa.
Seems odd because you're not used to it.
But if you're starting today as an engineer on Swift and you read
Opaque types using the sum keyword, it might feel much more natural and
you get used to it really quickly.
And that might also apply to Async way where we are used to
using combined in those cases.
But if you're not aware of how combined.
And you read about async sequence, you might find that
really natural to yourself.
And, and I find this fascinating, right?
It's kind of like the tunnel vision we have.
Cause we're used to a certain pattern.
But yeah, maybe it's sometimes good to step out of it, try it out and
see if it actually works better.
And just accept Yeah, that is different.
Leo Dion (host): Yeah.
Yeah, I totally agree.
Well let's, let's jump into it.
Let's talk a little bit about the way generics changed this year and
associated types and all that stuff.
We got the new, any key word.
We've already had some, some came with Swift y because they didn't wanna
have to like specify every single.
Generic type and it makes sense in that case with our some view.
But any is something different?
You wanna explain the difference?
And how use what, what purpose I guess it serves.
Yeah.
Antoine van der Lee (guest): So the reason there's no Swift 6 release is
because Swift team is still working on.
Like, like the final pieces of memory safety or basically they wanna let us
develop without thinking about all the difficult things of memory management
and, and all those kinda things.
So we got existential, we got all those pieces over, make us move to
switch 6 gracefully, existential, any the, any cured, completely lowercase.
In a way it's not something new.
What it, what it forces you is to think about the fact that you're using a
protocol that can be of any kinda type.
In other words, for the compiler, it's, it's hard to predict what
type it'll be, so it can't do any, you know, memory optimizations
or heap memory optimizations.
Accordingly, if we take the body of a, I feel when we have to return some
fuel, , the compiler will be able to determine the exact type at compile time.
It'll be some view stack or maybe a text element.
And because it knows that it's gonna be a fee stack, it can
optimize memory allocation for it, and you get a better performance.
So it's really about, you know, if you need to use any protocol, that should be.
Like a sign, like maybe I can use Opaque types instead and be more precise
about the type that's gonna be used.
You'll also get type relations because the compiler notes which type it will.
And yeah, you get a better performance overall.
That's a really short summary of what it.
Leo Dion (host): Well, I never heard the memory allocation story.
That's really interesting.
Like that.
That's a big reasoning behind the, any keyword.
I've, I started using it mm-hmm.
and then I ended up getting stuck in a lot of places.
Mm-hmm.
and ended up going back to just using What's it called?
Constraints on my types.
Yeah.
And sticking with the old way.
So I'm kind of in that boat where it's like the, any keyword I don't
understand because I'll use it and then the compiler will be like, yeah, you
can't do this thing because it's an any.
And then I just go back to using generics and where
constraints and things like that.
Like how have you found, what have you found the convenience of the, any keyword
and where have you found it useful?
Antoine van der Lee (guest): Yeah, so the, the tricky part for me is that
so, so Xcode 14 will suggest you in places to use any keyword as well.
While in many of those cases you could actually use some.
And with that, Gain a better, better performance.
And to get back to the performance, it's, it's a really small hit.
I don't think you'll really notice it.
I, I could send you a link on Swift forums where it's explained in a bit more
detail for those that are interested.
Okay.
But yeah, nevertheless, I, I didn't really use any.
That much.
Yeah.
I went over the code base as WeTransfer, and what I did is I was looking for
kind of like those, those type ratio types where we had an any experiment
type which would kind of like, yeah, type, erase the actual experiment,
but it would allow us to pass that through throughout the globe base.
Yeah, we, we could now replace that with the lowercase any, and then just reuse
the experiment protocol type that we had.
I think.
Another big improvement is I don't know this error by mind, but if you
see it, you recognize it for sure.
If you had an associated type in a protocol and you would use
it as a generic, you would get like, you can't use this protocol
because it has self constraints.
Some, something like that.
Yeah.
Right.
Yep.
It felt.
Why isn't this working right?
Like it should just work.
And it's what they literally did in this first session.
They did like it now suddenly works, right?
They removed that constraint and I think that opens up more doors than we realize
because it now won't just naturally work.
You don't really realize that constraint is gone when you use it.
But it'll yeah, allow us to write more optimized
Leo Dion (host): code.
I have like this talk in the back of my head about how to use associated types
and generics and, and how, how they work because they're really useful.
But yeah, I, I can see a lot of now and probably inter even intermediate
Swift developers just being like, screw, I don't, I don't want it,
deal with it because of, like you said, you get things like that.
Yeah.
Where it's like the self, it's like you can't use it and Yeah.
I, I totally understand where you're going.
Yeah,
Antoine van der Lee (guest): but this is, this is a good point, right?
Like for, for those listening that are like intimidating by the fact
that there's generics and there's Opaque types, existential any, I
think it's really important to know that these are just tools in your
tool set that you could use, but it's definitely not mandatory to use them.
You could write the same code solutions without generics.
It's a bit more duplicate code, less reusable, maybe.
Yeah.
But in most cases, that's more.
Leo Dion (host): So let's talk about one of the apps, I
think, I think you debuted it.
This here is Stock Analyzer.
You wanna talk about your experience with that?
Yeah.
Antoine van der Lee (guest): Yeah.
So before Stock Analyzer, I always had that, that eagerness to release
an app on the iOS app store.
That's not per se, developer related, that's more for the bigger crowd.
And also an app where I can really jump on new features whenever WWDC
comes with a major iOS update.
And last year, January, I happened to start looking into stock investments
and naturally I started to learn about all kinds of ratios, like price to
earnings and all those kinda new metrics.
I didn't really understand and, and the last thing I wanted to
do is read up on them every month when I did my monthly investment.
Right.
So okay.
I, I, I guess I started with like an Excel sheet like everybody does when you
start investing and I, I quickly realized I need a tool and I want that tool to
tell me like, okay, this is a good.
Price, two earnings.
Right.
And that's when, when I started thinking about an app, which turned
out to be Stock Analyzer, which gives you like a score from A to
E, whether or not the rat is good.
In, in theory if everything is an A, meaning everything is
green you should buy that stock.
That's, that's the id Yeah, I'm, I'm very much learning stock investment
and, and Stock Analyzer is kinda like a nice tool side that I can use for both
my stock learning as well as, you know building new features like, like log
screen widgets and those kinda things.
Last year,
Leo Dion (host): what, what did you learn out of the experience building
an app or a wider audience that you didn't know before you started?
Antoine van der Lee (guest): Well, , it's quite painful actually.
It's a stocks app, right?
And in a way, I'm advising on finance.
And it turned out that Apple is not really willing to promote or
feature apps that are in that sector.
So some, some are mid, mid 22.
I realized that, which was which was disappointing.
But that's kind of like a side story, right?
What, I guess what I, what I, what I learned is, If you build up an app nicely
with modules and search I got another app which is also built using a save modules.
Mm-hmm , it, it allows me to move really fast and, and the
widgets and the other widgets.
I build it quite, quite fast because I had all that code
ready to be reused in packages.
I wouldn't say that it's per se a learning from stock analyzer, but it's
at least a learning that I take with me that for personal side projects.
It pays off even more to have those packages, your own kinda modules.
It's called the Swiftly sdk, but you
Leo Dion (host): know.
I'm totally like on board with that.
Like all of my apps now are just basically bunch of Swift packages
connected together with like minimal code and the actual app base.
So yeah, that's, it's become easier and easier over the years as Swift
package manager has matured quite a bit.
Yeah.
And, and
Antoine van der Lee (guest): you need to be prepared for whatever comes next year.
Right.
It's, it's very likely that we will get another extension.
And you wanna reuse that API layer.
Right.
And if it's all in your Yeah.
In your main project, you need to go over each file individually, add
them to the target that you created.
You know, it's, it's, it's painful to maintain.
Yeah.
Whereas if it's a package already, just include a package and you can go
Leo Dion (host): ahead and, Yeah.
Yeah, totally.
Let's talk about your other big app that you've been, I mean, I don't know how
old it is, but Rocket Sim, how long, how long have you been working on Rocket Sim?
Yeah,
Antoine van der Lee (guest): I think, I think 2018 was version 1.0, which
was a really simple status bar app where you could execute very basic.
Leo Dion (host): What was the bake, what did you introduce, I guess,
this year in Rocket Sim and, and how, how has that experience been?
Just as somebody in the same space, excuse me.
Yeah.
As someone in the same space who's been building dev tools, what's,
what kind of have you learned through your experience with Rocket?
Yeah.
So
Antoine van der Lee (guest): first of all, I'm, I'm super fortunate to be able
to build a developer tool while I also have Swiftly targeting developers, right?
So I, I'm, I'm using get up for book reports and feedback and switch because I
know I got developers they know how Get Up works and that's, that's super convenient.
Yeah.
It, it's a super fun project, to be honest.
I'm I'm, I'm building like, it's a simulator tool, right?
So you can see like a floating window next to the simulator and it
provides you with all kinda extra features like recording with touches
recording with landscape support.
Device vessels you can compare design on top of the simulator.
Over, over the years, I started to adopt more and more features
also based on use of feedback.
Cause many developers, you know, they develop every day and they find
themselves doing repetitive tasks, realizing like, Hey, I, I can improve
the flow and it should be great if it's, if it's in rocket sync.
Why it's super foreign is because I'm, I'm, after going into Exco, I run through
all those directories inside the Xcode app and eventually I found out that
the simulator is built out of slices.
So and it's a funny story actually because the device bas feature in Rocket Sim is
actually rebuilding the simulator using the slices that are in the app file.
So I got like a speech few that's using all those, those slices.
It also means that if, if NewCo version is out, I directly support a new simulator
because I'm just reusing what they use.
It's like an info list file.
I dunno.
It's, it's super fun and Because, because I have the, the design comparison
feature, I know exactly where the screen of the simulator is on your next screen.
And I can do all kinds of things there, which is why I released Rockets eighth
in May with a grids and a rulers version where you can show a grid nice, on top of
your app, show rulers to online elements.
And yeah, as we speak, I'm close to releasing Rocket 9.0.
Super excited about that one, where you can test post notifications and deep
links using so-called Quick actions, which we'll show next to your simulator.
So you can directly click on it and you know, the post notification
will show up or the will be executed which opens all kinds
Leo Dion (host): of new features.
Is Rocket Sim on the app store?
It's, yeah.
Okay.
Sand Books amazing.
Has it always been on the app store?
Sorry.
Has it always been in the App store?
Yeah.
Antoine van der Lee (guest): Yeah.
So, okay.
I think I didn't really want to go that route of having to promote
it myself, plus it feels more secure if it's in the app store.
That was kinda my, my totally feeling behind it.
And I had a moment where I tried to switch it out of the app
store because I was just annoyed.
It's, it's really hard to support a simulator.
When you are sandboxed, right, you need to use same ctl.
I need to ask access for all kinds of folders.
Yeah, and if you're not sandboxed, that opens up the doors.
But then you need to manage updating, using, using pedal and all those kind
of tools, which was quite a pain.
So I quickly stopped.
Leo Dion (host): One thing I want to talk about is that you are either
this year or next, or last year, you worked on doing team licenses.
Speaking of the App store, how does that work with Rockets Sim and, and what,
like, how, how does that even work?
I don't even understand how you could do a team of licenses through the app store.
Yeah.
So the app
Antoine van der Lee (guest): store doesn't support it, obviously, right?
So, How it basically works.
I'm using gibro, and Gibro comes with a license api and okay.
How, how I compare it is that you have a Netflix account.
And you bought that account on netflix.com.
You install the iOS application and you log in.
You're already premium.
You didn't purchase it through the app store.
It's kind of the same with with the license implementation, where the license
key can be activated and it'll use the com road API to, to validate that according.
Leo Dion (host): Okay.
So basically where you have in-app purchases, there's a way to activate
the license via Gum Road more.
Exactly.
Okay.
How, how do you like working with Gum Road?
Did you find out like, yeah, you work with, or yeah, I think I,
Antoine van der Lee (guest): I, I looked at different options and Gum
Road was just most known to myself.
I do believe they changed their pricing this year, which isn't.
In many paper yeah, I dunno.
It works out for me.
And they had a nice API that's simple to use.
So yeah, for me it worked out.
Leo Dion (host): Yeah, we had Jordi on the, on the show and
he uses Gum Road quite a bit.
Mm-hmm.
, we never, you know, you never think about gum road for software necessarily.
It's usually books.
Yeah.
But the way he uses it is really novel.
And, and, and, cool.
So yeah, I was super curious about your team licenses on gun r gum Road.
Did you buy a new phone this year?
I did not.
Antoine van der Lee (guest): No.
No.
Okay.
No, no, I was happy with my phone.
I, I, I think it wasn't significant, changed enough for me to say
like, okay, I'll, I'll buy anyone.
Did you
Leo Dion (host): no.
No, I didn't either.
I have an 11 Pro Max and other than the battery, it's fine.
Totally fine.
Well, the reason I, I wanted to ask, not just cuz it's what we ask on shows like
this, but like, You did widgets with stock analyzer, did you look at anything with
like live activities or the dynamic island as it's called, with either your apps?
Yeah, I,
Antoine van der Lee (guest): I, I did have like IDs for maybe showing
the stock price constantly or something, but it didn't really felt.
Really like an add us value.
You know, the, the thing with side projects, there's only
so much you can do, right?
So you, you need to pick your battles and for me, life activities wasn't,
wasn't really worth my time and effort in terms of like the return of investment.
If, if I were to have like an app word, it makes total sense.
Like, like it does for, for an Uber or something.
Yeah.
And then I would probably also find more reason to buy that phone.
. Leo Dion (host): Yeah.
I mean, it sounds like Stock Analyzer is much more analytical.
Mm-hmm.
than just like, oh, I am constantly looking at the stocks and figuring
out how to, how to say ahead.
Yeah.
So yeah, I totally agree.
And I'm in the same boat where it's just like, is it worth my time?
Like, you know, will it extend my app store exposure, I guess?
Or will it be useful to the customers?
Like, yeah, that's kind of the questions you have to ask when
you have finite amount of.
Antoine van der Lee (guest): That's, that's the reason you could do it, right?
Like to jump on that boat of the September official release of iOS 16
be part of all those lists where you, you'll be listed because you support lock
screen widgets or those kind of lists.
Right.
But yeah, that's, that's where I realize that I'm not going to be featured
soon cause I'm a financial advisor.
So the, the, the, yeah.
That intent
Leo Dion (host): was lost.
Yeah.
Live activit is not gonna change that.
No.
Well, thing about, I wanted to touch on, just jumping back on Stock
Analyzer is you wanna do some, you want to port it to the Mac, the iPad.
Did you say TV in the, I don't know if you said tv, but you wanted to do a
multi-platform app with Stock Analyzer.
What's your, like, what's your plan for that and how does that,
how does that work with the way you've architected the app already?
Yeah, so I think
Antoine van der Lee (guest): the, the biggest question here is like, so apps
are often iPhone only because they're still validating their concept, right?
They're still finding out what, where they wanna be.
And if you expect big UI chases, you don't wanna do that on all those platforms.
You kind of wanna know like, okay, this concept works and I can
now focus on making that optimal for iPad and macros as well.
I guess for, for me, with still analyzing first, first and foremost, it was about,
you know, building out the concept, validating that users want to use it and.
Not spending all my time on just adding iPad or support first spend
all my time that I have, if I even have the time to work on stock, analyze
cause of all other things that I do.
Focus on adding extra ratios and, and financial data and those kind of things.
So for, for this year I believe that I'm, I'm at a point where I can
start thinking about it and how it works from an architectural point
of view is I, I got a few options.
I can use Mac catalysts and I can use POS silicone.
I looked at that POS silicone and it didn't really felt
that that was the way forward.
I could also use AppD, but I think in the case of Stock Analyzer, it's gonna
be like a, a window app as well, right?
It's not gonna be like a status bar app, which is.
To manage when you use catalyst.
I think it makes total sense to, to use Catalyst combined with an iPad app and,
and build those those two together.
And another thing HIDA, I'm not sure if he's gonna watch this.
It is a big favor of Whatwe applications.
He's a friend of mine and he pushes me constantly.
You need to build what I said.
So that's another thing I wanna explore, because if you have widgets
it should be fairly simple to at least add complications, complication.
Yeah.
So that could be kind like a nice quick
Leo Dion (host): Yeah.
Yeah.
That's awesome.
I'm looking forward to seeing the progress and story on that this year.
Let's see.
Do you wanna talk about Server side?
Swift?
I don't know
Antoine van der Lee (guest): much about it to be honest.
So it'll be really general and I dunno.
Okay.
Leo Dion (host): We'll save that for the next episode then, because
in the next episode we'll have Dave Andon who run the Okay.
Swift package index.
Yeah.
Better.
And they, they know much more about it, so I totally, I totally agree.
That's, that's fine.
Anything else you wanna talk about, I guess before we close out?
Antoine van der Lee (guest): Maybe, yeah.
I dunno.
Maybe looking ahead to 2 23, that could be something.
Leo Dion (host): Yeah.
What are you, we'll probably have a new os, like a new totally new platform.
It's looking like what, what's your, how about your, what's your list for the,
for this year in terms of features you
Antoine van der Lee (guest): mean?
Yeah, yeah, yeah.
Leo Dion (host): For developers?
Yeah, for
Antoine van der Lee (guest): developers.
I, I think it's, you know, like I had the same question last year and
I already found it hard to answer.
I think the only thing I could really think of was something I'm constantly open
for is a replacement of core data, and last year I had the insight that it'll
not be a replacement, but an alternative.
I don't really think they wanna do, you know, like an official migration
from coordinated to Swift data or something that's gonna be super risky.
Yeah.
So if you, if you make it like an optin where develop need to do that themselves
or something, I think it's more logical
Leo Dion (host): or, well, it seems to be the pattern too with a lot of their stuff.
Whether it's migrating to Swift or migrating to Swift UI.
Yeah.
Usually it's opt-in type thing with compatibility, some sort of.
To to have the two talk to each other, I guess.
Antoine van der Lee (guest): Yeah.
Yeah, exactly.
So, but other than that, I'm quite fulfilled.
I don't know, I, I think I also have so much on my roadmap
already to work on that.
I kind, I'm kind like, you know, I'm not waiting for anything
I've got to do, so I dunno.
How, how about you?
Do you have anything that you expect or.
Leo Dion (host): What I hope for just kind of bug fixes.
Mm-hmm.
. In the last episode, I talked about the issues with my apples,
like with my next studio.
Weird little quirky issues that I kind of don't expect of a machine like this.
I hope Xcode gets better.
Yeah.
I don't know about you, but I'm in having issues where it'll show me the error
and then it'll hide it right away and I'll have to like clean and then build
again, which can take a bit longer.
I hope improvements, apple Watch development.
We have this massive new watch and people still have issues developing on
it, so I kind of hope we get something, some improvements in that, that way.
Like even just, and I know it's not Apple style, but just kind of
revealing a little bit like behind the curtain what's going on when an
issue does come up so that we have better ways to, to, to work around it.
I mean, I think that's kind of, that's kind of it.
Like I feel like they really push features a lot, but at the same
time, yeah, just sometimes basic stuff I run into issues with those
would, that would be my wishlist.
Yeah.
Like so quality of life improvements.
Yeah.
My prediction.
Yeah.
I mean, my prediction is probably we're gonna get the thing that we're gonna put
on our head probably in the next year.
I'm not so sure it's gonna be a.
But, you know, maybe it's gonna be a slow, slow thing, like the
watch where eventually it picks up.
I still don't, I don't, I don't have one, so I, I don't understand the
appeal of them, but whatever, we'll see.
I think that we'll probably get more Apple, silicon stuff.
We'll probably get a Mac Pro this year.
Yeah, I, I don't have a lot of predictions this year.
I mean, it does seem.
We'll talk about the next episode.
It does seem Apple is really putting their.
Behind Server Side Swift, they seem to be using, it seems to
be used by a lot of companies.
It seems like it's really mature now.
Yeah.
And I think that'll continue, continue to happen.
But of course we'll talk about that more in the next episode.
Yeah.
And you'll also talk about Swift, but it seems like it's for real.
It's not, it's not some, something for, for hackers and people who are
just interested in quirky stuff.
Yeah.
Yeah, that, what do you predict?
I.
Antoine van der Lee (guest): Yeah, well, you, you just reminded me,
and you'll talk about that with the, this, you know, the registry, which is
something that's, that's on its way.
But one thing I kind of run into lately is that things like
fire days, for example, right?
It's a, it's, it's a big repository with many kinds of packages.
And if you include that in your project, the whole pository is cloned.
Even though you only.
Maybe one of those packages.
Right.
And, and yeah, and, and you can sort that out.
There is like a open source solution where you use binary targets,
but still it feels, it feels odd.
So I think if we have a package registry, it's naturally solved and
that will make things much faster in terms of Swift Package Manager.
So I dunno, I really hope that that kicks off this year.
Leo Dion (host): Yeah.
Yeah.
Agreed.
Anything else you wanna talk about?
We talked about a lot.
Antoine van der Lee (guest): Yeah, we, we went a lot of routes.
So I think I think it's, it, it's good like this.
I'm excited for this year to come and I'm looking forward to release
Rocket to everyone and hopefully see everyone we see in person.
Leo Dion (host): Yeah.
Yeah.
Thank you so much Antoine, for coming on the show.
I really appreciate it.
Antoine van der Lee (guest): Thanks, Lori.
Finding me over once again and already looking forward to coming back in the.
Leo Dion (host): Yes.
Yes, we'll definitely do that.
Where could people find you online?
Yeah, I don't know already.
I'm one
Antoine van der Lee (guest): of the few that's still trusting Twitter, . I
also don't wanna leave behind my big audience there, so yeah, you
can find me on Twitter at one lt.
And l I'm pretty sure you're, you'll be able to put a link in the show notes.
Yeah.
Otherwise, yeah, follow my newsletter.
I think that's the best way to stay up to date on everything that I
do while you also stay up to date on everything in the community.
Leo Dion (host): And we'll also have links to all this stuff we talked about
today and some of the articles you've had.
So yeah, thank you again.
People can find me on Twitter at Leo g Dion.
My Mastodon, because I have to say that now in 2023, is at Leo G dion@c.im.
You can also find me on LinkedIn.
If you're watching us on YouTube, I can subscribe.
Please share it, let people know about this great episode.
And also if you are listening to this on whatever podcast
player, I'll ask every episode.
Please review.
And share with others.
Happy New year to everybody.
Welcome to 2023 and I look forward to talking to you next week with Dave
and Sue on the Swift Package Index.
Riverside, Swift, Swift, package Manager, all that stuff.
So, Post your questions as soon as you can.
Thank you so much and talk to you later.
Bye everyone.
Bye-bye.