Read the transcript
Jeroen Leenarts: Hi, and welcome
to another special edition of my
podcast. I'm sitting here with
Emilio polis, and he lives in
Spain, but he's not from Spain.
He went to Canada, but he's
actually from Mexico. So that's
an interesting little bit of a
story there already how this all
happened?
Emilio Pelez: Yeah. Well, I
just said, I grew up in Mexico.
And at some point, when I was
about 24 years old, I wanted to
go, I want to study game design.
So I went to Canada for about a
year and a half. And I lived
there. And then I came back. And
I didn't really get into game
design, or like game
programming. But I already had a
background in app development.
So I found a job doing that. And
it was a remote job for a
company in the US. And I was
living in New Mexico. And I
asked, my boss was like, hey, I
want to do a digital nomad thing
for a while. And he was like,
fine, as long as your output is
fine. Is doesn't suffer. It's
okay. So I was traveling around
Europe for a few months. And I
kind of fell in love with
Valencia, Spain. And a couple
years later, I just moved here.
Jeroen Leenarts: So how long
have you been living in Spain in
about two years now? A bit over
two years. So that's like, like
at the start of the pandemic,
that's when you got settled in
in Spain? Really?
Emilio Pelez: Yeah. I think I
was here seven weeks before the
lockdowns started. And it was a
pretty hard look down here.
Jeroen Leenarts: Yeah, they were
very severe in Spain. I still
remember that, like people
really like citywide curfew that
you were allowed to go outside
for essential shopping and I
think walking your dog or
something like that. Yeah.
Unfortunately, I didn't have a
dog. So mostly. But yeah, so you
just mentioned a few things
there. First one, of course, is
yeah, I wanted to study game
design. And yeah, I already knew
a little bit about apps. So
what's your background there?
Because it's not something that
just I don't know, you wake up
at Sunday, and all of a sudden,
you know about apps and you know
that you want to do game design.
Right?
Emilio Pelez: Right. I mean, I
loved computers since I was a
little kid. And my mom has this
like anecdote of, we had this
Acer computer. And she left me
playing a game. And when she
came back, I was playing another
game. And she was like, how did
you How do you do that? And I
explained like, Oh, I like I use
this. I think I had to use DOS,
yeah, to Switch games. And she
was like, how did you learn
this? So I've always really
liked computers. And when I was
in high school, I got an iPod
Touch. And I jailbroke it and I
started trying to trick it. And
at first I would do like theming
and changing images. And I'm not
the best artist, so I ended up
like doing code instead. So I
started doing that with
jailbreak, I made a couple
Djerba claps. So yeah, I went to
computer science in Mexico City.
But I dropped out because I was
already like, making money with
my with my tweaks. So I was
like, This is what I want to do.
I don't need to study anymore.
My parents weren't very happy
with that. But instead of
instead of finishing my I think
fifth semester, I went to San
Francisco in 2011 to WWDC and
that's basically when I just
left school, and I turned into
an iOS developer.
Jeroen Leenarts: Yeah.
Basically, when we went all in,
then yeah, exactly. So but
jailbreaking apps and doing that
with a iPod touch you mentioned.
So was it that the iPod Touch
was your gateway device into the
Apple ecosystem?
Emilio Pelez: Yeah, definitely.
I think a big motivation for me
is to be able to put my projects
on my phone or my device. So
that's, that's kind of what
drives me. And I think that's
why I stuck with iOS
development. Because I could put
it I could see it on in my hands
very easily.
Jeroen Leenarts: Okay, so and
the jailbreaking that was so
what, what iOS versions are we
talking about? 10?
Emilio Pelez: I think it was
still called iPhone, iOS. And I
think he was iPhone iOS two.
Jeroen Leenarts: So that's
that's like, right at the start,
even before it was an official
SDK, right. Yes.
Emilio Pelez: It was very hacky.
Jeroen Leenarts: Very much
discovery mode there. Yeah. So
say how you got started with,
with with app development on the
Apple platforms like right from
the start. What was it like back
then, being an app developer in
new markets so that people are
still really discovering what
the hell you could do with like
an app or really, because
that's, that's the time That's
even if you created like a half
decent gimmick app, it would be
successful already. So what was
it like there back then?
Emilio Pelez: Yeah, like you
said he was, he was really under
merit, not really marketing or
anything like that if you made
an interesting app, it would be
successful. And something I
really missed from from those
days is how tight the community
was. Because there was this
forums where you can just go and
talk and find other developers
or designers. I remember, I
worked with a few designers that
are like, really, really good.
And it was just so easy to find
them. I think nowadays, it's a
bit more complicated because
everyone has a full time job.
And back then it was a hobby
that also made me money. And it
was, I really made that tight
community that we used to have.
Jeroen Leenarts: Yeah. So and
what was the first app product
that you that you really worked
on, for for some time,
Emilio Pelez: the first app
that I released was called a
classic. And it was an iPad
classic simulator for the
touchscreen. So you could like
rotate the click wheel, and play
your music. And it it was very,
very popular back then. And the
second one was also very
popular, it was called modified.
And it was basically
Notification Center. But it was
released about a year before iOS
five. And it's funny, because in
iOS five was released in 2011,
when I was in San Francisco. So
I saw my app being sure looked
like really
Jeroen Leenarts: now. But that
notification feature, there was
something that was already
somewhat available in Android
back then. Right.
Emilio Pelez: Yeah, that was
like he was not a new concept,
by any means. But it was
something that was needed for
sure.
Jeroen Leenarts: Yeah. And so
but those were apps that you
created yourself, and that you
probably had some some success
with. And were those paid apps
over those free apps.
Emilio Pelez: They were paid, I
think notified had a free
version. But the paid version
let you view the notifications
anywhere. And the free version,
you had to open the app, like
the app icon to see the
notifications. So yeah, it's
like a bit of a trial.
Jeroen Leenarts: Yeah, that was
like, Yeah, you could do in app
purchases back then already.
Right. So
Emilio Pelez: so this was all
on Cydia on the alternative App
Store. So I think it was just a
different package. And one of
them was free and one of them
was paid.
Jeroen Leenarts: Oh, that's
that's that's also something
that was a thing back in the day
I completely forgot about Syria.
So yeah, just for people
listening and wondering what CDs
can you like give a quick
rundown of what it was in like a
few sentences.
Emilio Pelez: Sure. Cydia was
basically the alternative store
where all the things that
wouldn't be approved into the
app store would be distributed
either for free or paid.
Jeroen Leenarts: That's
basically it's like a bit of a
gray market for for apps and
tweaks for Jillian and it is
required jailbreaking your
device to be able to install the
the Cydia store right, right.
Okay, but then you had some
success with with your own
products. Did you stay working
as like a self employed
individual? Or did you start
working at a company? You
mentioned something about that
already.
Emilio Pelez: So right after
that, I kind of wanted to make
games I think back then, the
game that was really inspiring
for me was tiny wings, this game
where you are like a little bird
that bounces on the hills. And I
had a friend of mine who was an
artist, and we started making a
game. And it didn't really we
didn't really finish it because
we decided to go to we went both
went to Vancouver to live and to
study game design. Yeah. So I
sort of game design there. And
after that I ended up not going
into into game development. I
went back to app development.
Jeroen Leenarts: Yeah, because
you, you you studied game design
in if I'm correct. 2013 and
2014. Right. Yes. Yeah. And then
during your time at Vancouver
Film School, you also picked up
some some projects on the side.
Right. So just some smaller
gigs. That was like very helpful
to pay yourself through your
education, I guess. So what was
that experience? Like? Because,
yeah, you have some education.
You didn't finish the university
in Mexico. You are attending in
education, right, then in
Vancouver, and you are working
on the side. So how did you
manage your time back then?
Emilio Pelez: So I was very
lucky that my family supported
me when I was studying. And I
had a fair amount of savings
from the apps that I made. Yeah,
but I did made a make a few
freelance projects. I remember
one time I was supposed to
deliver a homework, and I had a
rarely asked for an extension.
And friend messaged me. And he
was like, we need an app to be
done by, by tomorrow. So I,
instead of doing my homework, I
did an all nighter. So that was
no stuff. I had to sacrifice
that homework. And I felt kind
of bad with a teacher because he
already granted me an extension
and had to tell him like, I
couldn't do it.
Jeroen Leenarts: So I like build
an app and 24 hours. So it was
it was the success or not,
Emilio Pelez: it was yes. We
had the app by midday the next
day, I think. And then over the
next week, we did a few tweaks.
But the back end was also being
built live. So it was
Jeroen Leenarts: an interesting
experience. So and, of course,
the feature set of the
application is, is very small,
if you have to develop it in
like 24 hours, right. But still,
if you if you're able to, like
deliver on the right features
that are requested, and even the
small thing can be a success,
Emilio Pelez: right? Yeah. And
I was like, properly compensated
for that. It really helped
Jeroen Leenarts: me that helps.
Yeah, really. So and then you
graduated, and you started
working. And you mentioned that
you had remote roles? Pretty
much your entire professional
career. So what was it like to
just be a student in living in
Canada at that time? And then
basically, starting your career
as a professional developer?
That's not a big distinction, I
think to any developer or
professional developer is just
that. Yeah, it's it's your it's
your way to make a living, I
guess, if you're a professional.
So but what was it like? Because
you mentioned that you always
work remote. And you were able
to move around because of that
fact?
Emilio Pelez: Yeah. So I, it
was, when I went to San
Francisco in 2011, I went to a
meetup, where I met this guy who
was making an app, and he had
like a small company. And in
2014, when I finished game
design school, I, I messaged
him, and I was like, Hey, I'm
not I'm looking for work. Do you
have anything? And he initially
hired me as a consultant. Yeah.
And I think it was within a
week, he told me, you know, you
really know what you're doing.
Let's bring you in full time.
And, yeah, I think it really
changed my life. Because I went
from Yeah, like being a student
to being a full time remote
developer. Yeah. So shortly
after that, I moved back to
Mexico. And yeah, I work
remotely. Basically, with my
career. And as I said, I decided
to be a digital nomad for a few
months, it was a total of eight
months, split between 2016 and
17. And it was an amazing
experience, because I could see
so many cities, I would stay one
month in each city, while
working during the day, or
during the week, and on the
weekends going out. And it was a
lot of fun.
Jeroen Leenarts: So before we
dive into that Nomad experience
of yours, what did your parents
tell you when when you got home?
And you mentioned Yeah, I got a
job. It remotes I can do. I can
do my job when whenever and
wherever I like as long as I
deliver on my promises. Because
I especially asked about this
because they had some second
thoughts on you dropping out of
your education in Mexico. So I'm
very curious on what their
thoughts were back then.
Emilio Pelez: I think by then I
was a bit back on their good
graces, because I had already
gone back to study game design.
Jeroen Leenarts: So you finished
that, right? Right.
Emilio Pelez: And they they're
always very supportive, like
they never really shun me or
anything. But when I went back,
I told them, obviously, when I
was in Canada that I had gotten
a job. And they were always very
supportive and very excited
about it. And also, I think,
impressed as well, because it
was, it's like a new thing,
right? Like it's remote work for
an American company. It's, it
was not a super common thing,
especially back then before,
like, a few years before the
pandemic. So they were
definitely happy about it. I'm
very proud.
Jeroen Leenarts: Yeah. So and so
then you started working for
quite a number of years already
at at Savvy apps. And then
actually, you're still working
at that same company, but Saffi
apps was merged into another
company. So you didn't switch?
Employees but you basically,
yeah, the company just changed a
bit and got a different name and
a lot of familiar faces and some
new faces, of course. So you
don't hear that very often that
that people stick around with
their, with their first job
really for that long of a time.
So what are your thoughts? What
are your thoughts and reasons
behind that? Because quite
often, you see people switch
like jobs like after a year or
two years, especially if they're
like fresh out of school.
Emilio Pelez: I think I just
never felt the need I think I
was fairly compensated. I like
the people, savy apps was a
fairly small company. I think we
went from eight to 20 people
when I was there, and something
I really liked about working in
an agency, which savvy apps and
now Modus create. Both are, is
that you can work on like a
variety of projects. So I've
done projects using core image
SceneKit, Sprite kit, aVF,
audio, a lot of like, different
very different frameworks that
you wouldn't touch if you were
working like on a single project
at a big company. So that's
something I really enjoy. And
that I think that's something
that's kept me where I am, I
just don't feel the need to, to
migrate them.
Jeroen Leenarts: Yeah, and
especially if you're if you can
live the lifestyle that you
enjoy, and basically, you have
enough income to cover your
costs, costs and save a little
then what else do you need?
Right? Just an enjoyable
experience? Maybe?
Emilio Pelez: Yeah, and I mean,
I think like a lot of iOS
developers, I've been approached
by companies like Google and
Facebook, but I don't want to,
you know, most of the time they
request or they, they need you
to move to another city. And
that's something I'm not willing
to compromise on. Because I just
really enjoy being able to be
like, Okay, this month, I'm
going to go to Athens, you know,
or to Prague. Yeah.
Jeroen Leenarts: So, um, let's
see. So what cities have you
been in? over all these years
are our test just too many to
count?
Emilio Pelez: Well, when I did
my trip, there were eight main
destinations. I landed in Paris,
then I went to Sheffield in
England, because a friend of
mine, one was studying there.
Then I went to Edinburgh, Milan,
and then Lisbon. That was the
first trip. And the second trip
the next year was, I landed in
Athens, then I want to pry, and
I ended up in Valencia. And
that's when I found out that I
really liked Valencia. They have
they have this project or like
this visa called non lucrative
visa that some people refer to
as a freelancer visa. Because as
long as you don't have to get a
job in Spain, they allowed you
to have a residence here, like
be a resident here.
Jeroen Leenarts: Yeah. So yeah.
And so and tax wise, that's
that's also not a problem for
the Spanish government or tax
service. Really,
Emilio Pelez: right. They're
happy to have someone paying
taxes here. That doesn't? Well,
first of all, I have to have
private insurance. So I don't
have like a cost, quote,
unquote, on their insurance
system, or the medical
insurance. And I also don't take
anyone's job, so to speak, which
is something that all countries
are a bit protective of.
Jeroen Leenarts: Yeah. Okay.
Cool. And any plans to visit
some more cities and countries
in the in the northern parts of
Europe? Or is it something that
you might do in the future, but
it's not, there's no concrete
plans there yet.
Emilio Pelez: I actually just
schedule a trip to Sweden for a
week, because I have some
friends who live there, who I
met when they were living here
in Spain. So I'm gonna I'm gonna
go to Sweden for a week, during
the summer, and really looking
forward to
Jeroen Leenarts: and he said,
like, going to be like a
vacation? Or is it going to be
like, time off? No work and just
enjoying your time there.
Emilio Pelez: It's a
workstation. My company is in
the US, so we don't get as many.
Jeroen Leenarts: So but some of
it, how does your typical day to
day looks? And because I reckon
at some point, you get up, you
start working, if it's a
workday, and then then you wrap
up again. And then in the
weekends you start exploring, or
is it more a mix of things?
Emilio Pelez: Yeah. So I was
when I was doing the digital
nomad experience, I an advantage
of working in the evenings,
because I had to sync my hours
with the US office, not
completely, but a little bit.
And an unexpected side effect
was that I was up and out when
everything was open, because it
was in the morning or midday. So
there was no problem with going
to museums or shops, because
everything was open and
basically empty. You know, like,
I could go to museums, and they
were not full or anything. And
then during the weekend, that's
when I would like walk, go out
and meet people. I would do a
lot of meetups to meet people
Jeroen Leenarts: and never cuz I
think Valencia also has, has
like a meetup group going on
their pandemic, right. Or,
Emilio Pelez: yeah, there's a
big like foreigner community
here in Valencia. And there's a
big group of digital nomads or
and we not not so much anymore
because of the pandemic and
everything but we used to meet
up For co working every
Wednesday, and it was really
refreshing to see, you know,
different faces every week, some
new and some some like more
familiar. But yeah, there's a
there's a big community of
digital nomads that are a bit
more permanent actually, like a
lot of people come to Valencia
and they kind of fall in love
and they settle here.
Jeroen Leenarts: That's that
that's like annoying. You want
to travel the world? And then
you end up in a place that you
don't want to leave again. So
that's such a luxury. Yeah,
exactly. So bad habit. So people
who are software developers, and
might be interested in doing a
similar thing, once the
restrictions in the world are a
bit less again. So what are some
practical tips or advice that
you would give people
considering such a move?
Emilio Pelez: Well, I used to
have so many, but I slowly
forgotten, but I think one of
them is just stay for a month in
the city if you have to work
during the week. Because
otherwise, if you're hopping
every two weeks, you don't
really get to experience I also
was a bit I kind of had to
travel during the weekends,
because otherwise it would
interfere with my with my work.
So staying for a month or longer
in the city would allow me to
actually explore the city. And
my goal was to experience what
it was to kind of live in a city
instead of just visiting for a
week as you would do if you're
just traveling.
Jeroen Leenarts: And where do
you stay? Because I expect that
you wouldn't be staying in a
hotel.
Emilio Pelez: Right? No, I
would always get an Airbnb,
which was a bit pricier. But it
was necessary because hotels
don't always have the internet
connection that you need. And
Airbnb is a bit more reliable
when it comes to that.
Jeroen Leenarts: That's an app,
did you ever have problems with
your internet connection that
you had to figure out a way to
get something working for you so
that you would be available on
Monday,
Emilio Pelez: I think maybe I
had an issue with one of me in
Paris, where the internet was
down for a couple days, and he
was quickly fixed. But now that
you mentioned that another
advice is to get by your iPhones
unlocked directly from Apple.
And so wherever you land, you
can just go buy a SIM card and
put it in and you have a hotspot
you have very cheap data because
Europe and the UK, the data is
very cheap compared to the US,
Canada and Mexico. So that's
another thing that I I've always
done or like, for a long time I
buy my iPhones are locked. So
when I travel, I can just swap
the sim.
Jeroen Leenarts: And especially
with ECM since even easier,
right?
Emilio Pelez: Haven't used
those actually. Okay.
Jeroen Leenarts: Yeah, I just, I
think I transferred my, my
physical SIM card to an ECM and
it was surprisingly easy to do,
actually. So um, so but we
talked a lot about your, your
experience as an individual,
like living and working as a
digital nomad. And what's
interesting is that after you
graduated from Vancouver
university, you started working
at Saffi apps. And that's an
agency right? So there must have
been a lot of different
products, different code bases,
different parts of the iOS
ecosystem that you've seen over
the years. So can you can you
give us some some highlights of
the stuff that you that you have
worked on over the years that
you think yeah, that's like
really cool. And I hope I get to
touch that technology again,
sometime.
Emilio Pelez: I think one of my
favorite projects was a, we were
using CT image and eventually
even SceneKit. And it was an app
for Levi's where we Levi's
wanted an app to design their
new collections. So we made an
iPad app where you could design
the genes and like add effects,
tents, and even damages. And he
was actually featured on the
GIF. The world, according to
Jeff Goldblum on Disney plus.
They for a few seconds, it's on
the screen. And that was very
exciting. To see, I think that's
probably one of my favorite
projects.
Jeroen Leenarts: Okay. So and
what technologies and what
frameworks built in the iOS
platform? I really like working
with them.
Emilio Pelez: I mean, at this
point, I think I think I mostly
enjoy building UIs and
animations. And I've been using
Swift UI a lot. And I think it
does a really good job at making
that very easy and very
enjoyable. Because right now,
with UI kid, you have to set up
constraints or calculate the
frames. And with Swift UI, just
tell them like, hey, I want a
button in the middle of the
screen. And that's it.
Jeroen Leenarts: Yeah, with all
the layouts on the UI kit, is it
takes a bit of code to get that
working, unless you're using
Interface Builder, or what is it
the storyboards. But then that
has its own set of challenges
really? Looking at UI kit and
swift, why do you think like
swift UI is ready for for any
app nowadays? Or what do you
think?
Emilio Pelez: I wouldn't say
it's ready for any app. But if
you have an app, that where you
are, you can design around the
constraints of Swift UI. I think
it's a really good tool. I've
been using it very, like on my
own personal projects, and
basically all swift why now? And
I'm really enjoying it.
Jeroen Leenarts: So and with
your accompanies projects, are
you like required to support iOS
14, for instance? Or maybe even
iOS? 13? Or is it iOS 15? Only,
and it saves you a lot of
headache for not having to do
backwards compatibility?
Emilio Pelez: Yeah, I think
that's the the main headache is
that a lot of people like
rightfully so they require iOS
14 or even a 13. And with iOS
for 14, you may be able to use
Swift UI, but swift UI in iOS
13. I think it's too unpolished
to use. So
Jeroen Leenarts: yeah, it's it's
really incomplete still. And
except when you want to do which
is right, but that's like I was
14, I think that that they
change that to Swift UI. And
with with Swift UI, and if you
compare that to developing a
similar set of features with UI
kit is are you quicker with
Swift UI? Or doesn't really
matter? What what's what's it
like for
Emilio Pelez: you? Right now, I
am a lot faster. It was 50. And
I also enjoy it a lot more.
Jeroen Leenarts: And what is it
specifically that you like about
Fisher Island,
Emilio Pelez: I think is just
the speed that I can build
stuff, because you know, I have
my day job. And I do that eight
hours a day, five times a week.
So my limited time, my free time
is a bit limited. So I don't
want to spend it building UI kit
and adding constraints, or so I
think that's just the speed is
mainly what I enjoy about Swift
UI.
Jeroen Leenarts: Now. Cool. So
but you also tend to write a
little bit about the stuff that
you're working on, right? It's
not only that you create your
own side projects, but you have
your day job. But you also like
writing about stuff. And is that
something that you picked up
recently? Or is it something
that you've been doing longer?
Emilio Pelez: It's something I
do every once in a while. I'm
like, Hey, I should write
something. So I think the first
thing I published was a bit of
my experience being a digital
nomad. Yeah. Then yeah, every
once in a while, I want to share
what I've been working on. And I
put it on medium. Just because I
think it's an easy way to have
been noticed by at least some
people without having to do a
lot of promotion outside of it.
Yeah. And yeah, every once in a
while, it's it's very, whenever
I remember about it, I do it.
Jeroen Leenarts: Yeah. So it's,
it's really, it's an outlet, if
you just like to get something
off your chest and on the
technical level Want to share
something exactly. So because
recently you you published an
article that's January that you
published one, that was about
building a response chain using
the Swift UI view hierarchy. And
that's actually interesting,
because the responded chain is a
really a UI kit. Concept,
really. And if I understood the
article correctly, you will
really want to recreate to
respond chain type behavior in
Swift UI, right?
Emilio Pelez: Right. So I never
really use the responder chain,
the UI responder chain, and UI
kit, because it's a bit opaque.
Yeah. But whenever I'm building
UI Kit apps, I usually build
like this scaffolding that ends
up being basically a hierarchy
that starts at the app delegate,
or the scene delegate. And it's
constructed by coordinators that
manage the navigation in order
to not have the view controllers
handled that navigation. And
when I arrived to view, I
realized this thing that I
usually build is already here in
the form of the view hierarchy.
Yeah. And so something I usually
do on my apps is, you know, a
child view controller may want
to send an event up the
hierarchy. So for example, what
happens if there's an error or
like if a user is not signed in,
but this view controllers
coordinator doesn't know what to
do, because it's not the signing
coordinator. So it just keeps
going up the chain, until one of
the parent coordinators realizes
Hey, this is my event, I have to
handle this sign in and you
know, display a sign in screen.
And with Swift UI, that's like I
said, it's basically built in.
So it's something I've been
looking a lot into. I've been
using a lot of the environment
values and environment objects,
but mostly the values. And by
when I built this when I wrote
this article, I also built two
very small frameworks. One of
them is for handling events.
Yeah, or actions. And the other
one is for handling errors.
Okay. And the way it works very
quickly is I create a new
environment value that is a
closure. And any view that wants
to trigger an event reads that
closure and calls it. And any
view that's an ancestor of that
view, can register its own
closures to receive that event.
Yeah. And something it does is,
if you cannot handle that
closure, if you cannot handle
that event, you can just let it
continue. So yeah, you're not
obligated or that view is not
obligated to handle it and to
consume it. So that the gist of
it. So basically,
Jeroen Leenarts: if a few is
part of your response chain,
basically means that you have
probably an extension on a
protocol defined that if you
call the event handling logic,
and it tries to execute that
logic, because it has its
available locally in the in the
type. Or if that's not the case,
it starts looking at a few
hierarchy to see what the first
parent view is that also adheres
to this protocol, and then calls
the handling function, they're
forwarding the handling up to
chain, they're really
Emilio Pelez: the concept is
kind of like that, but without
protocols, it's using the
environment. So okay, a view
would substitute like registered
their own closure in that
environment value. Yeah. And
then it will propagate it
downwards. And then whoever
calls it closure is going to
call
Jeroen Leenarts: that one. Yeah.
So and then. So I'm trying to
wrap my head around what, what
the logic is that does the event
bubbling up to chain really? So
is it and that if you have like
a more specific view, that you
then override this environment
variable, and then basically,
there because you you overwrite
the previous value on that
environment variable, you can
hang on to it. So then basically
wrapping it with your own
version of the current
situation? Is that what you're
doing?
Emilio Pelez: Basically, yeah,
I created a view modifier that
reads the environment value, and
then sends its own. And when it
sets its own inside of its own,
in the one that passes
downwards, you can call the one
that comes from above, and that
that's how you connect the
chain. And you can also decide
not to call it if you decide
that the event has been handled.
You just don't propagate it
upwards. And that's where it
ends.
Jeroen Leenarts: Yeah, that's,
that's, that's what you
something similar that you do
with UI responder as well. So
you mentioned a little bit about
architecture in, in Swift UI
applications? And was it a bit
of a discovery that you needed
to do to figure out what a
somewhat decent architecture
would be in Swift UI app
compared to UI Kit app, or was
that immediately straight up
obvious, and I could get started
with a piece of code and not end
up with a mess, really,
Emilio Pelez: I definitely
learned the hard way. Because
about a year ago, I, I was part
of this swift UI jam. And then
with a small team, we created
this app, the score call, it's
called capsule private storage.
And it's basically a simple file
manager with a password. And we
did it, it was a small team of
three. And we were not very
experienced with Swift UI. And
we just hacked it together. And
I learned a lot of things that I
shouldn't do. It's all very
tightly coupled together. And
since we're using Core Data,
previous don't really work
anymore on the project, because
it takes too long for the core
data stack to be initialized. So
yeah, previous don't work
anymore. And so I've been
focusing on making things a lot
more independent. And I've also
been doing the micro target
architecture and that way,
mainly, because that way, the
Swift UI previous don't break.
That's that's been my goal. And
I call it preview driven
development.
Jeroen Leenarts: So and you
mentioned micro architecture,
they're just in as a side note,
but what do you use to split up
your your codebase in
frameworks,
Emilio Pelez: and I basically
use frameworks. And since I'm
using this events, I don't have
they don't have to depend on
each other. The view just sends
an event and, you know, another
framework or another, or the
application target receives it.
And that one knows about the
framework so it knows what to
look for. But the child view
knows nothing about who's going
to receive it or what they're
going to do with it.
Jeroen Leenarts: Yeah. So and
that's basically a lot of stress
package manager configuration
that you need to do to make sure
that the frameworks are defined
and that everything ties
together in your app targets,
right?
Emilio Pelez: I've avoided
using super measure, I just
create a new target with a
frame. Okay.
Jeroen Leenarts: So manually.
Yeah, it's pretty much Oh,
that's that's like, yeah, at
least, tried that myself with
Xcode. And I must say, the, the
project inspector in Xcode,
while it's there's a lot of
options in there. I always get
like lost in when I'm scrolling
down. So what I tend to do with,
if I set up a micro architecture
framework is to use a tool
called Twist, probably seen a
little bit about that as well.
works really nicely in, in my
use cases. So yeah, that's
definitely interesting that,
well, I try to avoid what you're
doing, because I can't make
heads or tails at some point
anymore. And I don't know you
have these multiple targets that
like have like small differences
in hardware setup. And then for
some reason, things start
working, but then sometimes they
don't, because you have
something with the symbol
occation and not correctly
configured on one framework. So,
so interesting that you that you
take the manual approach there.
So is that code base that you
work on? Is that work that you
often have to do on your own? Or
are you working with a standard
set of people together on code
base? Or what's it like in the
agency that you're working?
Emilio Pelez: So this, this is
what I'm talking about? It's
more about my personal stuff. So
it's easier because it's just
me, and no one messes with the
ESCO configuration?
Jeroen Leenarts: You can do
whatever you want, right?
Emilio Pelez: Yes. At motors we
are. We haven't implemented it
yet. But we have spent a fair
amount of time looking into
twist and creating our own
templates, because it seems like
a very powerful thing. And you
avoid this annoying, tart, like,
Project merges, you know,
Jeroen Leenarts: the the Xcode
project and merge and workspace
merges, yeah, yeah.
Emilio Pelez: Which is not as
bad as storyboard merge. But he
gets close.
Jeroen Leenarts: It's just the
whole heaps of XML. And then
it's like, good luck with that
one. Yeah. So. So is it said,
there's a big difference between
the code that you work on on
your own time and the code that
you work on? Within the agency's
context? Is it true that within
the agency, there's like, a lot
of prescribed ways of okay, this
is how we set up apps, at least
to sort of general level so that
projects are easily transferred
between are easy, but easier
transferred between colleagues.
Emilio Pelez: I think I was
really lucky in that regard.
Because Motors was mainly a web
agency, when I joined. Yeah, and
I joined as a senior iOS
developer, as basically,
basically the only scenario as
developers. So I, it was part of
my job to come up with all of
this practices. Yeah. Which is,
that's cool. still a work in
progress. But yeah, gives me the
freedom of yes, the fine, hey,
we're gonna use twist, we're
gonna do this instead of this.
And we're gonna try to do things
in a standardized way. So that
handoff and onboarding is a lot
easier, because something
personally, I don't really like
when you come into a project,
and you don't know where you
are. So
Jeroen Leenarts: everything
looks different in every code
base that you open, that's not a
good thing, especially on an
agency that you have, like so
many code bases that are like, I
imagine that this I've worked at
an agency very shortly, like
nine months. And I then quickly
discovered that what that was
not something for me. But I
noticed that there's like so
many code bases, and you're
switching around between these
code bases, especially like, in
between like, August, September,
you know, when you need to get
everything ready for the next
big update. All the customers
want to make sure that our app
is up to date and working on the
new iOS version that's going to
land at the end of the year. So
um, you mentioned it's still a
work in progress, getting the
standardization going within
Modus. But you entered there as
like an SR, iOS developer, you
were pretty much on your own in
the beginning there. So it
wasn't hard, like staying up to
date or what, how did you?
Because I noticed with software
developers, it's quite helpful
to have somebody to bounce some
ideas off. So so how did you
deal with that situation to keep
your own progress and, and
technical expertise on point?
While you were somewhat on your
own there?
Emilio Pelez: I think I used a
lot of what I already brought
from Savvy apps, to motors, so
that definitely helped. And I I
already had a lot of ideas on
how to do how to organize
things. And I think not having
anyone to tell me, Hey, I don't
want to do it like this was
actually a bit of an advantage
as well.
Jeroen Leenarts: So and and
nowadays, you have to work with
a number of IOs colleagues, I
guess. And was that a gradual
shift? So is it like that you
still are working on your own?
Or are you leading people or has
changed a lot? Over the years or
not?
Emilio Pelez: Yeah, I joined
motors, I think at the end of
2020. So it's been a bit over a
year. Yeah. And yeah, we're
slowly growing the the mobile
department. And I do have to
work with other people, of
course, but I am more in a
leadership position now. So I do
still get to make these choices
and, and not so much make a
consensus, but more like making
a decision. Okay.
Jeroen Leenarts: So what are
your plans for the near future?
And if I might ask, so I like
looking to more developed this
standardization effort more and
get more projects going with
more clients or?
Emilio Pelez: Yeah, definitely
I on my side, and motors, I'm
not in charge of getting clients
or anything like that. So it's
more about deciding who goes
into which project. On my
personal site, I am looking into
augmented reality. Yes, I'm
really looking forward, I keep
looking at all these rumors
about the glasses. And I'm
definitely gonna buy those
overpriced development kit.
Jeroen Leenarts: Put it on your
head, bump some balls and see
what happens.
Emilio Pelez: Yeah. So I've
been working on a couple of
prototypes with AR. And it's
been very fun. It's, it can be a
bit complicated, because 3d in
general is hard. But since I
have this background from making
games, it really I mean, it
definitely helps.
Jeroen Leenarts: So yeah, that
that I imagined, because there
is still like a lot of 3d
involved, like, manual
calculations that you need to do
when you do ar kits, or is it
not that hard?
Emilio Pelez: It's not you
don't? I think the main thing
that surprises people is how
complicated rotations are
because you have this object
called quaternions. That
basically no one understands how
they work. So you just read
online, oh, if you want to
rotate, do this. And you have
all these transform, matrixes
and stuff. But in general, once
you get into the mindset of
nodes and children, and how they
relate to each other in space,
and how if you have a parent, a
child entity or node may have a
local transform, which is, you
know, if you move the parent,
it's going to move relative to
that, once you start getting
your mind around that, which
thankfully I did by using Unity
when I was studying game design.
It makes things a lot easier.
Jeroen Leenarts: Yeah. So what
was it like? I know we'd like
game engines, you're constantly
when you try to like, draw a
wireframe, really, is that
you're constantly moving your
origin of your context that you
like. Yeah, basically, that you
used to define on what
coordinates you want to render
the triangles, really. So I
still remember that there was
like, a lot of fun, really. And
then if you had this compounding
calculation that you didn't
start, like with the fresh raw
data, at some point, your model
would like collapse. That's some
weird stuff going on there as
well, myself. So yeah, that's
like AR kit. So you're going to
look into that into that in the
future. And do you have some
thoughts on on server side swift
as well, maybe, because I
noticed that you did some light
based app with lithics. And that
you wrote a little bit of a back
end on there using paper.
Emilio Pelez: Yeah, it was
about three years ago, I
believe, maybe a bit more, that
I, I made myself this kind of
silly goal of I don't want to
touch light switches anymore. So
I think it maybe was like 2010,
or something that life fix
announcer Kickstarter. And I was
thrilled by that I got I
convinced my mom to buy a
lightbox. Because I still live
that at my mom's house back
then. Maybe it was a bit longer
ago then. And eventually, a few
years later, I finally had my
own flat in Mexico when I came
back from from Canada and I
stopped traveling. And I started
looking into motion sensors as
well. And I built this deserver
using vapor three, I believe,
yeah, that would receive
information from the motion
sensors. And whenever I walked
into a new room, he would turn
on that light and turn off
everything else. That was the
most basic functionality. But
you could also I also configure
it so that during the day, for
example, the light would be
brighter, and during the night,
like middle of the night would
be very dim. So if you have to
go to get a glass of water, you
don't you're not blinded
Jeroen Leenarts: by the light
and not like totally awake just
because of the light. Exactly.
That's that's an interesting use
case. Are you still running that
code or Is it like, like bins
are like, parked somewhere on
your hard drive.
Emilio Pelez: So unfortunately,
when I moved to Spain, my
luggage was not enough to bring
all the lightbulbs I had, I had
like 14, and they are pretty
heavy. And the apartment that
I'm on doesn't have the Edison
socket, which is a normal
socket. So it's not as easy. So
it also has way too many
sockets. So it would be too
expensive to set it up here.
That's why it happened. But
whenever I buy my own flat, I'm
going to make sure it has the
correct sockets on the labels
for change them. And I'm
definitely going to go back to
it because it's something I
really, really enjoyed.
Jeroen Leenarts: Yeah, it's a
lot of fun. Especially I can
imagine if you like walk around
your own place, and then sort of
like the light follows you. That
that is it's a fun experience.
And unless you're like, I don't
want the light to go on, for
some reason. But yeah, I think
we covered pretty much
everything that we could talk
about, I think, is there
anything that we forget? Right
now?
Emilio Pelez: I can't think of
anything else. No? Cool.
Jeroen Leenarts: Then I did my
homework. Right? Yeah. Cool. So
how can people find you online,
Amelia.
Emilio Pelez: So my website is
Amelia belies.me. My last name
is spelled PE l EY, Zed, I will
make sure it's linked up.
Thanks. And that's you can find
all of my social for everything
in there. And while all of my
socials are also, you know,
GitHub slash, my name, and my
last name, theater, the same
thing, Instagram if someone
wants to look at my photos as
well.
Jeroen Leenarts: So yeah, what I
will do, because I'm looking at
your website right now, I will
link your website, immediate
police. And I will also link
your Twitter. And if people want
to find you, at otter, find us
online. Make sure to scroll down
to the bottom of his webpage
because there are all the social
links and I see email, LinkedIn,
Twitter, GitHub, medium,
YouTube, and Instagram. So
that's pretty much everywhere,
at least at least that I have a
presence on. So yeah, definitely
check out his website. He has
some fun stuff going on there.
And also some some stuff that
you worked on that we discussed,
that's like, sort of like
archival. So that's the old apps
that you worked on from your
jailbreak days. And then with
that, I'd like to thank you for
your time. And if there's any
questions, people can always
reach out to the both of us, I
guess, on socials. And yeah, are
you planning on going to any
European conference, by the way?
Emilio Pelez: Yes, I I actually
submitted a talk for I forgotten
the name of the conference, but
it's in Torino, Italy. Somehow
it says
Jeroen Leenarts: tricked heroes
sit here some I will be at St.
Heroes actually in person. Yes.
I
Emilio Pelez: think if I don't
get to do a talk, at least I'll
probably go to hang out too.
I'll see you there.
Jeroen Leenarts: I am actually
doing a talk there. I already
know. Cool. So I hope to see you
there because that will be fun.
Because then you would be
probably one of the first people
I didn't know before I started
podcasting that I would see in
person in real life. So let's
hope for the best. Yeah. Thanks
for your time. Yeah, thank you
for having me.