← Back to Show Notes

Transcript: Django and iOS - Filip Němeček

Carlton Gibson

Hi, welcome to another episode of Django Chat, podcast on the Django Web Framework.

I'm Carlton Gibson, joined as ever by Will Vinson.

Hello, Will.

Hi, Carlton.

Hello, Will.

Carlton Gibson

Long time nice to see you.

And today we've got Fit Philip Nemacek with us, who's um well, Philippe, well, thanks for coming on.

You're I'm gonna say you're really an iOS developer, aren't you?

Filip Němeček

Yeah, that's right.

Hello everyone.

Filip Němeček

So it's crazy to be alive here because I'm used to listening to that intro, but now I have to take part.

Great.

Carlton Gibson

Thanks for coming on.

So as I say, you're in it, you're ostensibly an iOS developer, but there's a lot more going on there.

So tell us a bit about your background and how come you happen to be on a Django podcast.

Filip Němeček

Oh well, uh, do you want the full version or just like the job?

Carlton Gibson

Yeah, no, we want the full version.

Come on, give us the back.

Filip Němeček

So yeah.

Uh I guess I started like programming in 2012 for around the time in first year in college, you know, and they started us with Java and C, and you know, 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.

I think the Visual Studio by Microsoft was a big factor.

Carlton Gibson

Yes, and

Filip Němeček

I think I somehow transitioned into Windows Phone development.

If anyone remembers that OS by Microsoft, I think it's dead now.

But yeah, I've that did Windows Phone for I think three years too.

I had 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 that SP.net.

And then um yeah, in I think late 2016 I switched to Mac because I I think I had some weird issues with Windows all the time, so I decided to get the MacBook Air and started doing iOS, you know, like 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 MacOS 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 like then the ASP.net and you couldn't build it on Mac.

So I was starting you know to look around and I didn't want to do Java.

Uh oh

Carlton Gibson

how how did you find Django in that environment?

Because you you know you might have found Node or you might have found Ruby or you might found

Filip Němeček

I mean um I was sure I didn't want to do the PHP route or the JavaScript backend, so I I I I was kind of googling around, I think perhaps something like ASP.NET 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 on Mac.

And yeah, I I think I I did that the the initial tutorial with the with the pulse up.

Was it back then there?

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 Pulse Hap, I 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

Yeah, you should always code your own blog, that's the golden rule, right?

Filip Němeček

Uh yeah.

Uh 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 a real.

And I also had some ideas for like custom stuff that either the statically generated blocks or the WordPress didn't have.

So yeah.

Carlton Gibson

Yeah, I mean it's good to have you've got to have a site, you've got to have something that you can um like experiment with that you can just go, oh, I'm gonna try this out and see what happens.

You need a you know a test bed.

Will Vincent

Yeah, I I just um I I just noticed on your blog, you know, the good test is go to dash admin, and um you have a uh interesting response there, but that's a good way to test if it's a Django site.

I appreciate it.

Filip Němeček

And I think you're perhaps the second person to ever find it.

It's like

Will Vincent

the emoji

Filip Němeček

that repeats, you mean, or something?

Will Vincent

Uh it's just a single emoji, but yeah, but that's um it just reminds me of you know, because there's tools like Django Honeypot and all these things you can do, but I find it amusing that um 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 to switch it.

Filip Němeček

Oh, okay.

Side note.

Filip Němeček

You will have to switch it then.

I mean, this is one of the security tips that I always remember it is to change the default path and I use different ones to just be safe.

Yeah.

Will Vincent

Sorry to interject that.

Carlton Gibson

Well, no, but okay, but I'm just gonna say like 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 you know go to GitHub

and the URL we needed.

Filip Němeček

Yeah, that's it.

Carlton Gibson

It's a bit it wouldn't be it's not much to move it.

Oh secret URL.

Will Vincent

I mean, and 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 the it's just the docs.

Anyways, sorry.

Will Vincent

That's something we've done in the past on the to try to find guests is we're like, I wonder if that's a Django site, and 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 uh yeah.

Filip Němeček

And uh yeah, I guess uh in 2020, and then um I think during the COVID lockdowns and you know the this whole thing, I've started doing like more projects, and I think my first one was the Django blogs, which is just like a super simple site that lists all the bloggers and links to their sites.

And I I I was inspired by similar one that already existed for iOS.

