Django Chat

Django and iOS - Filip Němeček

Episode Summary

Filip is a Django and iOS developer. We discuss his switch over to Django for backend APIs, the current status of iOS development, VR headsets, and more.

Episode Notes

Support the Show

Episode Transcription

Carlton Gibson 0:06
Hi, welcome to another episode of Django chat podcast on the Django web framework. I'm Carlton Gibson joined by Will Vincent. Hello Will!

Will Vincent 0:13
Hi, Carlton.

Carlton Gibson 0:15
And today we've got Phillip nemecheck with a Soos. Well, Philippe, well, thanks for coming on up. I'm gonna say you're really an iOS developer on you. Yeah,

Filip Němeček 0:25
That's right. Hello, everyone. So it's crazy to be alive here. Because I'm used to listening to that intro, but now I have to take part.

Carlton Gibson 0:37
Thanks for coming in. So as I say, you're in it extensively in iOS developer. But there's a lot more going on there. And tell us a bit about your background. And how come you happen to be on a Django podcast?

Filip Němeček 0:46
Oh, well do under full wear. If you're not

Carlton Gibson 0:50
the full version? Come on.

Filip Němeček 0:53
Yeah, I guess I started like, programming in 2012. For Around the time, first year in college, when they started us with Java and C, and no, that wasn't super great. And then I was fortunate enough to have roommates who are in their third year, I think so one of them suggested that I look into C sharp. And that was much more approachable compared to C. And, you know, in Java. Also, I think the Visual Studio by Microsoft was a big factor. Yes. And I think I somehow transitioned into Windows Phone development, if anyone remembers that. Oil by Microsoft, I think it's dead now. I've did Windows Phone for, I think, three years to write my own apps on their on their store. And then my first like, part time job during school was doing Windows Phone development, and I did something with SharePoint, I don't remember and then perhaps even do with SP dotnet. And then yeah, and I think late 2016, I switched to Mac, because I, I think I had some various issues with windows all the time. So I decided to get the MacBook Air and started doing iOS, still during school just to learn it and to be able to develop mobile apps. And I think that's also when my Django like journey or like, learning started, because, you know, I switched to Mac OS. And then I realized that, you know, if I ever get a nice idea for a website, or web API, or whatever, I cannot build it, because I only knew I couldn't do SP dotnet. And you couldn't build it on Mac. So I was starting to look around and I didn't want to do Java.

Carlton Gibson 2:42
How did you find Jango in that environment, because you might have found node or you might have had Ruby or you might face.

Filip Němeček 2:47
I mean, I was sure I didn't want to do a PHP route, or JavaScript by can. So I was kind of Googling around, I think, perhaps something like SP dotnet alternatives or something like that. And I think I found Django like, relatively quickly, it was perhaps even the first thing I tried after, you know, deciding to learn something that I could use on my on Mac. And yeah, I think I did that the initial tutorial with the polls up, because then that, yeah. And I think my my idea or like, plan to learn it was to build these small projects to you know, learn different parts of Django. But you know, during the polls up, I think I've realized that I kind of understand it. And instead, I've started working on my my own projects, just small little things and experiments. And I think my my first like, real Django project was my blog that I did in 2020. I think

Carlton Gibson 3:53
you should always code your own blog. That's the golden rule, right?

Filip Němeček 3:58
Yeah. I'm not sure what my motivation was, I think it was mostly to, you know, learn more more Django and to have opportunity to use it for real. And I also had some ideas for like, custom stuff that either the statically generated blocks or the WordPress didn't have. Yeah.

Carlton Gibson 4:18
Yeah, I mean, it's good to have, you've got to have a site, you've got to have something that you can, like experiment with that you can just go, Oh, I'm going to try this out and see what happens. You need a, you know, a testbed. Yeah,

Will Vincent 4:28
I just, I just noticed on your blog, you know, the good test is go to dash admin, and you have a interesting response there. But that's a good way to test if it's a Django site.

Filip Němeček 4:42
Or you mean, but I forgot about it. And I think yeah, to ever find it. It's, there's an emoji that repeats, or

Will Vincent 4:53
it's just a single emoji, but yeah, but that's, it just reminds me of you know, because there's tools like Django honeypot and all least things you can do. But I find it amusing that we can say it in this podcast, like the Django project site, which gets a lot of traffic is just dash admin, when you're like on the board and everything else, no one can be bothered to just switch it. Oh, sorry. Side note,

Filip Němeček 5:16
I have to switch it. I mean, this is one of the security tips that I always remember this to change the default path, and I have different ones to just be saved. Yeah.

Will Vincent 5:28
Sorry to interject that.

Carlton Gibson 5:29
Okay. Well, I'm just gonna say that you do not like that. There's no point hiding the Django admin URL because the Django project site is open source, so someone could just go to get it wouldn't be here. It's not much to move it or secret. You're I mean,

