Empower Apps

Antoine van der Lee joins the show again to talk about everything 2022 in the world of Swift like Async/Await, Existential vs Opaque types, Conferences, as well as his apps like RocketSim and Stock Analyzer. We also get into predictions and hopes for 2023.

Show Notes

Guest

Youtube Video: https://youtu.be/Zqwt6YyABkA

Related Episodes

Related Links 

We talked about 

  • (00:00) - A Swiftly Year in Review with Antoine van der Lee
  • (02:22) - Conferences in 2022
  • (11:43) - Async/Await and Combine
  • (19:25) - Existential and Opaque Types
  • (26:18) - Stock Analyzer
  • (29:51) - RocketSim
  • (40:13) - 2023 Wishes and Predictions

Social Media

Twitter Leo - @leogdion
Twitter BrightDigit - @brightdigit
LinkedIn - @leogdion
GitHub - @brightdigit
GitHub - @leogdion
TikTok - @brightdigit
Mastodon - @leogdion@c.im
Youtube - @brightdigit

Credits

Music from https://filmmusic.io
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)


Thanks to our monthly supporters
  • Steven Lipton
★ Support this podcast on Patreon ★

Creators & Guests

Host
Leo Dion
Swift developer for Apple devices and more; Founder of BrightDigit; husband and father of 6 adorable kids

What is Empower Apps?

An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.

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.

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.

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.

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.