Carlton Gibson

I think this is when I bumped into first, Philippe.

I saw you done that.

Filip Němeček

Yeah, that's and then right slightly after that I did the Django feeds, which just is like the RSS uh say aggregator or or something.

It basically goes through all the all the blogs from the Django blocks and indexes the articles so you can have them on one place instead of using the RSS readers.

Will Vincent

Yeah, 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 this feels like long ago, it must have been only two or three years ago, but that's that's where I saw, and I was like, wow, this is a great resource because it has like, yeah, the video all the videos and stuff too, which is a lot of different things.

Filip Němeček

Yeah, I forgot that I also did the videos and uh probably also podcasts.

Will Vincent

Uh yeah, there's not I don't know how many active podcasts there are anymore.

There were a couple, but I think

Filip Němeček

there's at least one that I there's one, there's one.

Will Vincent

We we keep it.

I think there's I think there's one dedicated one at this point.

If there's others, let us know.

Will Vincent

Well, there's no that's not fair.

Django Girls um intermittently has been putting some out.

Um and Matt Lehman um Django Riffs, I think it's been a little bit, but he has a bunch.

Carlton Gibson

Um I want to I want to big up, I don't go over Django feeds because it's a really good resource.

Like the um the Django Project.com for years has had the community aggregator, but that was in the in the day that was built on a third-party service, which has since crumbled into dust.

Um and so the 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 able to pick 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 um or

Will Vincent

if you want to just port it over to Django Project.

Well, there's that.

Carlton Gibson

Um but so I I you know I want to pick up that there's a resource there that we should put it, we'll put a link in the show notes definitely for that.

Will Vincent

Can can I ask, as you what I don't know if you recall, but when you were switching to um Django, what what were the things that you liked?

And what there's always something that's a little confusing.

Like, do you do you recall what was a little different than that?

Filip Němeček

I think it's it's been a long time ago, but I think one of the struggles was to integrate like the this rich text editor or something like that, where because I wanted to have my content with like links and you know bold text, and I I forgot how it's called.

Will Vincent

Um 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

yes, mark markdown is what I'm using now for my blog and other stuff, but I I I use that those that generate HTML directly, and that was for me pain to get it to show up in the Django admin because back then I didn't want to build my own admin, so that's that was the first thing that comes to mind, and then deployment, because you know nowadays I can sort of you know do it.

I always go with the same pr same steps from the digital ocean tutorial with the GUnicorn and Nginx and Ubuntu.

But the first time it was, I think I spent like two days trying to get it, you know, to run on some kind of hosting, and that was difficult.

Carlton Gibson

Yeah, no, you've got you've gone through all the steps of learning Django, building your site, getting it ready, and it's like, oh, now I have to learn sys administration too.

It's like, no.

Will Vincent

I mean, it's a it's a I think it's a little easier on a platform as a service, but um uh it's still, yeah, Django itself isn't does not default to production settings.

So there's a um that's that's something it 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 a tutorial.

Um 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

I mean even with you know tutorials and the detailed ones like the digital, it's still difficult because there is like so many configuration files, at least the route I use with the G Unicorn, and then you need to create the sockets and then you know to point it to the project and then to handle the static files and the media files, and you know it's

Will Vincent

it depends.

Yeah, it depends how complex your project is, but yeah, there's there's a lot of steps.

I mean, I I I even I I uh 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 ten 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?

Anyways.

So I can empathize.

Carlton Gibson

But just keep complaining about that every week until someone does something about it.

Will Vincent

Okay, we could talk about that, but yeah.

Carlton Gibson

Yeah, so uh but you so you're you're using Django commercially though, is the backend for your iOS app.

So please would you quickly tell us about your iOS app apps, and then perhaps we can talk about the integration.

I think this is a fascinating use case and you know lovely to talk about.

Filip Němeček

Okay, uh so I have a few iOS apps on the App Store, and those that are powered by API, the one is called Switchbody, and the other was recently released and renamed to GamingBody.

They're very similar.

Switchbody is bigger, it's been on the store since 2021, and I've been graduating more features that then uh needed my own API for like uh there's a news feed that's you know built on the same logic and and packages as the Django feeds, where it basically indexes a couple of sites that cover Nintendo news, and then I just send it to the app via the Django Rest framework, and I've also added a support for a games dat