Will Vincent 5:47
it's like, what are you gonna do? You're gonna write a write a blog post for us, like, please do you know? It's not like, you know, being a fellow where you can change Django itself. It's just, it's just the docks. Anyways, sorry. The acid, that's something we've done in the past on to try to find guests is where like, I wonder if it's a Django site, it's always dash admin, or you can go to look at dash accounts login. And that's a pretty good giveaway that it's Django. I didn't mean to, I didn't mean to interrupt you too much. Are you just talking about your blog? And I already added up? And

Filip Němeček 6:18
yeah. And I guess 2020. And then I think during the COVID lock downs, and, you know, this whole thing, I've started doing more projects. And I think my first one was the Jenga blocks, which is just like super simple site that lists all the bloggers and links to their sites. I was inspired by similar one that already existed for iOS.

Carlton Gibson 6:48
I think six years when I bumped into first Philippe is I saw you. So you've done that.

Filip Němeček 6:52
Yeah, that's and then cried slightly. After that, I did the Django feeds, which just feeds like the RSS aggregator or something, it basically goes through all the all the blogs from the Jenga blocks and indexes the articles. So you can have them on one place instead of using the RSS readers. Yeah,

Will Vincent 7:15
that's the one I came across you first, I think I I think I even probably sent you an email. I think I saw something. Like, I don't know, I guess it feels like long ago, it must have been only two or three years ago. But that's that's where I saw it as like, wow, this is a great resource, because it has like, yeah, the video all the videos and stuff, too, which

Filip Němeček 7:31
is hard to go to the videos and probably also podcasts.

Will Vincent 7:36
There's not I don't know how many active podcasts there are anymore. There were a couple but I think

Carlton Gibson 7:42
there's one there's

Will Vincent 7:44
I think there's I think there's one dedicated one at this point. If there's others let us know. Well, there's no that's not fair. Django Girls intermittently has been putting some out. And Matt lame and Django rest. Like it's been a little bit, but he has a bunch. I

Carlton Gibson 7:59
want to I want to pick up I don't want to go over Jango feeds because it's a really good resource like the the Django project or calm for years has had the community aggregator, but that was in the day that was built on a third party service, which has since crumbled into dust. And so the sort of back end for the Django community aggregator is broken. And so there is no, I mean, maybe the old feeds that are still there, they might still be picked up the new ones. They're just not validating through this, what's the remains of this third party service. So if you want an aggregator for Django, topics, Django feeds is, in fact, your best option. It's

Will Vincent 8:33
just ported over to Django project.

Carlton Gibson 8:36
There's that. But so I, you know, I want to pick up the there's a resource that we should put, we'll put a link in the show notes definitely for that,

Will Vincent 8:44
can it can I ask as you what, I don't know, if you recall, but when you were switching to Django, what, what were the things that you liked? And there's always something that's a little confusing? Like, do you recall, it was a little different than

Filip Němeček 8:59
it's, it's been a long time ago. But I think one of the struggles was to integrate like the, the search text editor or something like that. Because I wanted to have my content with like links and you know, bold text, and I forgot how it's called.

Will Vincent 9:15
There's a couple, there's a couple options. Yeah, generally, like putting either markdown or using there's a bunch of

Filip Němeček 9:21
Markdown is what I'm using now for my blog and other stuff, but I use that those that generate HTML directly. And that was for me paying to get it to show up in the Django admin because back then I didn't want to build my own admin so that that was the first thing that comes to mind and then deployment, because now nowadays, I can sort of do it. I always go with the same same steps from the Digital Ocean tutorial, the G unicorn and nginx and you want to, but the first time it was I think it was I spent like two days trying to get Did you know to run on some kind of hosting and that was difficult?

Carlton Gibson 10:04
Yeah, you've gone through all the steps of learning Django building your site getting it ready. It's like, oh, no, I have to learn sis administration too. It's like, No,

Will Vincent 10:14
I mean, it's it's I think it's a little easier on a platform as a service. But it's still the Django itself isn't does not default to production settings. So there's a that's, that's something I could do to be more friendly. Like, it does have the deployment checklist. But it doesn't that, you know, the docs don't really tell you, they're not tutorial. There are tutorials out there I have some others have them. But it's, it would probably be nice if there was something in the official docs about

Filip Němeček 10:41
I mean, even with, you know, tutorials, and the detailed ones, like the Digital Ocean as it's still difficult, because there is like so many configuration files, at least the route I use with the G unicorn, and you will need to create a sockets and then, you know, pointed to a project and then to handle the static files and the media files. And now it's,

Will Vincent 11:02
it depends. Yeah, it depends how complex your project is. But yeah, there's there's a lot of steps. I mean, I even I constantly Google and look up stuff I wrote because I mean, it's a checklist, right? It's like, like pilots flying planes, they have a checklist, like there's a reason it's a checklist, because it's like, I don't know, at least probably like 10 different things. And there's no real way to remember it all. And you shouldn't have to, but you're just like, oh, yeah, what, what broke now. So I can empathize. But

Carlton Gibson 11:30
just keep complaining about that every week until someone does something about it.

Will Vincent 11:36
Okay, we can talk about that. But yeah,

