AppForce1: news and info for iOS app developers

Emilio Peláez, iOS Developer

March 11, 2022 Jeroen Leenarts
AppForce1: news and info for iOS app developers
Emilio Peláez, iOS Developer
AppForce1: news and info for iOS app developers +
Help us continue making great content for listeners everywhere.
Starting at $3/month
Support
Show Notes Transcript Chapter Markers

Emilio has been developing iOS apps for over 10 years. He is from Mexico, and now works at Modus Create.

You can learn more about Emilio by having a look at:

The I.T. Career Podcast
Your ultimate guide to success in the I.T. industry. Helping you Grow your career!

Listen on: Apple Podcasts   Spotify

Runway
Put your mobile releases on autopilot and keep the whole team in sync throughout. More info on runway.team

Lead Software Developer 
Learn best practices for being a great lead software developer.

Support the show

Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me on Mastodon: https://hachyderm.io/@appforce1

Support my podcast with a monthly subscription, it really helps.

My book: Being a Lead Software Developer

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.

(Cont.) Emilio Peláez, iOS Developer