abase.

I'm using the IGDB database if anyone knows about that.

It's sort of sort of crowdsourced, like list of all the games and uh you know the details and release dates.

So that's something I've added this year.

I think perhaps in May.

Uh I don't remember the the exact exact dates, so that's my main use case right now.

Carlton Gibson

And so we so with 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

Yes, basically.

That's that's what I'm doing.

I have my own database on on on the server of it.

And uh I have like uh Chrome jobs that that just fetch the fetch the new games or update the the existing ones, and then I have my own API endpoints that basically feed the feed the app.

Carlton Gibson

Okay.

And on the iOS side, you're doing that um all with um like uh I um what's it called, UI kit or Swift UI?

Filip Němeček

Um uh it's it's still mostly the UI kit framework, the older one, but I'm you know using the Swift UI for for new views and for new screens that I'm adding.

Carlton Gibson

Okay, and so the question, I guess the question is that you're serving so you're serving JSON rather than HTML.

Yes, right.

So you so you're not using web views on the app.

So then okay, so then my experience there is there's there's kind of a bit of an impedance map mismatch.

You sort of there's a lot of mapper writing.

Do you find that?

Do you do you have any tools or tricks or things that you do for

Filip Němeček

yes, there's uh some some smaller things like um you know matching the date formats and uh there's something else?

Yeah, the snake snake case versus the I I forgot the other one, Camel case or like the one that Swift uses.

Carlton Gibson

I can never remember the names of all these things.

I think Camel cache.

Filip Němeček

I I think Swift has pretty good support for now for working with JSON without any third-party clients.

You can basically uh create your model and conform it to this protocol that's 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 parse it in two lines of code.

Carlton Gibson

And it will automatically convert the snake to the camel and so because you give it the transformer.

Fantastic.

So you're really happy with the uh integration between the jang what you get from the Django API and then how you're consuming it at the Swift End

Filip Němeček

for the Yeah, yeah, that's that's been working great.

Carlton Gibson

And so using REST API, um um Django REST framework, is that correct?

Will Vincent

Yes.

So I had a question there.

How how do you like to handle authentication?

Because I find that Yeah,

Filip Němeček

that's something I'm not I'm not doing actually.

So my my Django Rest framework usage is like this uh reads only, because I don't have any user accounts in in the apps, uh so it's just like pulling the data to to display, but I 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 and etc.

Will Vincent

Okay.

Do you have a sense of I mean, because that there's JWTs were quite hot and maybe still are.

Like, do you do you have any sense of what I mean because there's multiple ways to do it still?

And um this is actually my first DjangoCon talk was about I was like, oh, couldn't you know, I was learning it learning all this, and I was like, okay, time for authentication on APIs, and it was like, you know, four default methods, and it's a little bit and then so it's a little bit overwhelming.

Um maybe you don't because it's not your use case, but I'm just curious if there's a sense of a best practice these days around API authentication.

Filip Němeček

Perhaps yes, but I'm probably not the you know best person to ask.

I think I've tried the the basic, you know, the the token one in the past, just you know, to if I if if I needed to uh you know to be able to do it, but um really not using any kind of aut with the with the rest framework.

Will Vincent

Okay, fair enough.

Carlton Gibson

I think folks are using the add-on package, um, the Nox, REST Nox and REST Nox, which is um is the way most people are going these days.

Um just as sort of anecdotally.

So I mean I I I wonder what to to ask you a little bit about like your choice of do you just default on REST framework?

Are you happy with it?

Because it's been it's now in a sort of maintenance mode.

I mean Tom's 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 um is that they can't really make any changes without affecting people who are already using it.

It's like you 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.

Um but I you as a consumer, is that affecting you in any way?

Or you know, do you have any sort of oh I wish this was going on, or are you just happy?

I mean,

Filip Němeček

yeah, I I guess I I am happy.

I I 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'm I don't know how to do it via the get query set method, but I think that's more down to me not not having enough experience to you know implement it correctly and not to the design of the Jingoress framework.

Will Vincent

I have to mention you so your master's thesis was around uh augmented reality.

Um the new goggles and everything.

Do you what what are your thoughts on that?

Because I'm I haven't tried them on, I'm completely ignorant.

It's but it seems put potentially very cool.

Filip Němeček