Carlton Gibson 11:38
yeah. So you so you're, you're using Django commercially, though, is the back end for your iOS app. So would you quickly tell us about your iOS app, perhaps. And then perhaps we can talk about the Intagram. Because I think this fascinating use case and lovely to talk

Filip Němeček 11:51
about. So I have a few iOS apps on the App Store, and those that are powered by API, one is called Switch body. And the other was recently released and renamed to gaming, but it's very similar. Switch body is bigger. It's been on the store since 2021. And I've been gradually adding more features that then needed my own API for, like, there's a news feed that's, you know, built on the same logic and, and packages or the Django feeds where it basically indexes a couple of sites that cover Nintendo news. And then I just send it to the app where the Django rest framework. And I've also added a support for games database, and using the IGB. Database, if anyone knows about that, it's sort of crowd sourced, like list of all the games and you know, the details and the release date. So that's something I've added is here, I think, perhaps in May, I hadn't remember the exact start date. So that's my main use case. And so

Carlton Gibson 12:56
So there, you pull in the the sort of third party data, trim it down to the format you want and then send out to the app.

Filip Němeček 13:02
Yes, basically, that's, that's what I'm doing. I have my own database. And on on the server it I've like cron jobs that, that just fetch the fetch the new games or update the existing ones. And then if I own API endpoints that have basically feed the feed app.

Carlton Gibson 13:24
Okay. And on the iOS side, you're doing that all with? Like, what's it called UI kit or Swift UI?

Filip Němeček 13:35
It's, it's still most of the UI Kit framework, the older one, but I'm using the Swift UI for for new views and for new screens that I'm adding. Okay,

Carlton Gibson 13:45
and so the question, I guess the question is that you're serving, so you're serving JSON rather than HTML? Right? So you're not using web views on the app. So there, okay, so then, my experience there is there's there's kind of a bit of an impedance mismatch, you sort of, there's a lot of mapper writing, do you find that? Do you have any tools or tricks or things that you do?

Filip Němeček 14:05
If there's some, some smaller things like, you know, matching the date format, and something else? Yeah, the Snake Snake case versus the I forgot the other one camel case or like the one that swift you this?

Carlton Gibson 14:23
I could never do all these things. I think camel cash, I

Filip Němeček 14:27
think Swift has political support for No, working with JSON without any third party. Clients can basically create your model and conforming to this protocol is called codable. And if you have the same name of keys, and like the matching data attributes like number, string and URL, you can just like I said in two lines of code,

Carlton Gibson 14:50
and it will automatically convert the site to the camel and so because you give it the transformer, fantastic. Do you really happy with the integration between the J What'd you get from the Django API? And then how are you consuming it at the swift end?

Filip Němeček 15:03
Phil? Yeah, that's working great. And so using

Carlton Gibson 15:06
REST API and Django rest framework, is that correct? Yes.

Will Vincent 15:11
So your question there? How, how do you like to handle authentication? Because I find that that's

Filip Němeček 15:16
something I'm not doing, actually. So my camera's framework usage is like this is only because I don't have any user accounts in the apps. So it's just like, pulling the data to display. But I don't have like this two way communication where the app would be doing like any kind of, you know, new data creation or edits, etc.

Will Vincent 15:40
Okay, do you have a sense of I mean, because there's JW T's were quite hot and maybe still are, like, do you? Do you have any sense of what I mean, cuz there's multiple ways to do it still. And this was actually my first Django CON talk was about, I was like, oh, you know, I was learning about learning all this. And I was like, Okay, time for authentication on API's? And it was like, you know, four default methods. And it's a little bit and then. So it's a little bit overwhelming. Maybe you don't, because it's not your use case. But I just curious if there's a sense of a best practice these days around API authentication, perhaps

Filip Němeček 16:14
Yes. But I'm probably not the best person to ask. I think I've tried the the basic, you know, the token one in the past, just, you know, to if, if if I needed to be able to do it, but I'm really not using any kind of auth with the the rest framework. Okay. Fair enough.

Carlton Gibson 16:35
I think folks are using the Add on package. The Knox rest Knox and the rest Knox, which is, is the way most people are going these days, just to sort of anecdotally. So I mean, I wonder what to ask you a little bit about like your choice of just default on rest framework, you're happy with it? Because it's been, it's now in a sort of maintenance mode. I mean, Tom, Tom Christie has explicitly said it's kind of feature complete. And it's perfectly stable. And one thing, I think, I think that the the reasoning behind that is that they can't really make any changes without affecting people who are already using it. It's like you can't, can't adjust, you know, you can't adjust very much. Now, it's kind of like this is this is the scope of it, it needs to be steady, because it's used in an awful lot of deployments. But you as a consumer, is that affecting you in any way? Or do you have any tools? Oh, I wish this was going on? Or are you just happy? I mean,

Filip Němeček 17:34
I guess I am. I mean, sometimes I'm doing some like things in the API views that don't feel like the most correct way. Perhaps when I need some extra data to I don't know how to do it, we had to get query set method. But I think that's more down to me know, not having enough experience to, you know, implement it correctly, and not to the design of the Django rest framework. Have

