Build a complete mobile | Desktop | Web app with Python - Python Flet(Flutter) tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello and welcome back to my channel my name is Newton and in today's video we are going to dive deep into the flat framework now what is flat flat is a framework for python that is released to help rebuild real-time applications like mobile apps desktop apps and web apps now with flat you don't need to necessarily learn JavaScript a whole lot of HTML and CSS just to build one application for a specific task with flat you can build one app and then compile it to either mobile desktop or web application now currently Flex doesn't have the support to compile to mobile app that is Android or iOS but the developers are working very hard to release an update for that now you can compile to desktop and then web applications by simply using umpire solar to compile to desktop and then for web app I haven't tried it yet I'm yet to try it and then I will let you guys know how it goes and we'll continue from there so without wasting much time let's see this application that I bought with flat you can see here this is a very nice modern application built in Python with flat now one thing I forgot to tell you is flat was built on flatter so your application looks very modern and professional like what you see here now let's test this application so I have my menu bar here I have the search button I have my notification icon I have a greeting message um a container of cards uh with this slide here you can see I have this here I have some tags together I can make them as completed I can also click on the menu bar now I have my menu icon here my menu button which I can click on to bring my profile and um other Pages within my app you can see I have this very nice progress and buy here I have some kind of um charts here also and I have my floating action button here which I can click on to create a new task now this is very cool so now here I can just click on this button and then add a new task so here let's create a new task and then I can add description for my task also I can choose a category for my task so yeah maybe yeah I can choose family you can choose business and I will hit on create task if I don't want to I can just click on this and it will take me back but let's create a new task and I don't know whenever I create a new task that screen pops up because this I really don't know I really don't know so I've never just drop that and then here I'll click on the console or um the close to take me back to the home screen and you can see the attack that I created recently is here and also you see all these check buttons here these are custom check buttons that I built myself I will leave a link in the description to my kids all so that I can just clone or download it and then you can use them in your project um so without wasting much time let's jump into it and then create this application foreign application you definitely need the flat module so we are going to pip install the flat model you can simply run pip install flat like this and then you press enter but I've already installed it so I'm not going to install it again now once you've installed the flat module all you need to do is import it so I'm going to import it now you can import the flat module and then from there you can just call any method that you want maybe from Flint you can import a page you can import border radius or whatever you want to import but here I'm trying to import all so that I can just call them by their names and then from there you need to define the main function which is going to board your uh your page so I'm going to Define my function and then I will explain it so this is my main function that is Main and then it has this parameter and then the parameter is of type the P which is a cloud from the flat model from here I need to initiate my application it's very simple you just need to coil and your application instance and then you you point it to a particular function in this case it's going to be this function here so now with this I've initiated my application I can simply run it here and then it's going to launch my application but with if I like GTA is not going to update whenever I do some changes here so to enable that you need to run it by this way so with this method you need to call your flat model and then you pass in this arguments and then you add the file name in my case it's going to be Advanced to do app.pi so you can see my app is launching and then I can open it from this localhost URL it can also point it like this you can see the view is equal to web browser so if this is going to open your web browser and then your application is going to work in there but I prefer using the window type like this one here so now you can see this is my application window and everything is working so I'm going to remove the Target that is the web browser Target and then also the application is going to be kind of mobile app form so I'm just going to adjust the width and height like this foreign [Music] but you can see the window is loading because there is nothing here so let's go ahead and then put some widgets here to add widgets it's very simple we are going to Simply add the container with this here we just need to type container and then if you know flatter small this is going to be extremely easy for you so I have my container here I can refresh and then this is not going to stop because I need to add it to the page if I do this I haven't added it to the previous so let me add it to the page so with this when I save I have successfully added this container to this page so I can even give it a higher color so that you can see it well and then you see my container here like this now let's I'll start building our application from this application you see we have this background we have this kind of um is it blue black or whatever they call it so I'm going to paste the code here that is the color code for this so these are the colors that I use in building this application and then I have my background my foreground the pink color and then this is kind of I don't know the full meaning of this but I just gave it to this random deck now let's continue building our application we need to set width and height for our main container and also change the background to this color so that I can easily make changes to this and then it will affect the whole color so let's build it foreign radius to our main container now you see this container is made up of two um let me see pages so I have this current speech that you see and then I have this kind of hidden page that you see so to do this in flutter we use something called the stack so we are I'm going to use it here also so um let me show you how to do it you can save contents you save content because this screen is made up of widgets everything here is with it and then each widget can contain another widget and then it goes on so this container we are we in flutter we call it child but in Python they made its content so this is the contents of the container that is going to be a stack widget so I have my stack widgets here and then a stack which is going to contain a whole lot of widgets and then the content of this stack widgets we call it controls now in this control we are going to add two tests one is going to be the first screen and the other is going to be the next screen that is the screen behind our main screen to do that so on this screen when I click on it like this you can see the screen is to the right like this to achieve this I use the row widget and then I set the alarm at to the end that is the end at this part because on a row with it the whole screen like this is in a row which is and then this side when you go to the left we are going to start when you go to the right you are going to the end so I set the alignment to the end so that when I click on it and it shows it aligns to the end like the surface to the right like this so let's go on and then we create our pages so this stack widget is going to contain my page one and then page two which is in this case this screen that you see and then this screen that you see but now I don't have my pages yet so let me create these pages to do that I can simply come here and then I'll create the pages like this thank you so now I have I paid one year and then my page two here because I'm going to animate this that's why I use the row widgets which will give me that kind of alignment that I want so that I can animate it and then it will give me that kind of effect now let's continue building our page and please if you don't understand anything let me know in the comment section and I'm going to try my best and reply you ASAP now in our raw widget it can also contain water pool with this so we are going to use the controls parameter in this case now in this container we are going to set it to look exactly like this [Music] and also while cool tip is when you hover on this slide this on any widget you can see all the parameters available we can just try them out and see how everything goes and with that you can also build upon and then do something very cool now let's go in and add some paddings to our container [Music] our things we are going to use multiple um widgets on this screen we cannot use a container because container contains only one particular widget so to fix that we are going to put a column widget so that we can put our widgets in the column widget sales column widgets can contain water pole widgets like how you can see here [Music] foreign because I haven't created this variable yet it's trying to add this to the screen which it cannot file so let's go in and create this variable [Music] now so you cannot see anything because I haven't added anything different to the base screen so let's go on and then add some widgets to our screen so now that you have some basic understanding I'm going to move on and then speed up a little bit so that the video wouldn't be very long so here you might not understand it very well here you see I have my wedges um arranged like this that is it goes to the right instead of going to the down like this as how this is so to achieve this you need to use the raw edit because the row we did arrange the thing to the right like this so the more you add if I add more here too or be added to the screen like this so here you can see this is at the stream left and these are others feel right so to do that we need to put this in a separate container and I will put this also in a separate container and remember that container cannot contain a Model A single widget so to get this working we need to use the raw wedges again because the row with it can contain multiple widgets and also it will arrange them like this foreign [Music] I'm going to go and then add the rest of the widgets so now you see I have this here and then I have these two also here so to separate them like this I need to set the alignment for the row which is this main row which contains all of this so as you can see says I've already put these two in a separate widget and then this also in a separate widgets when I did the alignments you see it's created space here and then I have this at the extreme right and then I have these two also at the extreme I'm sorry I have this at the extreme left and then I have these two at the extreme right so now that I've done this the next thing is we need to do this one too that is um the text here the text and then all these also here so let's do that now you can see that the space here is very small let's go on and then put some space over here so to do that I'm going to use a container so now I have this container here and you can see it has created some space over here [Music] so let's continue by adding this categories widgets now the next thing to do is this card here these cards that you can see here so to do that I'm going to create a new container that I'm going to put all this in foreign so now I've created my content about I haven't added any contents to it yet to do so I'm going to create a new variable that is going to hold my container because I'm going to use a loop to append items to The Container that's why I'm just going to leave the variable here so that I can just call it anywhere and then append a widgets to the container [Music] so now I'm going to create my categories widgets and if you've noticed you can see this goes like this so definitely you know we are going to use the row here we need to append widget to this um widgets here here I'm just going to create some dummy categories to represent this foreign what's going on here you see here I have my categories here does business family and friends so I'm looping through this and then I'm appending the value to um this widgets over here this is the raw widget so I'm appending the values from this to this one but I cannot append it as a raw text like normal text it should be a widget because controls this one this contains widgets so I have to put with this in this so I'm just going to create a container so inside this container I'm going to put my categories in there but first let me give it a color so that you can see how it is right now [Music] so now you can see I have them here but it's not scrollable it's overlapping the screen right now let me make it bigger you can see it goes on like this so to fix that I can simply set the screw to so that it will be um scrollable automatically so by setting this to Auto this becomes scrollable automatically so now let me save it and then let's see now you can see this is scrollable like this as you can see let's adjust this let's make it look better [Music] foreign now you see in this one we have some kind of Shadows um at the back like this this is because I use the stack widgets and then I place um this one that you see on this one yeah like what uh we did down here first we did down here like this so but in this tutorial I just want to make it simple and then as we go down I will use all these in some projects so that it gets more understanding so now let's go on and then we'll add all these inside to do this you can simply see this is this goes like this so it's a column and inside the column we have this test this test and this kind of progress bar over here so let's do that foreign I've made a mistake here I didn't um bring the parameter so this is a controls and then inside the controls is where I have to put this so now you can see I have this here I have this also here and then it goes on like this now we need to add the progress bar here so to do this we need to use a container so let me create a new container here and then I'll give it um colors and then wait so I've added a padding of 50 to the right like this so now you don't see it because the pattern is within the container so we need to put the next container in there and then we give it color so that you can see how it goes so now let's leave this pattern like this and I will create a new container and then we give it color and then with this you can see because of the pattern that we added to the right of this main container here it has shrink this to the um the left like this if I reduce it you can see it gets close if I take it to somewhere like two you can see it almost full like this so to make it kind of um Dynamic we can simply use come up here and then we we introduce a new variable that is going to be the index of each of these so that we can simply use the index as the um the multiplier for our progress so let me implement this I'm just simply going to do this so this is yeah use when you want to get the index and then the particular item in the list then you look through the list and then here I'm just going to multiply the I here by this since the I is going to be an integer it's going to work now next we need to create some space here and then we add this um text widgets now to do that we need to go back to our main column and then we add this our widgets to that widget so let's go back foreign we can go on and then we create some space over here and we have more space over here now what we need to do next is if we do um this over here to do this you can see we have this floating icon button on this column widget over here to achieve this we need to use the stack widgets because the stock widget allows us to use a particular widget on top of another widget so let's go on and then we create it and since the stock widget also contains more than one widget it also use the controls as it are inputs parameter and inside here we can just pass in this and then this that is this column and then this floating um icon button or The Floating Action button that's the name so here I'm going to create a new variable called task and then here will be the floating action button so let's go on and then we create our tasks that is a column widget because this is going to be a column and then now let's refresh and see okay so we are seeing this because the floating action button doesn't have any icon alted so let me go on and then I add some icons here so now I have it like this so now when I click on this nothing is going to happen because I haven't defined all this Now give me one minute let me paste the routing code down there and then I will explain what it does so now here you can see on Route change this gets fired when you call this that is Page dot go whenever you call this this gets fired because the route is going to change and then it should execute a particular function so this is the function that is going to manage our routing let's go on and then we create this function uh if you don't understand let me know in the comment section and I will create a separate video to explain router foreign now inside this function we are going to build a new view you see the current view that you see right now we are going to build a new view so to do that we need to First Clear the current view the view is simply a container and then it gets built whenever you call the routes changed so first I'm going to clear the current View so here I've cleared this is a list the the view is a list you can see here it's a list so let's have a property called clear so I've cleared whatever is in the view and now I'm going to append a new view object so when I comment this code you see it's refreshing and refreshing and refreshing forever so now I need to append a new view so that it can get built and then we can see it on the screen right now so now you can see I have my main view here that is the home view or the Home Route here and then I also have inside the home route I have this container you can put multiple widgets here so now you can see I've added this view to our views objects here so whenever I go to this route being my home route whenever I go here is going to build whatever is in here like this so here I can simply cut whatever is here like this and then I can paste it in there like this and this is still going to work because it's going to board the whole thing again so now to make the whole thing very simple what I'm going to do is I'm going to use a dictionary so that since we have multiple views like this or multiple routes like this we have we can simply just build according to whatever the dictionary contains so let me just um do it and then I will explain it better so now in this application I have two main screens that is my main view which is this View and then this view that is um create start view which is um this one that I haven't created yet for this current application so now let me simply copy this and then I will create it and come back and explain whatever is here so this is going to be as simple container let me just do it down here uh I am down here rather so with this Let me refresh and see what's up is I love it okay so it's telling me um this marble here um I haven't defined it yet but I'm trying to call it right here so now let me bring this rather down you can put this here or even down here like this so that I know that the whole thing goes down here like this okay so now that I have um this here this is a container that is this whole thing that you see here is a container and then this one also is a container so this container is what I want to build whenever I click on this button here so when I click on it it's going to go to this and whenever I go back to the home by clicking this it goes to this route and then this one gets built like this so that's simply what you see here so here I've created a dictionary like this and then in my dictionary I have this view here and then I have this view here which goes for this particular one like this where your hoverboard is like this it will tell you the route which is this route and then um your controls that is what you want to build upon the upon the call so when you call this route like this it's going to build this and then when I call this route like this it's going to build this particular one so inside here like this you see when I click on that particular um add this one when I click on it it goes to easy page.go page dot go simply and create a new route this one is executes this so on Route change whenever I I do this that is page does go this one gets fired and then once it gets fired this is going to call this function and then this function um here I have to clear whatever is here like this so here instead of appending a particular view I just need to pass in from the dictionary that is this dictionary that I have here I will just call my dictionary [Music] and then I'll pass in the page dot route I can simply cut the whole thing and then take it down here so that it will be simple so here I clear my my view and then I append one particular view to it which is the current view that I'm on so if I click on this particular one right now the view will change to create tags like this and also when I go here and then I click on this button for this screen I haven't created yet in of this application but I just want you to know what's happening behind the hotel so here like this I when I click on this I call the page dot go and then I pass in the route being the Home Route which is this one like this and also when I click on this I just call this and then I I call the page dot go and then I pass it simply passing they create dark route like this and it goes on so you can just click you go back you click you go back like that and then it will just simply from the a design like this it will just simply render the particular value from this like this and once again if you don't get it very well let me know in the comment section I will take my time create a very deep video to explain the routing better so now let's continue so by doing this we don't need to add this because this view is going to build the whole widgets inside here so now let me save it and then let's see what happens foreign so when I click on this like this you see it takes me to this screen that I haven't created yet so to fix it quickly let me simply create a new button here so now you see I have this icon here now let me add the click function to it and then let's see how it goes [Music] so now with this when I click on this it will simply set um the page dot go and then the route is the main route which is the home page so let me save it and then click on this now and you see I'm on the home page when I click on it it will take me back to this page like this now let's continue with building this screen you see here this is a stack widget and then we haven't put anything in there so to fix um what's inside here we need to go back so inside this we have tasks and then the task we haven't created them yet so let's create some tasks so now here let's set a height for our color widgets here and then we need to set the scroll to auto now what we need to do is we need to append some widgets to this particular one what we can do is we could just increase the manually let's say for example foreign [Music] like this is going to be a headache what we need to do is we just need to have some Loop somewhere which append the data um to this controls here so let's just um clear what we have here like this and then we save it also now let's run some Loop and then we use the data from there and then we append it to our task column and also you need to remember that this takes um widget it doesn't take string or anything if I try to pass in anything let's see I put I here let's see what happens you can see there's an error because this needs to be a widget not a string so now I can just copy this here and then I'll paste it in here like this and let's run it again now you can see I have it here like this very nice let me increase the weight to 400. and this is very nice also you can see this is here we can simply fix it by adding some few arguments [Music] so here inside our Floating Action button let's add these arguments and I see it's at the bottom but we want it to be here so we can just add right now we have it right here now let's go on and then we fix this we can do that by just adding the background color and then we set the height as well so he set the height to 70 and then the color will change it to our defined colors and this is very nice you can also add border radius and I can see it's nicely arranged here so I can still click on this and then it will take me here and I'll click on this and then it takes me back now you see I have um this here that is this custom um check buttons that I bought myself so I'm just going to call them and then you can just I'll leave the link in the description as well you can just go and then you copy it and then you will save it somewhere so let me just create it in a Swift you can simply copy and then you paste it in like this now inside this container we are going to set the contents to our custom checkbox first we need to import it this is this class and then we need to pass the color that we want I'm going to go with pink and then now let's see so you see I have them here like this very nice and then it takes level that is the text here so the level I'm just going to write some dummy test here and you can see it here like this now let's add some patterns so that we can Center it very well to do that I'm just coming here back and then I'll add padding [Music] and also don't forget the comments here because um it it can cause you so many problems so now after adding the padding you can see this is very nice arranged here like this and this is very nice I can go here come back I have them here like this you can go here to add more select or select go back also you can increase the size of this let me show you here so you can do size is equal to 30 and this is going to increase the size you can see it here like this this is custom widgets that I created there for this um tutorial if you are interested in more let me know in the comment section I'll create more custom widgets so that you can use them in your application also you can increase the font size by just specifying font size because maybe 25 which is too big yes but it's so cool here so now that's this for um this current screen let's move on and then we fix this so now to add the animation we can simply come to um this screen here and then we see animate animate is equal to animation and then we specify the duration that is how we can use 600 and then the animation style we can use animation.kev there are so many animation styles that you can use you can use the ease you can use is you can use bouncing but first let's go with decelerate and um I've made one mistake here it should be animation curve not animation.k so now we have our animation here and also we are going to scale it down as it goes like this you can see here it Scrolls down before you see it goes down like this so to add the scaling animation we can also do it like this it's very simple we just need to specify uh you call it like this animate skill and then you do it like how we did the first one another way you can do it is you could just do okay with your code and then you write the accelerate like this and this is also going to work just like this now let's go on and then rewrite function to do the animation when we click on this button so now let's search for this button and then we add the on click method okay so we have this container here so on click so I call this shrink so let's go and then we created the function so now inside the shrink function what we want to do is we want to um decrease the weight and then also we scale it now a little bit so let's do it that is our page two dot controls so let's see how it goes I've reduced the size of this to 120 so let's see okay so it didn't work because inside our page two let's see inside of this page two you guys see this is um a list so we need to point to this particular container because this list doesn't have a weight is this container that has a weight so we need to select the container from um the list that is the first item in the list so that is zero and then let me save it and run again and now let me click on it so here when I click on it nothing happens because when you click on it the screen is already built so you need to update the screen so you simply need to call Page dot update and then let's run it again and when I click on it like this you can see the screen shrinks to 120 like this also we could just scale it now by simply using this method [Music] now let's refresh and see how it goes so when I click on it you see it goes like this but it doesn't go to the right instead it goes to the left let's try and then fix it so inside this row we need to set the alignment to the end because this is the whole container or the Rope widget so inside it we want to set the alignment to the end so that when we shrink it it will go to the right so let's do that [Music] and then simply adding this let's refresh it again so now when I click on it you can see it goes to the extreme right and this is very nice now that we have this let's write another function to restore it back to its state so to do that I'm just going to the top and then let me simply duplicate this line and then I'll call this restore and then restoring it I need to set the width back to 400 and also I need to set the scale back to 1. and then I still need to update it so now let's create a button that will do the restoring for us so now you see I don't have any button here to restore it let's create one button right now so to create a button here I just need to go to this page that you see that is the page one says real if you remember this is the page two I created it down here that's here so all we've done is we've worked on the page two and then now we need to work on the page one so to do so I'm going back here um let me just click and good and then inside this container I'm simply going to create another container I need to use their column because I want my widget to go down like this you see this is the column so to do that I just need to call the contents um parameter and then my argument is going to be a column and inside my column I have um the controls which is a list of widgets and then inside this list of widgets I need to um put in my container and then I can simply add a content and then inside the content is going to be a text that says I'm this or I can simply use the arrow back like this so now let me refresh and see how it is so when I click on this you see I have this here so let's go on and then we add some patterns so that our widgets will be centered over here so here you see the container with the container height down the background color here and then the background the water radius and then here to um I've added some patterns that just to the right to the top and then um to the left here as well so at the left I give it a pattern of 50 at the top I gave it a pattern of 60 and then add the extreme right I give it a pattern of 200. so now let's um add on click function for this icon here [Music] and when I go back here you can see I have it here like this now um I don't want to waste much time styling this alone so what I'm going to do is I'm simply I'm going to use some padding to center it here foreign now we can add the unclick function so that when we click on it it will just restore this back to its normal state so on click we need to call a function um that is our restore function so restore and then inside our restore we have everything again like this so let's refresh and see so I'll click on it and then I'll click Mark and you can see it's working and it's very smooth and nice so now you can go on and then you play with um the animation then you see which one goes well for you you can simply search animate and then inside here you can use the bouncing animation so I can use this here and then when I click you can see how it goes and this is not nice so I'm just going to go with the deceleration and this is cool you can simply call our page two and then we add some border radius here at the top left and then the top right is zero the bottom left is 35 and then the bottom right is zero so doing this when I click on it like this you can see I have this kind of nice uh borders around here like this now we need to go on and then we add this right here so to do that it's very simple um no it's not simple this this one here is custom made and it took me some I'm thinking and calculations before I was able to do it let me actually show you how I did it so I'm going to Simply paste the code and then always play it you can see I have this um base kind of background and then I have this pink here so I use a stack that a stark widget here and then inside the stuck with it I have this base here that is this one and then I have this container here that is this one so this container that is the second one this the pink one that you see contains the whole thing and then this container here is the base and this is simple this first one is simple because it's just a simple container and on top I've put another container let me just copy this and then I'll simply paste it in my page one so in my page one I have this and also um this I want it to come to this side I just want to use the raw container so that I can align it to the end like this so to do that it's very simple um I can simply just um cut the whole of this and then I will create a row widget and anytime my rule which is I have my controls and then inside the controls I'll just place it in here like this so now I can set the alignments to end and you can see I have it here so now the next thing I need to do is um add my text that is this name and all these here so it's very simple let me simply go on and then add some text with it and then we can style it so we can set the size to around 32 and then we can set the weight to maybe bold and then let's see how it goes okay this is cool and also I forgot to bring the circle Avatar so so before the test um let me create some container and then set the height to 20 and then I can bring my circle here and then now I have it nicely arranged like this so now from here I can go on and then I fix this uh template here also so to do that I'm going to use the raw wages because I have this and this so that I will arrange them in rows like this this one and this one before I do that let me first um create some space down here and then I can use my row with it and set the controls um this is icon okay so this is favorite and then I have my tech so let me add my text you can see it's like this here so now um I can install it tomorrow let me change the color to um all these you can get more information from the documentation that's the color then everything also uh when you hover on it you can see um a whole lot of arguments that you can pass so from the parameters here you know what to do or you can also go to the official website that is flat.dev and then you find out more information from there and then here I can do the size I'm around 15. and then the weights I can do front with 300 can I set the color to white and this is um cool also this is um too small so let's try 60. and 60 is okay so now we can simply duplicate this so I'm just going to duplicate it twice or three times like this and I will change the icons to um here I can change the icon to card here I will use the calculate outline and you can see it here like this also I can create some spaces in between so I'm like this and this and this is cool and also um I have this um illustration here so which I'm just going to paste it [Music] so I see the image doesn't show up because um I don't have the image here so um let me just copy and paste it inside there so inside here I have my asset folder the icons folder doesn't contain anything and then the the one dot PNG you see I have the image here so um what you need to do is you come down here where it says up where you initiate your app and you set your assets there to the folder name which is assets like this so once you do this you go back here um 2 000 years later so after um running a few checks I saw that uh running it to close this and then reopen it so start doing that I saw that the image appeared here so if in case you see the same issue you can just close it and then you run it again by simply using the method that we used to run so one last thing that's uh we need to look at is after restoring you can see a variable here you see that the water radius here is missing so we need to fix it we can just go back to the restore function and then we add it here like this look what this cell is you need to select the first item and another thing you can see it works very nice so now we just need to add the text here and then we are done so to do that let's go back to um this page one and then we add the text foreign family is purpose I'm going to do the same thing for the next text so I have this also here like this so here on this page I'm not going to work on it in this video because this video is um it's getting too long so I will leave it here like this and maybe in some other time I will create a video on teenager video to I'll fix this screen here but you can also work around it you can simply just put some widgets here you bought some with this yeah you both are with this and that is so so that's it for this video I hope you enjoyed it and if you did make sure you subscribe to my channel for more videos like this and also don't forget to like and share to your friends and see you some other time
Info
Channel: Mr. Newton
Views: 24,309
Rating: undefined out of 5
Keywords: mrnewton, mrnewton python, tech, how to, python, mr newton, python tutorial, python tutorial for beginners, felt tutorial, python flet, flet python, flet python tutorial, flet python examples, python flet framework, flet python apk, flet python deploy, flet mobile app, python flet compile, flet compile to apk, how to build mobile app, how to create mobile app with python, kivy, flutter, flutter tutorials, flutter in python, python flutter, flutter python, mr newton flet, flet
Id: 6Tj8_iKqh_k
Channel Id: undefined
Length: 64min 50sec (3890 seconds)
Published: Thu Jan 12 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.