Um yeah, I mean I've tried to like at least and perhaps get some impressions from other devs on like Mastodon and other social media, and I think the Apple had some like um these labs where you can apply and they will invite you to have in-person demo, and I think these last for five hours or or something.

But 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 like the VR stuff, like the you know the Oculus quest or the other other ones because of the perhaps the the fitness say apps or games to to have some like exercise perhaps during winter, but apart from these use cases, I'm not sure what would be the you know the selling point for me.

Will Vincent

So yeah, fair enough.

I mean it seems more 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 um 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 put something

Filip Němeček

some kind of pass-through view I think but uh you know the reveal was in June so it's been some time since I watched the their keynote so I

Will Vincent

yeah fair enough okay well let me let me ask you about something else then so Carlton you had to say something no

Carlton Gibson

no no I was just gonna pop in I think you

know if you talked about the price point there it's like a lot of money to replace a video call you know it seems but depending on the quality of it it's not a lot of money compared to a big um display you want you want one of these 27 inch cinema displays they're more money now if yeah if the goggles are able to produce a screen quality resolution which you know I 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

they could be cheaper than a couple of pro displays and it might be the way forward there.

So that was just one thought that

Filip Němeček

yeah that's actually one of the use cases I think some of my like developer friends mentioned that you know you can have like these six makebook screens in front of you instead of you know with the with the goggles but you know uh for me I'm still only able to focus on one so uh 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 than to look around and to find where that window

is so I know.

Carlton Gibson

Yeah no anyway just go

Will Vincent

on I was gonna ask um so you you have so many projects it's very impressive.

Impress kit can you tell us about what Impr ImpressKit is

Filip Němeček

uh yeah um that's a bit difficult because uh you know it's been live for two years almost and I still don't have like this one sentence pitch for it.

That's okay.

It's basically for uh for for me and for other indie developers when you 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 press ready assets that are perhaps not edited or 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 or rather on the iOS apps and perhaps Mac ones too but there are 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 are some like image optimizations where it automatic automatically resizes the image when you upload it so it's not you know it's not not not too large and the the journalist doesn't have to waste time downloading like 10 megabytes

of single PNG and then resize it themselves.

N like at the general like public so that's that and um yeah that's I think the convoluted pitch that I just came up with but I hope it makes sense at least

Will Vincent

yeah yeah I mean press press kits are important and a pain to to create and to 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 if you've ever built a press kit for a website or something else it makes sense.

Carlton Gibson

So but I think it's good as well go on go on Karen

Filip Němeček

to say yes you know devs often do like these they uh like zip files that they they just upload somewhere and that's also pain for the journalists to use because they have to download it and perhaps you know then the CDN is slow that they or I don't know it's just named Press kit without the name of the app and they have like 10 identical press kit folders in there are downloads and I have to look at look for it.

So that's that's also motivation for for this project.

Carlton Gibson

But but it also acts as like a checklist right so so if I'm a indie dev I have no idea about what I have to put in a press kit whereas if I go to in Press kit I can it's got like you know no you upload this image write this text you know

Filip Němeček

yeah that's that's right.

This was the first first time I was using uh webhooks it always always was like scary word for me and then I realized it's basically a you know request that's made by server and not another person if that's like not too much simplification so I've managed to build a webhook for the for the pedal service that I'm using for you know for the subscription that's that's uh needed to needed to use it so that was probably the most challenging part of the the proje

ct.

I think there's a stripe and and this one and when I was trying to figure out what to use I basically discovered that with stripe you need to like handle all the like the taxes and other other legal stuff and this this pedal is like uh forgot the term but they basically handle a lot more the

Carlton Gibson

seller of records

Filip Němeček

so you don't have to oh yeah that's that's the that's the what

is it Carlton

Carlton Gibson

they're the seller of records so for tax purposes you

buy it off of paddle rather than off of Philippe and then paddle will pay out to um

Will Vincent

oh right right yeah

Carlton Gibson

yeah so so it's a bit like gumroad uh um and the other one I think is called Fast Spring who are quite big in this space and so you buy it off of Fastspring or you buy it off of Gumroad or you buy it off of Paddle um rather than buying it off Philippe so he doesn't have to do the tax.

Will Vincent

Right right well yeah stripe is Slipe Stripe is slowly adding all these features in so I think eventually they'll get there but I was just I was each looking yesterday um because I remember when I looked 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 um 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 um I mean that's well I mean that's a question for you.