Will Vincent 18:00
to mention you. So your master's thesis was around augmented reality? The new god goggles and everything. Do you what are your thoughts on that? Because I'm, I haven't tried them on I'm completely ignorant. It's, but it seems potentially very cool.

Filip Němeček 18:16
Yeah, I mean, I've tried to like a reason, perhaps get some impressions from other devs on like Mastodon and other social media. And I think the Apple had some like, these labs where they can apply and they will invite you in to live in person demo. And I think these last four or five hours, or something that I'm I don't know, I'm just not really interested in in the goggles, because I'm not sure what the use case would be for me. I mean, in the past, I was more interested in the VR stuff like the Oculus quest, or the other other ones, because of the, perhaps the fitness, say, apps or games to have some like exercise, perhaps during winter. But apart from these use cases, I'm not sure what would be the the selling point for me, so

Will Vincent 19:11
yeah, fair enough. I mean, it seems certainly at the price point, it seems, for businesses, so maybe, military, maybe doctor's training or something, but it's in terms of, you know, I heard some people say, like for meetings, it could replace in person meetings, but yeah, well, I guess we'll see. I mean, it's, it's all those things. If they work out, they come down to consumers at some point, but it's sort of hard to put something that blinds you, or I guess it doesn't blind you, right. That's the thing. It doesn't you can still see around but just to

Filip Němeček 19:42
kind of pass through I think but, you know, the reveal was in June, so it's been some time since I watched their keynote. Yeah,

Will Vincent 19:52
fair enough. Okay, well, let me let me ask about something else then. So as Carlton you had to say something No,

Carlton Gibson 19:57
no, I'm just gonna pop in. I think you know, If he's talked about a price point that it's like a lot of money to replace a video call, you know, it seems but can, depending on the quality of it, it's not a lot of money compared to a big display, you want one of these 27 inch Cinemark displays, they're more money. Now, if if the goggles are able to produce a screen quality resolution, which, you know, I read an article claiming they wouldn't be able to but you know, that was based on not that wasn't from someone that actually used them. But if that's capable, then that could be cheaper than a couple of pro displays. And it might be the way forward that so that was just one thought that Yeah,

Filip Němeček 20:35
that's actually one of the use cases, I think some of my developer friends mentioned that, you know, you can have like these six MacBook screens in front of you, instead of, you know, with the with the goggles. But, you know, for me, I'm still only able to focus on one. So I don't have the need to have more more screens around me because I can. For me, it's like, I can just as easily toggle like the, the windows on the single screen and to look around and to find where that window is. So I No, no.

Will Vincent 21:07
Go as you ask. God, I have so many projects, it's very impressive. Impressive. Can you tell us about in press kit is?

Filip Němeček 21:15
Yeah, um, that's been difficult, because, you know, it's been live for two years almost. And I still don't have like this one sentence page for it. Okay, it's basically, for, for me, and for other indie developers, when you'll need to create a press kit that's basically like, a bunch of assets and some descriptions about your, your app or game. Because then if you want to get in touch with the journalists, it helps to, you know, give them all the all the information and like this presser, the assets that are perhaps not edetate are in higher resolution. So I've basically built a kind of a CMS that's dedicated to creating these press kits. And it's even more focused for are either on the iOS apps, and perhaps Mike wants to, but like, some subtle features, or tweaks that make it like, even more suitable for the iOS ones, for example, if you create one, then it will also give you this download on the App Store, batch or generate a QR code that the journalists can scan from their laptop to, you know, try the app out and there was some, like image optimizations, or it automatically automatically resizes the image when you upload it, so it's not, you know, it's not not too large. And the journalist doesn't have to waste time downloading, like 10 megabytes of single PNG, and then resize it themselves. So that's basically it. And there's also some support for a press release, which is kind of a like a blog post, but it's aimed to address not like, general, like public. So that's, that. And yeah, that's, I think, the convoluted pitch that I just came up with. I hope it makes sense.

Will Vincent 23:13
Yeah, and I mean, press press kits are important and a pain to create into to use as a journalist and others. So having a, having an easy way to manage that makes a lot of sense. And to have, you know, images, like you want to have the best images, you don't want to. Yeah, if you've ever built a press kit for a website, or something else that makes sense. So I think it's good as well talk,

Carlton Gibson 23:35
go go on camera. Yeah,

Filip Němeček 23:37
to say yes, you know, devs often do like this, they zip files that they just upload somewhere. And that's also paying for the journalists to use because they have to download it and perhaps, you know, then the CDN is slow that they are no, it's just named press kit without the name of the app. And they have like 10 identical press kit for the resins that are downloads, and I have to look at look for it. So that's also motivation for for this project. But

Carlton Gibson 24:08
it also acts as like a checklist, right? So so if I'm an indie dev, I have no idea about what I have to put in a press kit. Whereas if I go to impress kit, I can it's got like, you know, you upload this image, right, this text, you know, yeah.

