AppForce1: news and info for iOS app developers
AppForce1: news and info for iOS app developers
Juanpe Catalán, senior iOS developer, creator of SkeletonView.
Meet Juanpe, he is from Spain, studied at the University of Sevilla. He got started as an iOS developer right at the start of his career and has been doing that ever since.
Have a look at Juanpe does:
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.
The easiest way to record podcasts and video interviews in studio quality from anywhere.
Disclaimer: This post contains affiliate links. If you make a purchase, I may receive a commission at no extra cost to you.
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
Hi, and welcome to another special edition of my podcast. I'm sitting here with Juanpe Cataln, I hope I pronounced that correctly. So just to get things started, you're an unfamiliar name to me. But what are some things that people online might know you from?
Juanpe Cataln:Well, I'm from for this painful area. In the south of Spain, I in a software software engineer, I have developing apps for more than 10 years. I started writing Objective C code, without arc when the app crashes because the devices didn't have enough free memory space. And during this time, and I have, I have work on many types of types of projects, like gains, b2c, and b2b apps is the case. So by day one, I always wanted to be focused on approach pick, my preferred that. And I also have an application, they publish it in the app store his his talk, talks on coffee in the CO creator, because I did with a friend. And the subject application contains videos of the most important confidence and events related to their your score. Well, I could say something about the open source, because I love it. And I like to contribute as much as possible. Even I, the owner of some popular libraries, like ops with UI, this repo that tries tries to gather all the resources related to Swift UI. And another one is skeleton beauty. This is very popular library writing in Swift. This library allow the use will allow the developers shall want to scale it on simulating the content that they usually waiting for, instead of you the typical loading view.
Jeroen Leenarts:And you mentioned that you've been doing app development for 10 years, or over 10 years already. And is that like app development in the in a wider sense? So Android and iOS? Or are you specifically targeting yourself on iOS? Only?
Juanpe Cataln:Yeah, only only iOS during, during some time night, the sun Buryats Andre proton? And also something related to Salesforce, you know, this is Salesforce platform. But not really. Well, I not could be a crusade that I did any prior because so they were very little. So my always be focused on us.
Jeroen Leenarts:And what was iOS development, the thing that you got started with in the field of software development, right from the start, or did you do other things before that?
Juanpe Cataln:I started in Serbia here in a company called Canada. And I started that there is inter, so I started when I there, I learned a lot, because the people there are the braids, or were amazing. Also, there was the first contact with the clean, cold contact unit test in naming problems. I remember, we will sometimes think about the name of a property for me. And that diner didn't understand anything out there now makes up
Jeroen Leenarts:what's that an internship that you ended up with, like because of an education that you were doing or was like, right after you finished? Studies?
Juanpe Cataln:Yeah, yeah. When I finished my degree. So what engineer degree I started, well, they offered an internship in some companies in there, and one of them was Fenella Yeah. I use take advantage of this opportunity.
Jeroen Leenarts:And you did your studies at University of Sofia, right. Yeah. What made you decide on doing a software degree in university or software engineering degree I should actually say
Juanpe Cataln:yeah. So good question. I think they always I have clear that I will do it. I could do software degree, because I always be around computers because my dad I like it as well. So we'll saw a word that I like a lot. No, always. In my adolescence, playing video games, no and. And then also, while I don't know any English is sketchy I know with computers is facing some disease of friends. So I like the worse of a computer. So I think the the I always had clear very clear that I will do it now.
Jeroen Leenarts:But were you like as as a young boy already doing something with goat? Or was it like your first experience with software? Writing? Was that during your studies?
Juanpe Cataln:Yeah, to be honest, my first contact with a goat was in the integration. So before that, I think I did in the end didn't do anything. Related to that. Yeah.
Jeroen Leenarts:And you mentioned that your that your dad also had an interest in, in computers and and stuff around computers? Was it because he was in the field of software development as well? Or was it more that he had an interest in technology? In a more broader sense?
Juanpe Cataln:Yeah. Is my ace made that hobby, but because this is a constructor is a builder in the know in English,
Jeroen Leenarts:yeah. thinker. He likes, like, putting things together and creating things with this in his spare time just for the fun of it.
Juanpe Cataln:Exactly. So his hobby for the for for him.
Jeroen Leenarts:And then, while you get to your education, you you get your first taste of software of writing code. Did it like fall in place, then in there? Or did you take some time to really come to grips with the fact that just writing texts actually results in machine code that you can execute and then build upon?
Juanpe Cataln:Depends now because I started doing some websites now. Because then was when the web's exploded? And I started to study, study. Ha, ha, TBL. Because in the in the degree, we studied C, and a little bit Java, and then I, I, to be honest, I didn't like say too much, no, because they call the wall study bedrooms. But I did some I like more. Do websites now because I like also the design, I find, I find a website, something that half the both things know that they call in, on the design. Because if you create a database, or you create a server for a back end, or whatever, you can't see anything, no, but you will be Law website, you can see your gold and anyone can can see you, you're golden ICC to show that, oh, look at what I did.
Jeroen Leenarts:And also you can if you're sitting with somebody at a computer, yeah, watch this or change something here and then refresh it. And now it's different. And you can really see what you're working on. But, but is that also the thing that you that you like about app development that like what you create is very visual and and people especially nowadays, they have some understanding of well at a high level what an app is and that it is something that somebody has created
Juanpe Cataln:not really, I think that I grew up you know from the beginning Yeah, this was very interesting for me now because as you say, now that you can show you called and what what you could do it but but I think in this first company no agenda. I call in a very important play it call it play tails. This was an engine for for interactive books on this journey was an abstraction layer of cocoa study. And I learned a lot about pattern design patterns. But she only performance because we use we should. Hi image so the memory closet constantly and I seen that sense of the spread, I found out that I really like to work on creating tools for other teams. No, because I like creating apps. And I like the UI. Also, I like when I create an application take care of the UI and the use of speedy and non ECOSYS. I think it's pretty important. But, for example, skeleton view is, pride is so relatable for me, because this is a tool that is not for the user is, is for development. And, and I think it's No, I prefer, for example, work on that.
Jeroen Leenarts:Okay. Yeah. So you're really enjoy creating tools that allow developers to, to do their job quicker, better, more efficiently.
Juanpe Cataln:Yeah. And yeah, in fact,
Jeroen Leenarts:and can you like, because that's something that you learned at your at your first job? The the internship that you did? So? Because that was if I'm correct, that's like, you helped develop a tool that allows other people to create children's? Yeah, interactive book experience, right. So the SEC lands. With this knowledge that you enjoy creating tools for developers, is that something that you immediately were able to take forward in your career because of course, this internship had an end. And then you had to probably you'll get a job offer there? And then maybe you stuck around for a while, but I reckon, 10 years down the line, it's not not a company that you're working for right now? I guess.
Juanpe Cataln:No, no, no.
Jeroen Leenarts:So whatever, what were you able to do with this, this this life lesson that you like, creating tools for a specific type of people?
Juanpe Cataln:Well, I think that the main thing that I learned was that the creating application or coding is not just creating an application or the creative needs to develop it, to level up some something. And this engine, for example, I thought that, okay, we have a code, we have an engine, this is a render of graphics, and then we are creating a new layer that is operated its proper data. And then for me, I was very interested that okay, you can do a create, create more code based on another code, no, and, and you can take care of the performance chemical, okay, okay, I did that. But these stories use it to other devs or their designer, and they give us feedback about okay, this is not working very well, or maybe this this part could be improved. So it's more challenging for me. And then these, this kind of stuff, maybe, is something that I learn when when I work on that.
Jeroen Leenarts:Okay. And but what was the thing that you that you worked on after this children's ebook publishing platform?
Juanpe Cataln:Well, after that, I moved to Madrid, in Spain as well. I started to work in, in BB when in a bank working in the in the bank application. And also, they started because they apart apart from the bank application, they have, they had more, more parades, and one of them was elearning platform to learn English colored dot English, also, is a learning platform. So we, we had to show videos. And the most challenging task about that for was that then the video player, the native video player didn't have or didn't support? Subtitle. Yeah, so we created a layer of all that we have to synchronize with, with the video in order to show the the racial titles. On the display, it was very interesting, very appealing for me as well.
Jeroen Leenarts:Okay. And so there you were, like, again, doing a similar thing, right, creating tools for the developers, but in very different fields, but in what ways what similarities were there between these two fields and because yeah, work within a banking environment and working within like childrens ebook, yeah, it's just just a product manager is already way different there, right?
Juanpe Cataln:Totally, totally different, totally different. And the speed is totally different is different as well, because in the previous company, were apart from the play test engine, we did many application, as I say before games, also, we work a lot in in in application for, for a sports as part of application, but like Formula One, and then the user can follow the run in life. So, at this time was very interesting, because, you know, the right task is more expensive, expensive, expensive for the backend also was very interesting for other depths, how we can reach 1000 requests without an higher cost. Yeah. And then we, we, the trick, was that, okay, we have some journalists writing in the database, and we only read from the static JSON these JSON was dated frequently No, but we only are really, so now is something normal matter, that time was something that very tricky. And yeah, I say before is more or more or less is the same, but they do say the product manager was totally different, the velocity totally different as well, but even the environment, so because we have, we have to wear a suite every day. So, but Well, I learned a lot because for me, the breath is very important, but the thing is, is is more important. Now so So, the people there also were also so I I always try to extract the knowledge of them of my workmates even shared my knowledge. In fact, I think these are great ways to to keep growing and sharing the knowledge between us.
Jeroen Leenarts:And so that's the banking apps and stuff that you worked on. But what did you do after that and because because I think there's still some roles between that and the work that you do nowadays, right.
Juanpe Cataln:Yeah, yeah. After that, I moved to another company. This is this is this company was the most different company that I work now, because in the interior I work in iOS application in the bank as well in this application, they have toppled over related to the Salesforce man is it April by April remember very well, when they sell first they say Ceman gain points about based on the sales and then they can they could and could redeem the points in our catalog now because we have we had bikes TVs, we we we were supermarket and I was in the investigation department. So they do because they have another plan for so if they have 20 clients they have the same preset clone 20 times now. So they want to create a product package a generic packet that could be used for any any client false and brilliant client with less effort. So this time I started to lose on Andrade Mbps also in cell first because we included the the catalog in in the cell first perform. So I did I did some investigation. Also I create an API in RDS using the load balancer Yeah, was a very interesting time for me that I learned a lot outside of the iOS world. But after three years, I found out that what I really wanted to do was iOS. No. So then I decided to do to move to another company that focused on the iOS.
Jeroen Leenarts:Again, yeah, yeah, so. But what's interesting there within this, within this company that you work with Salesforce related technology, is again 20 projects, doing similar things, finding the common ground, making sure that you basically create some tools and some supports for people to manage those 20 different projects on all these different projects. So again, it's like creating developer tools that you're really working on. So it is a common theme that's, that's running through your career, right? And so after this adventure with with the Salesforce technology, then what are we then now in present day? Or is there still some more stuff that you had your hand on?
Juanpe Cataln:A roof again, to another day? Maybe, you know, his evenings? Yeah. How old are you? In London is Apollo, they have agents of the year, which is the company but they have some brands? And there they have an iOS by label application. Yeah. So we started digging with they say no, we have a core code and the UI or the look and feel is different depending on the brand. So in this company, I learned for example, to working in teams now before because before that, in Serbia, now in Serbia, I work with within, but but in the rest of the company, I always work with one is more than me. So always all the olamine so in this company, they started to work okay, in continuous integration. The process now in the in the software development. Okay, we have release, train, we have gamma board. So some Yeah, the process to develop an application with many developers? No, just do. And yeah, I learned a lot about that.
Jeroen Leenarts:Yeah. But was it difficult adjusting to that new situation that you're like? Well, working with process having like, a backlog items, having tickets, getting those tickets across the board? Making sure that that it's tracked What ticket is attached to which release really? was a difficult or was it like just a different way of working for you?
Juanpe Cataln:Well, I think when the company was in transformation process, because they didn't do anything. task and then we they are, they were starting to, to do the things in an agile way. Why agile way. So I think we, we go together in the process. So we have seven scrum master. And I don't remember really well, because now I'm working in combat. Not remember the naming
Jeroen Leenarts:for probably something like product owner or something like that. Right?
Juanpe Cataln:Yeah. Products are now well, yeah, I can. So I learned through during the during the development
Jeroen Leenarts:Yeah. So So yeah, that's that's basically a way to just learning on the job on agile practices and process really. So and the company that it was happening at was was it he dreams? So he d r E, A M S. So S and what does this company do? So you had it had a white label output? What what what field were it in?
Juanpe Cataln:Oh, yeah, sorry. I didn't. I didn't say anything about that. Yeah, they buy flights. Okay. Yeah. Is online travel agency? Yeah. Yeah, they, we they flights and hotels. And it's like, it's not a Skyscanner because this guy's gonna please do come find him inside Skyscanner? No, it's good Kenny some meta searches better? Well, sorry. Yeah, the thing is like Kayak for example.
Jeroen Leenarts:It's it's booked booking flights, hotels, flights and hotel combined, then the car rental when you're there getting to and from the hotel and to the airport, things you can do while you're there. So it's basically you can it's a platform with small pieces that you can put together your own vacation a trip, really. So that's probably probably a lot of data going through one of these, these companies, especially in the sense of just the sheer amount of options that people have available, when they want to travel.
Juanpe Cataln:Yeah, so
Jeroen Leenarts:eDreams that's something that you that you worked on. It was it was that, again, something that was more in the Developer Tools area, you mentioned that you had to like really work in a company that was transitioning into an agile way of working? Or was it really app development that you were doing there?
Juanpe Cataln:Yeah, and in this company, only the core? No, we could say that it was a tool, but it's not really at all because it's something that we use with all it in use now. So in the in the in this time I was focusing on on the UI to create new models, new features, that remember, for example, that we create the six selector in order when when you are you were booking a flight, and you do have the possibility of choose the seat that you want. Yeah, I would put in there. And remember was that was the first time i i feel that what I was doing, or the impact that was I was doing was was higher now because they have many, many users. And was the first time that I worked in, in, in application that is used by many users, a lot of users.
Jeroen Leenarts:Okay. So yeah, that's, I can imagine that if it's a company that has a lot of white labeled apps, and just a lot of different different flights and things go through the day, these companies only work when they're working at scale. So then, that's that's a dreams. But what happened next, Chris, let's just keep on going until we're at like at today.
Juanpe Cataln:Well, before today, I will because I work at domestic every now. But before that I was working in in in 20 Telefonica this company and because they have Why don't remember that well, his career. Yeah, like Korea. And we we did the application there, where they you said, can find the invoices. The data that they consume it? And yeah, I was there for almost a year. Yeah. And then I moved to America. Here, this is where I'm at. Right Now. Now. I'm working.
Jeroen Leenarts:So and then you started working at at domestica. And what do you do at that company then?
Juanpe Cataln:Well, the base case is is creative community where the creative experts share the knowledge through online courses. At the end is something like literally platform as well. Yeah. So I'm working on the ice application. Now, we are five is deaf, yeah team. And previously, initially, the application was writing in red native and was delighted to see you. So now we are working on improving the code base, taking advantage of Swift features and our model realized side by side When creating new features, but also we are the main task is to improve the codebase. Before to create new features because it's, it's amazing. So So yeah,
Jeroen Leenarts:okay, because at the same time looking at your as at your GitHub page a little bit, and there's a lot of other things that you're actually doing, besides the skeleton few open source library, I just noticed, because of course, we've got in touch with each other, I think through the slack of two weeks, I think it was, and you're part of that organization, but do you have an active role on that open source project as well? Or did you just so happen to to do some some commits and some some bits of code on that code base as well?
Juanpe Cataln:Yeah, I use it of iron to is usually because as I say, before, we are mobilization we are moolah, right mobilization, the prayer, we are using to the Find, at least to the find the appropriate manifest. And we are so satisfies or but I did some contribution, but to be honest, I'm not an important role and and I know that an active role in interest.
Jeroen Leenarts:And I go like, Yeah, and so but you used in your day job at domestic alright. Yeah. And and what is the what is it about two is that you really like them?
Juanpe Cataln:Well, if you ask to attain the best thing is that they don't have a Go Pro to file conflict nowadays is the best way. But no, trees, we find very, very easy to use, very easy to define the new problem. Yeah. And also the dependencies. No, because even using different dependencies manner, you know, like CocoaPods, or Swift package manager. And we don't know, if we don't, if the if this doesn't SS, then we'll know how we go through the Soul of the dependency stuff for some. Yeah. So I think that the word that these guys are doing is awesome.
Jeroen Leenarts:Yeah, and you also sponsor them on GitHub? And I noticed Yeah, so But then let's switch to the skeleton view a little bit because that's I think, the library auto repository on your GitHub profile that has the most stars and the most forks? Can you like in a few lines describe what this what this this framework actually does for if somebody starts using skeleton view
Juanpe Cataln:Yeah, the library is very simple. In order that is, you know, today almost all application half assing task like API requests or long running processes and while this task is running, now, they usually usually use the typical loading view, but with a skeleton you can show now this skeleton is are the same the Nick you can show the skeleton simulating the content and then is the speed in for the user is better not because in some way you are preparing them for what they are expecting or they are waiting for.
Jeroen Leenarts:So and it isn't a library that you that you created or is it something that you that you help them or
Juanpe Cataln:Yeah, I am the creator I created in in 2017 and was for me, I was surprised now because I started doing simple, simple private repo to use in my in my own private, but when I finished the development, I thought that okay, maybe the skeleton is the same technique. No. So maybe other daps Good, good find this, this library useful for them. So why not I create a readme file with some samples and I release it and what based on price for me, so basically because the library gained it quickly, popularity Yeah, and I think Getting in some newsletter. But but the turning point was when it was published in the iostat, weekly newsletter by David Byrne. And then the traffic and lots increases these aspects. Yeah. So
Jeroen Leenarts:that's fun. What, like, getting mentioned by the right person actually can get you nowadays? So you've been working on this dis framework for quite a number of years already. And what's it like to support an open source library?
Juanpe Cataln:Today, it doesn't pay my bills. But, but for me is so lethal. When, when I when I see that someone creates a new pool request, phishing attacks, or, or developing a new feature, even sometimes I didn't know how to how to how to fix a lack, or I didn't have the bandwidth now and when. And the help of other depths or screws for for the for the library? No. So for me, this interaction is is why why? What I've, I made me feel better base. Good. Sorry. Yeah.
Jeroen Leenarts:So and I'm not just to kiss you have another side project that has quite a lot of attention, I think as well. And that's the that was the coffee thing. Right? Yeah. Toxin coffee. So what was the idea there? Because where can people first of all, where can people find that? Online?
Juanpe Cataln:Yeah. Well, idea, the idea with application I did with a friend Sophia, this is an iOS developer, iOS developer, as well. And, you know, all the conference, polish the videos in some platforms now do to be male. And always, when you will conference or you see a conference, you say, Okay, this talk, I need to see again, or I'm going to put this in the watch in the, in the in the, in the wish list. But after that, maybe you don't remember where you put this video, they build the land? Or do you remember that you have a video to waiting for you? So we thought, okay, we could create an application that that contains all these videos in in a single place? In order to find them easily. Yeah. So this is this was the idea. And we we did a simple application with with single, simple UI. But it more or less the same, that skeleton Bureau now when when we finished the development, we said okay, maybe this application could be useful for for other depths now, because maybe they they have the same problem. No, we don't, don't and don't store anything, all the historic information and the links. So when we tap in a video, we open up with you and show you the player. So because the application is free, no, we don't we don't we don't get any money. With that.
Jeroen Leenarts:So and where do you find the conferences then that that are in your app? Because there's quite a number of of conferences in there, right.
Juanpe Cataln:Yeah. To be honest, this is the the worst path of this application. No, because right now we are we are doing the stuff manually. Yeah. So it's harder because we have to be add to the check in the conference and checking if the conference publisher to be to get notes or so this is the worst part. Maybe in the future, we could create a scrapping application that get all this information, but right now we don't have any little
Jeroen Leenarts:and if somebody wants to find out more about the toxic coffee app, where should they look them
Juanpe Cataln:up Well, now we are considering to read read, more or less, because, but now writing in interview, because at the end is separate. And within that the best way to, to learn something is is practicing practicing. So these applications for the app, so I think that all the apps has a lot of the latest iOS version, so we could use the latest version as well. It's a good opportunity to, to have our first our first application in Production Readiness reviewing.
Jeroen Leenarts:Okay, um, yeah, so I think I think we're there now, at the, at the end of what, it's actually the current state of your career, but like, we started at the beginning, and we're now well, not at the end. Let's hope not, I'd say, there's hope there's many more years of cool stuff that you can work on. Is there anything that we that we forgot to mention or anything that you say how we have to talk about that as well?
Juanpe Cataln:Well, I always good to say something. Because I would like that when I started someone say me that they say don't don't follow trends. Now, if you're standing in the software development at a word, don't follow a trend now, because in software development, I think that there isn't a silver bullet. So a problem could be solved in many ways. And and the good thing is that all these solution, could we believe? So be critic and and only use something if you find useful to solve one of your plan? Yeah. Yeah, it's a deep either. And I think that's it. I don't know if I couldn't say anything more.
Jeroen Leenarts:No, I think I think that's good one. Where can people find you online?
Juanpe Cataln:Twitter, I use Twitter a lot. Is the is there a way that I, I, I tried to be up to them in so so they can find me. Then I post white with some tweets. But I know, I not so so what if To be honest,
Jeroen Leenarts:okay. Yeah. Because your Twitter handle is? Let's see, at one pig cuts alone. And we'll make sure to link that in the show notes so that people have easy time finding it. And with that homepage, I think we're there and really enjoyed listening to what motivates you to be a software developer, which is most people they become a software developer crested just really want to build cool things. But you actually are a software developer, because you like building cool things for people who like building cool things, which is kind of meta as well. But then in a good way, not the meta first way. So So yeah, and I think that's, that's, that's very nice that that's something that you discovered very early on in your career like that, creating tools for developers and making things easier for people who are doing the same line of work as you are. But then just making their job a little bit easier with with small things and small helps that you that you provide them. I think it's really cool. I hope you will, you'll be in iOS development for some years to come because who knows what kind of cool things you're still kind of come up with.
Juanpe Cataln:Okay, so thanks for having me here. And I enjoyed it as well. So thanks