I mean so I guess all three of us we're 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 in the United States anyways like I have to set up certain legal entities, bank accounts, um 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 price of s of some degree of success.

I don't know is it any easier for you or does that ring true?

Just the all this cruft around like why is it so hard?

Everything's built for big businesses to do.

Filip Němeček

Yes uh I mean it's kind of easy now because I have some I don't know how to translate it to English but I think it'd be something like the solo proprietor or something like that.

Yeah because

Will Vincent

yeah that's the that's

Filip Němeček

for my full-time job I have like this kind of status or I don't know what's what's the term for it and this also lets me to you know have paid paid products and things you know pedal and app store being this you know is that word that Carten said you know so but yeah I mean I I've I had my own apps on the store for like 10 years and I've only had paid once for the last two because

it was always so intimidating and I was afraid to you know mess something up and then either got fined or you know some something else.

Will Vincent

So well 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 a hundred thousand like it was it was a high bar so if it was just anyways don't take don't take that tax advice but um 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 uh for

you that's all I had to say

Carlton Gibson

you know I mean I got exactly the same experience is that you know so I I'm um autonomous in Spain same thing as you've got Philippe um and if I didn't have my hair store who's my like the accountant to do the the quarterly returns, it would just be like an absolute I just couldn't do it.

I just couldn't be in business.

Um, there's just no way, and they they know all the rules and they tell me exactly what I have to 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, oh no, not that day.

Will Vincent

Well, well, let me ask about um coding.

So uh what are you what are you excited about now?

Like what 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

You mean like a new framework or like a new design?

Any pattern.

Yeah, anything.

Filip Němeček

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 keyboard, which now I cannot do also because they added like 30 more in the last three years.

So uh yeah, I'm I guess I'm now more focused like on really building stuff that other people can use, and I'm trying to like perhaps focus more on the UX side of things than UI, and also sometimes you want to typography to you know to think like how the app looks and you know if the dialogues and the interactions make sense and also the wording is uh problematic since I'm you know not a native speaker, which is probab

ly obvious at this point in the podcast.

Will Vincent

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

Oh thanks.

Filip Němeček

Yeah, but you know, it's also a bit difficult if you need some short like alert or some banner that explains some kind of feature to come up with the right word.

So yeah, I guess I've been more focused on on this and also some like marketing or this this app store optimization that you need to do, like to find the good keyboards and like screenshots, which is annoying and you know boring, but uh there is no way to avoid it if you want to get any download.

Will Vincent

So I feel like I'm in the same place too.

Like you you start off like like loving the tech and can I build it?

And then once you build 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 to do well.

Yes, Carlton?

Carlton Gibson

So both of you then, with that mindset in place, um how because you I just think well that makes Django perfect for you then, because Django's 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's not going to impinge on you until you get to get, you know, 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

Yeah, it does.

That's why I use it.

Will Vincent

Well, 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 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, it kind of checks all the box checks, you know, 95% of the boxes.

Um 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 road that's been tread by s 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 I don't know recently I had that, this person was, she was like, wait, it's not this, and I was like, No, I like we took I let her talk for 10-15 minutes, and I was like, it's really just as simple as this.

Um I think there's a lot of that with the years you see that certain patterns you know work well and yeah, don't fight the framework kind of thing.

That's my TED talk.

Carlton Gibson

Okay, we'll get you we'll get you on stage.

Will Vincent

Oh god, no, no.

Well what maybe we can talk about um 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.

Um but I maybe for you, Philippe, like are there are there does async matter to your work or 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

Hmm.

I mean if I could have like uh this one button deployment from PyCharm, perhaps, like Microsoft ad, or perhaps they even have it now, right, from the Visual Studio if that if you use their cloud service.

And if you are locked in, you can I think still press button and it will you know do the deployment for you.

Uh I'm not I haven't used it in like seven years, so it might be different now, but you know, any any improvements towards deploying would be great.

And probably it's also the the case that if you use the platform as a service, it's much easier as what I'm doing.

I've been using the you know the simple VPS since since my school days why I didn't have you know budget for more like pricer solutions.

So perhaps that was also solved my issues if I paid for Heroku or was the other one, the new one, that's the fly or something?

Will Vincent