Filip Němeček 24:22
This was the first first time I was using web books. It was always was like scary word for me. And then I realized it's basically, you know, requests that are made by server another person if that's like, not too much simplification. So I've managed to build a web hook for the, for the pyro service that I'm using for now for the subscription that's, that's needed to need it to use it. So that was probably the most challenging part of the project. I think there's a stripe and this one and when I was trying to figure out what to use, I basically discovered that To commit stripe you need to like handle all the taxes and the other illegal stuff. And this this pedal is like a loaded term, but they basically handle a lot more. They don't have to. Oh, yeah, that's, that's the

Will Vincent 25:18
what is it, Carlton,

Carlton Gibson 25:20
the seller of record. So for tax purposes, you buy it off of paddle rather than off of Felipe. And then paddle will pay out to our way. So it's a bit like Gumroad. And the other one I think, is far spring who are quite big in this space in so you buy off of fastspring We've bite off of Gumroad we bite off a paddle rather than buying it off Felipe. So he doesn't have to tax

Will Vincent 25:44
rero right? Well, yeah, stripe is slypod stripe is slowly adding all these features in so I think eventually they'll get there. But I was just I was looking yesterday. Because I remember when I look two years ago, it was like paddle was like, Yeah, we handle all that. And stripe was like, that's your problem. And so I was like, okay, so it seems that seems like the smart move for now for sure. Because yeah, Stripe keeps every update. They have new tax features. But I mean, that's Well, that's a question for you. I mean, so I guess all three of us were indie developers in our own way, like, just the business of selling things online is more cumbersome, I think, than people think like, it's probably easier than it's ever been. And yet, there's all these certain United States anyways, like I have to set up certain legal entities, bank accounts, taxes, like there's all this stuff. I for me, when I was getting started, I felt like it took almost six months just to handle all the administrative business side that I wasn't even aware of. It was like the prices of some degree of success. I don't know. Is it any easier for you? Or does that ring true? Just to all this craft around? Like, why is it so hard? You everything's built for big businesses to do? Yes.

Filip Němeček 26:58
I mean, it's kind of easy now because I have some knowledge translated to English, but I think it'd be something like the sole proprietor or something like that. Yes. Yeah. That's, that's what I put my full time job I have, like, this kind of status, or, I don't know, what was the term for it. And this also lets me to, you know, have paid paid products and things, you know, pedal and appstore being this is that word that carton said, you know, so, but yeah, I mean, I had my own apps on the store for like, 10 years, and I've only had paid ones for the last year, because it was always so intimidating, and so afraid to, you know, mess something up, and then it'll look fine. Or, you know, some something else. So, when

Will Vincent 27:48
I, when I looked into this, and again, this is definitely not tax advice, but most of the rules around collecting taxes, like abroad or in countries other than your own, you need to be at a level that it would seem like it was six figures. So like 100,000, like it was, it was a high bar. So if it was just pay was don't take don't take that tax advice, but the rules are not designed for, for small people, and it definitely helps to have a service like Gumroad, or paddle that will just handle it. For you. That's all I had to say, you

Carlton Gibson 28:20
know, I mean, I got exactly the same experiences that you know, so I autonomo. In Spain, same thing is you've got Philly. And if I didn't have my hair store, who's my accountant to do the quarterly returns, it would just be like an absolute. I just couldn't do it just couldn't be in business. There's just no way and they know all the rules. And they tell me exactly what I do. And I do it. But it's still my dreaded day of the quarter when I have to do the paperwork for the for the accountant. It's like no, no, not that day.

Will Vincent 28:52
Well, let me ask you about coding. So what are you? What are you excited about? Now? Like, what's sort of interesting to you? Because you've, you've done so many things. Is there something now some some tool or technique that is particularly interesting that you want to learn more about?

Filip Němeček 29:07
You mean, like a new framework or like, any any? Yeah, anything? Yeah. I mean, you know, regarding to design patterns, and all this new stuff, I think I kind of, like moved away from it. Because in the past, I used to, like really follow all the new Swift features, which is the language that Apple primarily uses on their platforms. And I could probably name and explain every keyword, which now I cannot do also because they added like 30 More in the last three years. So I guess I'm now more focused like on really building stuff that other people can use. And I'm trying to like, put our focus more on the UX side of things and UI and also sometimes even a typography, you know, to think like how the app looks and you know, if the dial Books and introductions make sense. And also the wording is problematic since I'm not native speaker, which is probably obvious at this point. In the podcast, I

Will Vincent 30:12
mean, you you have an accent, but I wouldn't say by your word choice, you're not a native speaker at all.

Filip Němeček 30:17
Thanks. It's also a bit difficult if you need some short like allotted or some binary that explained some kind of feature to come up with the right word. So I guess I've been more focused on on this and also some, like marketing, or this is app store optimization that you need to do like to find the good keywords and keyword car screenshots, which is annoying and boring. But there is no way to avoid it if you want to get any download. So I

Will Vincent 30:49
feel like I'm in the same place to like you start off like, like loving the tech and can I build it? And then once you've built a certain amount of things, then you realize the marketing the UI, the the text, these are the things that matter a lot more than you thought that they do. And so and they do take time to do well. Yes, Carlton,

Carlton Gibson 31:10
so both of you there with that mindset in place. How do I just think Well, that makes Django perfect for you, then because Django is trustworthy, it doesn't break over time. You know, it's easy to update between versions, it's state, you know, the next time you come back to it, it's still the same as it was, you might have a new thing, but that new thing is not going to impinge on you until you get to get doesn't that make Django just a perfect choice? When you're in that position of hey, I'm focusing on other things.

Filip Němeček 31:38
Yeah, it does. That's why I use it right?

Will Vincent 31:41
What did I this is I wonder how much is like a maturity thing, Carlton, right, because on the orange site every year or something, people rediscover Django. And it's like, yeah, like you're not? Are you really innovating like all these new frameworks like it? That's great, and JavaScript, blah, blah, blah, but like, what are you actually trying to do here? It just feels like it's a tool. And if you want a tool, kind of checks, all the bottom checks, you know, 95% of boxes. I mean, this is something I've picked up because I've been mentoring some people and people who are newer in their career. It's not that they think things are more complicated than they are, but they're just not aware of off the shelf solutions. So there's so many that you know, they just don't know that the row that's been tried by all the other developers, and that if they ask the right question, there's generally a simple, elegant solution. It's just can they find that for themselves? So very, very few things in web development. Are that hard, if you know where to look, I guess is what I'm saying. And so I've had a recently I had that this person was she was like, Wait, it's not this. And I was like, No, I like we I let her talk for 1015 minutes. And I was like, it's really just as simple as this. I think there's a lot of that, with the years you see that certain patterns, you know, work well, and don't fight the framework kind of thing. That's my TED talk. Okay.

Carlton Gibson 33:03
We'll get you we'll get you on stage. Oh, God, no,

Will Vincent 33:06
no. Well, well, maybe we can talk about, are there new features that are that are interesting. I mean, it's an iOS developer, or Carlton I know, you know, 5.0 is coming out. That's something you're very excited about. But I've been waiting for you to leave like, are there? Are there? Does async matter to your work? Are there any features that you know, we always ask if you could just wave a wand? Is there something that Django could provide that would make your life easier?

Filip Němeček 33:31
Hmm. I mean, if I could have like, this one button deployment from pi charm, perhaps, Microsoft ad, or perhaps they even have it now, right from the Visual Studio, if you use their cloud service. And if you're logged in, you can I think still press button and will do the deployment for you. I haven't used it in like, seven years. So it might be different now, but no, any any improvements are worth deploying would be right. And probably it's also the case that if you use the platform as a service, it's much easier what I'm doing. I've been using the simple VPS since since high school, that is why I didn't have you know, budget for more like price resolutions. So perhaps that will also solve my issues if I paid for Heroku or was the other one, the new one. That's the fly or something. Why is

Will Vincent 34:33
Pfizer one of the very popular ones? Yeah. I mean, Carlton deployment, I mean, I want you to say something but I've thought about I've think I've mentioned this before, you know starter projects, right? Like, what is you know, is there a market for a starter project, like like my Django X or something that is like one click and deploy on Heroku fly, I mean, all these platforms as a service, it's not too hard to to handle the basic case of environment and environment variables, static files. It's just hard to know if that's enough for someone who knows what they're doing. Because I feel like every deployment becomes custom at a point but Carlton, please, no. But

Carlton Gibson 35:14
this is exactly where I think the platforms as a service go, it's not they go wrong, they're brilliant for what they want to do, as long as you fit in the neat little box, then that they are simpler. But as soon as you know, you want to add Redis server. And so, you know, I maintain the channels package. And the number one cause of tickets is people on say, Heroku, or another one who can't get the configuration right to configure the connection to Redis. Because it's, you know, a weird URL, and they have to get this SSL, correct and have do all these things. And they just don't know how. And whereas if you try and connect to Redis, on localhost, nobody has ever ever opened an issue saying, Oh, I can't connect to Redis on localhost, right. But because that doesn't ever goes wrong, it has literally never goes wrong. And the trouble with the platform as a service is once you step out of that, that neat little Oh, you're just running your app box, you're suddenly into distributed systems, because you're connecting to a database over the internet, you're connecting to Redis. over the internet, you're connecting to some other search service over the internet, rather than running it all on your VPS. Which costs, you know, you scale up your VPS, maybe it costs you 10 bucks a month, and you're running, you know, the biggest box under the sun it like, that's an exaggeration. That's not the biggest box under the sun. But it's more, it's more than enough box for your website, right is my point. And it's got ready sloping? It's got this, like, yes, it's slightly more complex to provision it that first time, yes, you have to sort of keep it updated a bit a bit over time. But on average, as you scale your application, having a, you know, VPS, with everything you want on it is a lot less effort than trying to configure, you know, matching services across, you know, HTTP connections, which drop out on you for no reason, and all the rest of it. I would argue, I would argue, you know, I, you know, if it's literally

Filip Němeček 37:06
just, that's my experience, because, you know, once once I managed to finally, you know, deployed for the first time, then, you know, it's basically seems to run without issues, and I can just update it with new new code and update the Django and other packages, and it, it works from that point. But you know, the initial deployment, if you get stuck and miss something, and yeah,