Flies flies are one of the very popular ones, yeah.

I mean Carlton deployment.

I mean I I want you to you to say something, but I I've thought about I've think I've mentioned this before, you know, so 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 handle the basic case of environment environment variables, static files.

Um it's just hard to know if that's enough for someone who knows what they're doing.

Um because I feel like every deployment becomes custom at a point.

But Carlton, please.

Carlton Gibson

No, but this is exactly where I think the 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 they're you they are simpler.

But as soon as you I don't 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 the SSL correct and have to 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 couldn't connect to Redis on localhost, right?

Because it that just never goes wrong.

It just literally never goes wrong.

And the trouble with the platform as a service is once you step out of that neat little, oh, you're just running your app box, you've 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.

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 Redis Local and 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 little 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.

Carlton Gibson

You know, I you know if it's literally just

Filip Němeček

that's my experience because you know once once I manage to finally you know deploy it 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 the other packages, and it's it works from that point.

But you know, the initial deployment, if if you get stuck and miss something, then it's yeah.

Carlton Gibson

No, I mean I think there are two there are too many moving parts.

So my my b idea with button is that you take a a 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 app to get installed sudo.

Oh, I didn't do sudo.

Oh, I've got to change the configuration file.

Ah, where even is the configuration file?

Where is the log file?

None of all

Will Vincent

of that.

Just abstract it to Carlton and

Carlton Gibson

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 th see the same problem again and again and again and again.

It's 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 ah, there's too many moving parts.

Like there should there has to be a there's a big gap there that has to be able to fill.

Will Vincent

I think I've appreciated that newer platforms as a service, because there's a whole bunch of after Heroku ones, um it's a really hard problem to solve.

Uh I mean, so like in my in my beginners book, I cover I switched to fly.io.

I still have Heroku in my other two books.

Um 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.

Um 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 a simpler use case, this is more toy projects, but um yeah, just to reiterate, it it 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.

Um and I guess they have to cover all the main frameworks, right?

Not just Django.

So uh I have empathy for their challenges.

But I hope they would just fix it.

Carlton Gibson

Monumentally hard.

Will Vincent

So I w one thing I wanted to ask you is, you know, so the new iOS 17, or more generally, when you're dealing with iOS, they change all pretty regularly and it can be a hard thing, a moving target.

Like what what is that like reuse it?

Because way back 10 years ago when I worked on the mobile app for Quizlet, um it was deeply frustrating that the they switched from iPhone 4 to iPhone 5, 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 users, we started 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 were 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 um I find that yeah, 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

Uh I mean it's been pretty positive.

I think I got lucky because I got into iOS when the Swift 3 was out, because I remember that there was this big migration and changes from Swift 2 to Swift 3, but Apple changed lots of stuff, you know, in the at the language level.

So I think you know, 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 iOS 13 or like some widget changes right now with the iOS 17, you know, until you I think for most of these, until you compile with the new X code and upload new build, the you know, stuff should work as before, even on the new iOS.

So it doesn't break until you submit new version and forget to fix something.

But yeah, there is this, you know, as we mentioned previously in the 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 you know that's much more stable mainly because Apple also doesn't know add much new stuff to it, but you know, the Swift UI one that's the declarative framework, it's sort of similar to uh perhaps the Flutter that's the multi-platform one, or you know, and the Android people they have the Jetpack Compose or something like that, and it's basically the idea is that the UI is uh is represented by state, so it's I

guess the main benefit is that you you cannot have these like bugs that are due to like uh missing synchronization between the data and the UI, but where you would forget to like update button to say like success or disable it, and in the code or like in the logic it 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, and 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 the most like changed or unstable part of the iOS development.

But otherwise, I think it's pretty good.

You know, we we get the first Xcode beta in June, right after their dub conference, where they announced the new you know operating systems and sometimes even the new hardware, like the goggles this year, and then in September or like late September is the release date for all the platforms, so there's a couple of months to you know start working on new APIs and iron out compatibility issues and and similar possible problems.

So I think that's pretty nice experience overall.

Will Vincent

Yeah, the summer is busy with

Carlton Gibson

the Swift UI.

Um, like one of the promises, and they they all sort of like they um all sort of have the same thing if you go into the Microsoft World as the I can't even remember the MAUA.

Um 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 perhaps build your Swift UI for your iPhone, but it'll go to iPads easily and then onto the Mac easily.