Carlton Gibson 37:29
no, I mean, I think there are too many moving parts of my, my idea of a button is that you take a clean server, and you run a script to get it ready for your app, and then you run another script to get your app there. And that's it. You know, there's no more, you know, no, apt get install sudo Oh, I didn't do sudo. I've got to change the configuration file. Where even is the configuration file? Where is the log file that none of

Will Vincent 37:53
all of that just abstract it to Carleton? And

Carlton Gibson 37:56
well, no, but that's no, but that's what I've been. That's what I'm working on. I'm working on exactly that because I see the same problem again, and again, again, again, is people fighting to either go, what I consider to be kind of a bit too simple with the platform as a service, and then saving trouble for later, or getting stuck in this, this, this sort of mire of our there's too many moving parts, like there has to be a big gap has to be able to fill, I

Will Vincent 38:24
think I've appreciated that newer platforms as a service, because there's a whole bunch of after Heroku ones. It's a really hard problem to solve. I mean, so like in my, in my beginners book, I have I switched to fly.io, I still have Heroku, and my other two books. You know, Heroku, is you have to pay for it now. But it really just kind of works when they're not down which they haven't been down for a while. So I've had I've had occasions where I'm mentoring people, and they just can't, I don't want to say names. But some of the newer options have had troubles. And we're just like, You know what, like, let's just take two minutes and switch to Heroku. And it just works. Again, this is simpler use case. This is more toy projects. But yeah, just to reiterate, it's a hard, hard problem, right? Because for all these platforms as a service, there just seem to be so many edge cases around databases and connecting to other things. And I guess they have to cover all the main frameworks, right, not just Django. So I have empathy for their challenges, but I hope they will just fix it

Carlton Gibson 39:27
monumentally hard.

Will Vincent 39:29
So one thing that I want to ask you is, you know, so the new iOS 17. Or more generally, when you're dealing with iOS, they change pretty regularly and it can be a hard thing, a moving target, like what, what is that like? We're use it because way back 10 years ago, and I worked on the mobile app for Quizlet. It was deeply frustrating that they switched from iphone four to iPhone five, where the screen size changed, I think for the first time. And so we all of a sudden on the app store we had a lot of you users, we start getting all these one star reviews on launch day because we didn't fit the new screen form. But Facebook, Google and like a couple other big companies did. And we're like, well, no one told us like Apple didn't tell anyone about the changes, but we are getting punished for it. So it definitely felt like a closed system where it was the opposite of the web, right? Like we were, we eventually scrambled and fixed it. But I find that you have the closed systems of iOS, as powerful as it is, you're kind of at the Apple just calls the shots, and you have to move with them. So what's your experience been over the years using iOS is a long way of saying,

Filip Němeček 40:37
I mean, it's been pretty positive, I think I got lucky because I got into iOS Windows swift three was out, because I remember there was this big migration and changes from Swift two to Swift three, when Apple changed a lot of stuff in the other language level. So I think people had to migrate a lot of code. And, you know, otherwise, it's seems fairly stable, most of the new features, you don't need to adopt right away. And even if there's something like the dark mode with our 13, or, like some widget changes, right now with the arrow 17, you know, until you, I think, for most of these until you compile with the new Xcode and upload new build the, you know, structured work as before, even under new iOS. So it doesn't, but I can tell you submit new version and forget to fix something. But there's this, as we mentioned previously, in the UI kit, and swift UI, in iOS, you kind of have these two ways to build UIs, the UI Kit is the older one. And that's, that's much more stable, mainly because Apple also doesn't know much new stuff to it. But you know, the Swift UI wonders, the declarative framework, it's sort of similar to perhaps The Flatterer that's the multiplatform one or, you know, on the Android people, they have the jetpack compose or something like that. And basically, the idea is that the UI is, is is represented by state. So it, I guess, the main benefit is that you, you cannot have these, like bugs that are due to like, missing synchronization between the data and the UI, but where you will forget to like Update button to say, like success or disable it and in the code, or like indoor logic that will be disabled, but the screen would show something else that's not present. But you know, since this is a new framework, Apple has been changing it quite a bit, I think, especially perhaps around navigation where you have, like the logic to move between screens, they've been changing this a lot with the Swift UI, Swift UI API. So that's, I think, currently most like, change to or unstable part of the iOS development. But otherwise, I think it's pretty good. You know, we get the first Xcode beta is in June, right after the dub dub conference where they announced the new operating systems and sometimes even the new hardware, like the goggles this year. And then in September, like late September is the release date for all the platforms. So there's a couple of months to start working on new API's and ironed out compatibility issues and, and similar possible problems. So I think that's pretty nice experience overall. Yeah, summer is busy.

Carlton Gibson 43:30
With the Swift UI. Like one of the promises and they also, like they also have have the same thing if you go into the Microsoft worlds as the can't even remember the MA ua.net framework, which is supposed to be multi platform, you develop your UI once and then you can deploy it and Apple tell the same story. You know, you can patch build your Swift UI for for your iPhone, but it'll go to iPads for easily and then on to the Mackey's. Do you find that? I mean, is it we've never seen some is the great utopia that is promised when their marketing materials.