Do you find that?

I mean, is it it would never seem to me as the great utopia that is promised within the marketing materials?

Filip Němeček

Yeah, it's definitely not there yet.

I I feel I mean between the iPhone and iPad, I think it's pretty close.

And perhaps even with the watch with the Swift UI where like your components automatically adapt.

You 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 to Mac is more difficult, and you have multiple choices like to build.

You can build this fully native app, you can do the the catalyst one, which is like iPad version with some like changes, and then you have this I forgot the term, it's something like iPad apps for Mac, and that's like just this iPad app that runs on a on Mac with minimal changes, but that's also also has some issues, and you can even detect it in code, so you cannot provide any customization for in this mode, I think.

Carlton Gibson

And then the other thing people go for then is they end up building electron apps because they want this kind of multi-platform.

Well, it's a kind of thought.

Have you never been tempted that route?

Because you've got Django, you can serve HTML with it, you're doing that for your impress kit.

You never thought, oh, I'll just stick a web view in here and

Filip Němeček

not really, because um, I think it's you you can pretty uh quickly see that the app is not native, you know, because you can try to zoom it or you you can scroll up and down, and you'll see that it's either like you know, it's janky or it's some kind of beer tissue.

It's and I I'm not sure if that's probably also part of the WebKit, or because I I I think I've read some like blog posts and similar where 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 that's more like it's just completely different, you know, technology.

Carlton Gibson

And I think I you I think we have to be fair to like it seems to me at least that WebKit's come on or Safari's come on an awful lot in the last say couple of years, I say two years, there's been a big move forward.

So I don't know.

Okay, interesting.

Will Vincent

Thank you.

Well, maybe as a as a final question, when do you think the new uh switch is gonna come out, right?

The switch to the pro, right?

You have all the insight.

Filip Němeček

Yeah, um that's a surprise question, didn't expect this.

Um I mean the the 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 like lifespan of these game consoles is perhaps seven or eight.

Not sure, you know.

We didn't have many generations even with the PlayStation and Xbox and somewhere longer, somewhere shorter.

So I I guess I have no idea.

And and I mean there are some some rumors about you know this performance boost and this ray tracing and similar.

Um I don't know, it feels weird to me because Nintendo never really like focused on performance, even with the older consoles and their handhelds.

You know, 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 they have this like cartoon graphics, so they you know they don't need the performance to have these super realistic scenes and words.

Um I mean I I hope that you know for the new switch and for it to be backwards compatible, so I can it it it will perhaps bring more interest to to my app, you know.

And there's new new console that's it's sort of similar and it's not not completely different.

Will Vincent

Um yeah, I remember when it first came out, they they launched with the the first uh Zelda uh Breath of the Wild, and they sold more Breath of the Wild games than consoles, as I recall, which was sort of I'm pretty sure that's the case.

Um anyways, 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

I think you know, regarding Zelda, that's probably the most embarrassing fact about uh you know me and Switch is that I've tried the first one and the the breath of the wild and it just wasn't a game for me.

And when I tell this to someone who played it, they'll they're like, what?

How?

Will Vincent

Well, it's you need all the time in the world, is the problem.

Um, I would recommend uh just going off topic like Hogwarts, Hogwarts Legacy um 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.

Hey, well, Carlton, are we thinking I think we're out of time.

Anything else you wanted to ask?

Carlton Gibson

No, I was just gonna just I was I was gonna bring up Goldeneye, but I won't.

Will Vincent

Uh well it's only only yes, only on uh only on the streaming one though, unfortunately.

Carlton Gibson

Yeah, but I would have got that, but you said infinite time.

It's like literally since children uh the my gaming time has did uh evaporated into none.

Retirement years.

Carlton Gibson

Yeah, yeah, yeah.

I save it for when I'm retired.

Philippe, thank you very much for coming on.

It's really interesting to talk to you and to talk to how you're using Django, you know, in as the back end for your iOS apps.

I think that's fascinating.

And you know, I hope you've enjoyed coming on.

Filip Němeček

Yeah, 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.

I think in the show notes there should be links perhaps to my blog that has the contact info.

Yeah.

Will Vincent

All right, thanks very much.

Well, we are as ever at DjangoChat.com, and we'll see everyone next time.

Bye bye.

Bye bye.