Filip Němeček 44:03
Yeah, it's definitely not that I feel I mean, between the iPhone and iPad, I think it's really close. And perhaps even with the watch with the switch to either like, your components automatically adapt to use this same picker or same button and it gets, you know, different UIs based on the platform, but you know, then going with iOS code base to make this more difficult and you have multiple choices like to build, you can build this fully native app, you can do the catalyst one, which is like iPad version with some, like changes. And then you have this, I forgot that term. It's something like iPad apps for Mac and that's like just this iPad app that runs on on Mac with minimal changes, but that also has some issues and you can even detect it in code. So we cannot provide any customization in this mode, I think. And

Carlton Gibson 44:57
then the other thing people go for them to see and Building electron apps because they want this kind of multi platform. Well, she kind of thought of you never been tempted that route, because you've got Django, you can serve HTML with it doing that for your impress kit. You never thought, oh, I'll just stick a WebView in here. And,

Filip Němeček 45:13
and not really, because I think it's, you can pretty quickly see that the app is not native, you know, because, okay, so you can try the Zoom eight, or you can scroll up and down. And you'll see that it either like, you know, it's janky, or it's some kind of bear tissue. And I'm not sure if that's probably also part of the web kits out, y'all. I think I've read some, like blog posts, and tomorrow, people say that Apple isn't like, or doesn't have the incentive to improve Safari too much or like the WebKit engine, but I'm not sure it's more like, it's just completely different, you know, technology. And

Carlton Gibson 45:56
I think I, I think we have to be fair to like, it seems to me at least that WebKit is coming, or Safari has come on an awful lot in the last a couple of years. So I say two years. I don't know. Okay, interesting.

Will Vincent 46:10
Thank you. Well, maybe as a as a final question, when do you think the news switch is going to come out? Right, the switch to grow? Right? You have all the insight?

Filip Němeček 46:21
That's a surprise question. Didn't expect this. I mean, the original one is quite, quite old. At this point. I think it was 2017, perhaps when Nintendo launched the original switch. So that's six years. And I think the standard lifespan of this game consoles is perhaps seven or eight mature, you know, we didn't have many generations, even with the PlayStation and Xbox and some are longer, some are shorter. So I guess I have no idea. And I mean, there are some some rumors about, you know, this performance boost. And it's retracing, and similar. I don't know, it feels weird to me, because Nintendo never really like focused on performance, even with the older consoles and handhelds. Now, they have completely different, I think, mindset, you know, for their games, and I think it also helps that, you know, Mario and all these, like flagship titles, they dislike cartoon graphics, are they you know, they don't need performance to have these realistic scenes and work. So I mean, I hope that for Daniel switch, and for it to be backwards compatible, so I can, it will perhaps bring more interest to my app, you know, this new new console that sort of similar and it's not, not completely different.

Will Vincent 47:49
Yeah, I remember when it first came out, they, they launched with the first Zelda Breath of the Wild, and they sold more Breath of the Wild games than consoles, as I recall, which was I'm pretty sure that's the case. I was Yeah, yeah, we have one. I mean, it's amazing. Yeah, they, it's amazing what they can eke out of the performance.

Filip Němeček 48:11
I think, you know, regarding Zelda, that's probably the most embarrassing fact about me and switches. I've tried the first one and the breadth of the world and it just wasn't game for me. And when I tell this to someone who played it, like, what how? Well,

Will Vincent 48:29
it's you need all the time in the world is the problem. I would recommend just going off topic, like Hogwarts legacy is like my favorite game I've played in a long time. I'm not a big gamer, but it's coming out I think, in a month, a month or two finally on the switch. So shout out to you know, Ravenclaw. Nice. Hey, well, Carlton, I think we're out of time. Anything else you want to ask?

Carlton Gibson 48:54
No, I was just gonna just, I was going to bring up gold night, but I won't.

Will Vincent 48:59
Only only Yes. Only on only on the streaming one, though, unfortunately. Yeah. I

Carlton Gibson 49:05
would have got that vote. You said infinite time. It's like literally since children, that my gaming tightness evaporated into to non retirement years.

Will Vincent 49:14
Yeah, I

Carlton Gibson 49:15
save it for when I'm retired. Philip, thank you very much for coming on. Really interesting to talk to you. And to talk to how you using Django, you know, in as the back end for your iOS apps. I think that's fascinating. And I hope you've enjoyed coming up. Yeah,

Filip Němeček 49:31
cool. Thanks for the invite. And hopefully, at least some of what I said makes sense. So and if anyone wants to, you know, ask me more questions or get in touch, like feel free to send me an email or something. In the show notes. There should be links, perhaps my blog that has a contact info on.

Will Vincent 49:51
Alright, thanks very much. Well, we are as ever at Jango chat.com. And we'll see everyone next time. Bye. Bye. Bye bye.