Flutter vs Native Android / iOS (WHICH DO I LEARN?!)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
in this video I want to answer four main questions number one is the pros of flutter what is flutter great at what does it do really well number two is the cons of flutter so what do I think it kind of lacks number three is the question that all of us want to know the answer to which is which is better native or flutter and what I'm gonna do is I'm going to outline some specific circumstances where I think flutter would would be the choice that you want to make or whether native mate might be the choice that you want to make and number five as kind of a bonus I'm gonna talk about where I think the most incredible opportunities are regarding flutter and making money I really think there's a very unique kind of area regarding flutter that not a lot of people consider or take into account and I think there's there's a lot of money that can be potentially made in this this kind of little niche environment so first of all Who am I and what have I done how did I get this sudden expertise on flutter many of you might know me from my very famous video flutter is for babies I made that video I guess a few months back and it's been pretty popular not in a good way that's actually why I decided to go about this going to this journey and learn more about flutters because I got a lot of well I got a lot of good feedback but I also got a lot of negative feedback it was kind of like a divided line some people agreed with what I said some people totally disagreed either way what it told me is that there something I said was clearly wrong there was definitely things that I that I said that were just straight-up wrong and it was it was a good opportunity for me to dive deeper and really get a good understanding of what this flutter thing is all about so what I decided to do is I spent 30 days one month completely on flutter so I put everything else on hold basically what I did is flutter went to the top of my priority list for the entire month of June June 2020 I spent about 80 percent of my time just on flutter so just strictly developing apps with flutter just playing around trying to figure out the ins and the outs the things that it doesn't do well the things that it does really well I'm a native Android developer myself so I think I have a pretty unique perspective coming from spending you know thousands and thousands of hours on native Android development and then going into spending you know 30 days straight on flutter pretty much so I have I have a unique perspective I think and I think you're gonna want to hear it alright so let's start talking about the pros of flutter what do I think that it did really well after spending 30 days on it the first thing in my list here is well obviously you get an iOS and an Android app I just had to make sure I said that that's obvious I'm sure everybody knows that so just just getting that point out of the out of the way right now the second thing the second Pro that I'm listening for flutter is that you can build really really beautiful you is I have to say like I was I knew that after reading about it and hearing about it that you could build really nice you eyes really easily this is what everybody says but after using it I was still like I was really blown away by how easy it is to build you eyes that look really really nice and you can build them really quickly like on Android there's basically no like default styling that comes with it when you build the UI you also have two choices you can either build it in XML or you can build it in the design tab which is essentially just like a drag-and-drop XML thing actually there's a third choice technically you could build it with code but it is not something that you want to do usually but either way the way that flutter does that you build it with code and I really just like the system I have high hopes for what jetpack compose is working on right now for those of you don't know about that it's essentially like a flutter version of UI building for native I really hope that it is very similar to what flutter does because I just I love you eyes with flutter they look they look amazing out of the box they're easy to build it's intuitive it's just good all-around awesome now the third thing on my list here is dependencies so if you're an Android developer or you've been around Android for any amount of time you know that this this dependency issue is is a known thing there is there's a dependency for everything is a dependency for card views a dependency recycler view is a dependency for toolbars a dependency for blah blah blah blah blah blah there's dependencies for everything and some of these dependencies are you know a lot of them are made by Google by the Android team and some don't work with others like the card view dependency version I'm just gonna use random numbers here to point one point one might not work with recycler view version three point four point nine you know and this becomes very very annoying if especially if you're a beginner and you have no experience you're just gonna go to the documentation you're gonna copy in the dependency you're gonna put it in think that you can use a widget and sometimes it just won't work or don't give you some like cryptic error where this it'll say like your recycler view has some XML error or whatever it does it's not very helpful and there's a lot of these conflicts that exist it's it's pretty common to run into this issue so overall on native on Android the dependencies are fragmented that's how I would describe them on flutter this is a non-issue there's basically one dependency for like every single widget obviously they all work together you're never gonna get a conflict your ListView isn't gonna tell you that it can't work with like your card your list tile isn't going to tell you that it can't work with like padding there this these things will never happen because there is only one dependency this is this is a huge upside I love this I don't know why Android can't just like put everything into one dependency that would be like the ideal world they told us that they were gonna fix this problem with Android X I would say that I I mean I don't see a big difference with what they did with Android X yes they consolidated some things but you still have this fragmented dependency issue the next Pro on my list here is pre-built widgets for very specific circumstances and I'm gonna give you an example so if you've been using flutter at all those of you who've never used flutter aren't going to know what I'm talking about but I'll try and outline this as best I can so in flutter there's this just as an example there's this widget called a list tile it the the Android native equivalent for this is like a view holder for a recycler view the avenge with this list tile thing is that it's pre-built to have specific positions that you typically use in like a list so like just as an example as an example list you typically might have like a leading widget that sits kind of at the front of the list maybe like an icon or a image of somebody then you have that kind of middle section where you might have like some information some text then you might have a subtitle with some lighter text this is like a very typical layout for a list item and then you have on the farthest end like a trailing widget maybe another image maybe a trash can for deleting something a check mark for confirming something this is the typical layout for a list item most list items for displaying information look just like this so there's this list tile widget in flutter that has these these parameters that you can just put in it has a leading parameter has a title parameter has a subtitle parameter and it has a trailing parameter so you can just specify these fields and the widgets automatically go into those places into the list item I think this is like this is a beautiful thing it saves me time as a developer because most list items are going to look like that and it looks great it just like it just works out of the box and it looks great the next thing in my list here is restoring state so I'll try and paint this picture as best I can so in Android development say you like you have some some text into an edit text after capturing some input or maybe you have like a dialogue on the screen showing think about what happens when you rotate the screen by default if you have a dialog showing you rotate the screen it destroys the activity and recreates it if you don't have a mechanism for rish owing that dialogue the dialogue isn't gonna get shown again likewise with some some edit text fields in most circumstances if you have some text in the editor you rotate it that text disappears because the activity is destroyed recreated text goes goodbye so there's there's a and there's a number of things like that I'm just checking my my notes here yeah so like list positions - like if you have a list position in a recycler view you rotate it that list gets usually regenerated if you don't have a mechanism in place for putting it back snack bars all these kinds of things but with flutter it's great it basically does what you think it should do right away so if you have a dialog showing you rotate the screen boom the dialog list dialog is still showing if you have some text inside of any fields rotate the screen boom the text is still there snack bars are still there everything is still there the list position is maintained everything just kind of works out of the box where is on native when you do these things you you have to build these mechanisms out yourself and if your experience it's no problem you know you save the state you restore the state it's it's it's a non-issue but if you're a beginner this this can be a big issue because there's a lot of things that you have to know you got to know about state but state management you got to know about the instance state got an oboe view models you got to know all these things whereas on flutter it just kind of works the way that it should work oh actually one more thing to if you're say you're at you're in like a list a list fragment or a list screen something that's just playing data you click on a data item it takes you to a detail screen where you can get more information on that item if in flutter if you press the back button you go back and that list position is still exactly from where you clicked it so that's great you know it maintains the state even when you go back on android by default if you click a detail item go to the next fragment go back it will not maintain that list position so another thing that just works out of the box with flutter the last the last Pro that I'm going to talk about is list views so in Android the the ListView is actually a recycler view but the recycler view requires a lot of like configuration to set up you got to build an adapter you got to build view holders maybe different view holders depending on the types of views in that recycler view you have to optimize it with diff util you have to handle a custom pagination system there's a lot of there's a lot of things that you need to do just to display some data with flutter they have list views and they have this list view builder thing which is just essentially like an extension function that you can call on the list view object and it handles all of that stuff out of the box so you just you can like literally pass it thousands of items which yes I have tested it I I made a I made a list view just to see if it would perform well I passed it I think it was like 500 items with images and everything and I scrolled forever and it was totally fine so I don't know it just it just performed really well it was super easy to set up like you can set up and like five lines of code whereas with the the Android equivalent the native equivalent you need like I don't know probably like a hundred lines of code so that there's like a huge a huge savings there but this just goes into like the overall kind of flutter idea is that they have all of these pre-built things that just worked as they should intuitively so that's gonna be it for like the things that really stand out to me that I like about flutter and I'm not saying that like these are the only good things about flutter obviously there other good things those are the things that just really stood out to me and now actually before I talk about the cons the things that I didn't like about flutter I'm gonna talk about a number of things that I'm kind of neutral about the ones that worked equally well on flutter as they did on native so basically they're just like they're equivalent I didn't really see a lot of difference so the first one is network requests I didn't really see a big advantage of network requests on flutter as opposed to native on native you're probably going to be using something like retrofit on flutter there's an HTTP library that you use you can do any type of request get post update delete you know whatever it kind of reminded me of Python actually the HTTP library for Python it was very similar the way that they handled it but but yeah I mean in general I think there was no real pro or con and when you compare native or flutter in that regard so next on my equivalent list here is architecture so with flutter the two architectures are the two architecture architectural patterns that I I kind of explored where what number one the provider pattern I guess you would call it or the block pattern now the provider pattern was basically like using live data on Android essentially you create a class with some data in it and you can observe it in other or I guess other widgets I guess you would say but this is it was basically live data I would say that this was equivalent to live data on Android I liked it I'm not saying it was bad but I don't see like a big advantage or disadvantage second is the the block pattern so the block pattern is actually basically mvi architecture so if you think of mvi architecture on android that's essentially what the block pattern is you have events that can go into a class it interprets those events and it outputs data based on those events it's literally MBI so I think and that's my favorite architecture on Android so I think it's great that they're they're using my favorite architecture equivalent on flutter and that's the most popular one I think I think that's great just overall what I would say is like a reactive pattern whatever that pattern is just just that it is reactive and that you can observe it I think that's the way to go and build flutter and native those are the most popular architectures so I think both do this equally well next is asynchronous work so when comparing asynchronous work on flutter and asynchronous work on Android I should probably specify actually what kind of a synchronous work I did on flutter because I think there's different types again I'm not an expert I only spend like 30 days on it but I was using futures and async await and I really liked it basically futures and async await is co-routines it's it essentially functions exactly like collin co-routines do you know you mark a function as a sync and then inside that function if you say a wait call a function or a wait do something it essentially acts as a suspend function so it just like goes through it waits for the result goes through it waits for the result this is exactly how collin co-routines work with suspend functions and that's my favorite way to do asynchronous work on Android so essentially this was just like a great for me I liked it it was familiar got the job done so that was it for the things that I think flutter does equally well as native and native does equally well as flutter now we're going to talk about what I didn't like about flutter so the first thing I have here is this is the most important thing in this entire video if you take nothing out of this video this is what I want you to take from it if you're like a native guy thinking about doing flutter or you're currently using flutter basically for everybody this is this is the most important thing that I'm going to say in this entire video the biggest downside of flutter is that it requires developers to build plugins if you don't have people building plugins and I'm gonna explain what plugins are in just a second the the whole platform will collapse there is no way that it can be maintained unless you have people building plugins so what exactly are plugins and why are these the problem the problem is you flutter needs native developers so native iOS and native Android developers to build plugins to work with certain native features as an example you know you have like caching so interacting with like a local database push notifications camera Bluetooth services intent filters all of these kind of things they're native they're native things flutter does not have the capability to do them do it itself so it needs a plugin to be able to interact with those native features so like if as an example if you want to build a Bluetooth app there's no like Bluetooth object that you can use access with flutter you have to download a third-party library or a plug-in that a native developer has built that gives you access to certain Bluetooth features so there might only be like one thing that that plug-in does even though Bluetooth can do 100 things and of course like I know a lot of these plugins I've used a lot of these plugins for flutter a lot of them are really good like they're great the camera plugin that I used was great I saw services one I saw a caching one all of these were great like they worked awesome the problem isn't that the plugins don't work good and that they that they don't exist because they definitely do there's developers out there making them the problem is that it depends on those plugins like if for whatever reason the community shrank for whatever reason and I'm not saying it's going to I'm not saying anything I'm just saying if the community shrank there would be less plugins if there was less plugins flutter basically would just fail if if there are no plugins there's no way flutter can exist and these things need to be maintained like there's always new camera API there's always new Bluetooth api's new services all of these things all these native features they have to be updated so I want to come back to this point I just wanted to kind of introduce this point so it's the first kind of con that I'm going to list but this is you know this is by far the most important point this is by far the most the the biggest thing you want to consider when you're when thinking about using flutter is this kind of it depends on the community which isn't a bad thing because it has a great community right now but it depends on the community basically a hundred percent alright so the next con is file sizes so I built some test projects in Kotlin and I and I actually made some flutter equivalence just to see for myself obviously I've also read articles about it and blog post about it and how other people compared apk sizes and file sizes and all these things but my personal experience is this so I built a native application it was just like a basic you know list of data had some images and stuff you could click on it gets network data it goes to a detail fragment that was basically it's like a pretty simple app the native proj sighs on my computer was 50 megabytes I made a flutter equivalent which is exactly the same does exactly the same thing of course it looked a little different because it was flutter but essentially it was the same well my fridge is really loud and we have to turn that off the flutter equivalent the project size was 500 megabytes it was 10 times larger and the apks and whatever the iOS version of an apk file is they they're equivalent so if you have a you know one megabyte project going up to the App Store the flutter equivalent is probably going to be eight to ten megabytes so it's it's significantly larger and normally this wouldn't be a problem but the Google Play Store only allows you to upload projects that are ten megabytes or less I don't know what Google Play is but or sorry I don't know what's the iOS the App Store is but this this can definitely become a problem I've heard that the flutter team is working on this or trying to get the file size down but the file size is is a significant problem because because of the restriction that you can only have a 10 megabyte apk going up to the App Store the next column that I have on my list here is CPU and memory usage so I've read a lot of different information about this on the internet I've heard anything from flutter is two to five times harder on the CPU to flutter is just as good at the CP on the CPU flutter is two to five times harder on memory as opposed to flutter being the same on memory I've read every spectrum of informational articles about this basically at the end of the day what I think is that nobody really knows I think that it is largely dependent on the developer so if you're a flutter developer you know that there's a lot of things you can do to limit the number of times that your UI gets redrawn so if you are someone who's not optimizing as much as you can you can get some pretty pretty poor performance up to yeah like I said two to five times harder on the CPU and two to five to five times more memory and that's that's kind of like the average so what I see here is there's not a lot of information a lot of people don't know what they're talking about a lot of people don't really know what's going on and this is largely up to the to the developer now you might be thinking well Mitch that's not really a con because if I'm a good developer and I know how to do my jobs and this is not a problem well I would say yes that's true but I would also say that because of this lack of information out there there's not a lot of information like I just said I spent how long researching this and I can't find a answer that makes any sense to me all I know is that limit redraws and you'll probably get better performance but I don't really know and I don't think most people know the problem there is the lack of information the flutter is new there's not a lot of information nobody really knows like what the real best practice is or most people don't know so at the end of the day I think it's very easy to make a mistake here and the mistake can be very costly it can cost you a lot of CPU and a lot of memory now the next con here is processed death if you know me and you know my videos you know that I've talked to a process death extensively before it's a real thing what process death is is when your app or your phone gets low on resources it can kind of clean things up in the background and sometimes apps get shut down or you yeah I mean essentially that's that's typically how it happens you start using too much other resources on your phone your phone says hey I need to like limit the resources being used and it starts shutting down apps when that happens the process that the app consumes on the phone gets killed the next time it gets opened it gets it can be opened in this weird kind of state basically it's just not what you expected so flutter as far as I can tell there is no way to handle process death on Android it's relatively simple you know you save the instant state then you restore the instant state boom you're fine on flutter as far as I can tell there there's nothing to restore process that they're after process death next on my list here is memory leaks so as far as I can tell there's no like third-party library for looking for memory leaks you have to use the developer the the flutter dev tools thing to actually like profile the app and like look for memory leaks and I would say like this isn't a big problem but coupled with the fact that there's not like a ton of information out there with for flutter and like best practices you know the point that I talked about two points to go with like CPU and Emory it kind of goes into ties into that like there's there's not a lot of information about like optimizing for CPU optimizing for memory other than preventing redraws there's also not a lot of information for looking for memory leaks so I think there's a there's a lot of opportunity here for people to make big mistakes there's just not enough information you know like on Android I can use a third-party library called leak canary simply just install it and boom I can see every memory leak that ever happens on my app and I can fix them with flutter I don't see anything that is equivalent to that so inability to find and fix memory leaks coupled with lack of information about best practices to build your apps I think this this could be potentially really bad for performance for apps on average you know like if you're an experienced developer your experience flutter developer I'm sure there's no problem for you you're not gonna leak memory you're not going to redraw the UI a whole bunch of times unnecessarily your app is probably gonna function just as good as a native app mostly pretty close anyway it'll be would probably be like as close as possible but everybody else who's not experienced which is like probably 80% of the community it can make big mistakes or make small mistakes and they can have big impacts so this will therefore get listed as a con next on my cons list is background services so those of you who are familiar with Android development or any any app development probably have some knowledge of background services there's a lot of apps that do things when the app gets into the background when the screen gets locked you know think of a media player application for example if you're playing a song you lock the screen you want that song to keep playing this is done with things known as services so as I said earlier when I was talking about plugins services are a native feature flutter can't use them by default you need to build a plugin so that flutter can use those native features so services services are actually probably the most tricky one because there's so much that you can do with services it's not like it's not like with caching for example you you know like caching is gonna be the same most of the time you're just like inserting some data into the local database it's pretty easy to build a plugin that we'll cover a wide array of use cases but with services it's hard to do because they're all going to be very different so even though you build a plugin for using services it's never going to cover 80% of use cases it's probably only going to cover like 10% of use cases so with services in particular I think this is a problem because you you're gonna have to have like a huge amount of plugins for services to cover all these different use cases unless you can build the plugins yourself which we're going to talk about later but yeah I think this is a big problem because a lot of apps use services a lot of the circumstances aren't going to be different so this is something that flutter is always going to have problems with now the last con that I'm going to talk about is platform specific problems so in my month that I spend on flutter I read a lot of different kind of I don't know I guess you would say testimonials or like things that people were saying about flutter where who actually have like apps in the App Store they were there was a lot of report well not a lot of reports but there's reports of weird things happening like behavior that shouldn't happen especially with iOS devices and lists it seems like the list can be like laggy or something like that but you know I wasn't even going to include this on the cons because I don't really have anything to like actually back this up like I don't have a person sitting beside me saying yeah I had this problem and I personally didn't have this problem but I wanted I wanted to mention it because I think it's still a data point there was a lot of people reporting issues not a lot of people there were people reporting issues especially regarding iOS phones and laggy lists but again I don't have anything to back that up so take that with a grain of salt all right so we're all finished up with the pros the cons and all the things that I think are kind of equally equivalent on both platforms native or flutter now we're going to talk about what I think flutter is really great for in terms of jobs so if you are either working as a freelancer or if you're at a job maybe your company's thinking about building a flutter app what are the jobs that are specifically really great for flutter so I think the ideal place to use flutter the first place that I'll talk about is for pretty much any size business but not like it not a not necessarily a tech business for any you know if you think of any random ma and pas store on on the street there they have they sell some product or whatever having an app built for them made out of flutter I think makes the most sense you know like if you were to ask me personally if some like like a Jim say like like a gym for weightlifting say it somebody came up to me personally who owns a gym for weightlifting and they said hey Mitch can you build me an app I would probably build it with flutter because they all they need to do is display information manage members sign-up members maybe do some payments it's pretty simple stuff there's nothing like there's no services involved probably not the camera probably not bluetooth not nothing native is really needed they're just simply managing users displaying data the second type of app that I think would be great for flutter is apps used internally by companies so many companies these days are building you know they have websites obviously for managing employees or like employee information just general stuff that employees only should know and the the public will not know so if you have an app if you want to build an app for internally for employees I think this is great too essentially this is just for displaying data maybe scheduling maybe setting up accounts for new employees any any kind of FAQ that an employee might have maybe some HR things I don't know whatever either way it's not gonna require any native features I think a flutter app would be great for this you get an iOS version you get an Android version it would be no problem to build this you'd save the the company money you'd save the company time that is it that's a good situation use flutter another one is apps for cities so I have a friend for example who works for the city of abbotsford which is where I live I think an app that uh that a city would have for just displaying information to the public may be like what the status of a park is if it's open if it's closed if like the public this public facility is open or closed where to get information about a public facility maybe like ongoing construction in the city all of these kind of things it's simply like just getting data from their servers displaying it maybe registering a cow so that you can get updates you know these kind of simple scenarios I think that's that's another one that's perfect for flutter the last one that we'll talk about is apps for universities so this is similar the same kind of thing I'm sure you get the idea now basically a university app that you know registers users maybe displays your class information what classes you have this semester your schedule stuff that's going on in the university just yeah I mean it's just early like I said you get the idea displaying basic information not really necessarily needing any native features and I'm not saying that by the way flutter can't do native features we know that it can do native features with the plugins but I just think it's its most ideal if you don't have to do those things or you you do them very very sparingly now the last thing that I'm going to talk about is where I think the kind of the biggest and best money-making opportunity is for flutter but before I talk about that I want to revisit the the plug-in point that I earlier if you don't remember I mentioned that flutter is really really dependent on plugins if you don't have a big community a large active community who's building plugins the flutter is really I would say almost doomed so I just want to revisit that and talk a little bit more about that so the way I think of flutter like I said is the most important thing is having a big community that's building these plugins if you don't have the plugins you're not gonna have bluetooth you're not gonna have camera you're not gonna have services you're not gonna have all of the native features that you need for pretty much every app and these most of these things are not developed by the flutter team they're developed by the community there are plugins that you use that interact with the native features so basically the way I think of it is if you have a big community which flutter has a big active community it has a really great community very active everything's really good if it's good it's really good like into like the overall flutter ecosystem if it's good if it's really good however if it's bad it's gonna be really bad it's almost like an exponential graph on both sides if it's good its exponentially good if it's bad its exponentially bad what is X what does bad mean it means a small community if for whatever reason the flutter community got chopped in half tomorrow you would see real serious repercussions in the coming months the reason for that is the plugins if if you don't have people building and maintaining the plugins all the time flutter would 100% die it would just burn out and die because you need those native features and not everybody can build the plugins it takes a special skill set to be able to build those plugins and so now I'm going to transition into the point that I made earlier which is what is this really unique kind of area where I think you could make a lot of money with flutter and that's building plugins if if you are a native developer who also knows iOS development like if you're an expert in iOS development and an expert in native Android development you are the ideal person in my opinion to be using flutter because you can build the plugins and these plugins I think you could charge crazy amounts of money for if you imagine a company who builds an app and they run into a problem where they need a native feature they need like some service to do some special thing if you're the guy who everybody knows to call to fix that problem to build that plugin you could pretty much charge whatever you want and not even just that like you can charge like a huge amount to make it pretty much whatever you want like I said and they're gonna pay it and you could probably charge a royalty also because you have to maintain that plugin there's always going to be new things he's going to be updates and this like this stuff probably won't even be a lot of work for you like you don't even have to maintain the actual app you don't have to work on the actual app all you have to do is make sure that your plugin works correctly so I think I think there's like a really big opportunity here for people who know native development on both sides ios and android to build these plugins if you build a reputation as like the plugin guy and a company has to call upon you like it's almost always going to be a dire situation they're not gonna call upon you and les they're like oh god we need this plugin we need to be able to do this native thing or like our app just won't work the way that we want it to so i really think that like this this is a unique opportunity for people who have expertise in both both sides of the native kind of ecosystems so i'm just gonna finish up with some closing thoughts about flutter what i think about it you know what i would I use flutter personally do I recommend learning flutter and then I want to talk about some common arguments that I hear against flutters so what what I've heard people saying on videos or in articles basically just like negative things that I've heard people say about flutter and I just want to talk about them and say kind of like I want to like debunk them I guess you would say like does that even make sense so let's actually do the common arguments first and then I'll talk about kind of my summary on flutter so the first first kind of argument that I hear against flutter here is server-side rendering and this was one this was from one of tech leads videos he said that like he said a bunch of things about flutter that didn't really make sense but the the server-side rendering one will start with that so he a server-side rendering for those of you don't know what it is it's like it's like a way to serve apps from a server so that you don't basically you don't need apps anymore that would be the outcome of server-side rendering mobile phones would not need apps anymore they would get their information from the server and be served in like HTML or some something else basically just not apps so basically this point is kind of silly because he used it as an argument against flutter which doesn't really make sense because it would also be an argument against native development because if you have server-side rendering you wouldn't have the native apps either so it's kind of like I don't know that didn't really make sense because if yes you could say that if you had server-side rendering it could replace flutter so what's the point in learning flutter but it would also replace native so this is kind of like a non argument so the second point here is actually from tech cleat also he said he mentioned security infrastructure so I actually don't really know what he's talking about here because most I could be wrong on this one by the way I'm just gonna say it maybe you guys can correct me in the comments so like most security infrastructure is gonna be on the server it the the handshaking between the app and the server is the security infrastructure so I mean this is this is what I think anyway I'm not like a hundred percent sure I know you have like you can put sha-1 certificates in to make it more secure and things like that but other than I'm sure you could do that with flutter 2 so I don't know I don't know what he was really talking about here maybe I'm missing something but as far as I know security infrastructure exists on the server like 90% of it so I don't I don't know how flutter would fall short there maybe you can correct me next is advanced and video usage apps so this is actually true you know again it comes back to the plugins the camera is is a native thing you need to build a plugin to be able to use it so if you were building an app that uses the camera and has like some kind of a our app or machine learning app or some kind of like advanced custom camera app flutter is probably not your choice or you need somebody to build a plugin to do that for your flutter app so that one I would say is true tablets iPads and smart watches so for these flutter is probably not a good choice although I personally did not try it I read lots of articles about it it seems that you can probably get it to work you know tablets smartwatches things like that like I'm sure you could get it to work but it's not ideal so just kind of keep that in mind if you're looking to build your app and you want it to work on tablets or smart watches the last is Android auto so this flutter does not work with Android auto I've never read anything that said that you could get it to work with Android auto and whatever the iOS equivalent is I'm not even sure if there is an iOS equivalent oh you know what one more one more than I'm gonna add to my list here is Kotlin multi-platform some people are saying that column multi-platform will replace flutter so I just wanted to kind of give my thoughts on that so I took a look at callin multi-platform and I have to say it is I don't want to use the word garbage but I don't see a lot of use for it like basically what it is is you can package up Kotlin code and you can execute that Kotlin code that doesn't use native features and use it for iOS so it's kind of like you can just build an iOS app with Colin that's what it looks like to me so I mean either way you're gonna have to build the iOS app and you're gonna have to build the Android app the difference is you can probably package up some of your business logic so maybe some time saving but I that is in my opinion that is not a flutter competitor all right so my my final kind of opinion or my final summary on flutter I I think I think there's still I don't think the question is flutter or native I really don't I think that flutter is great for some circumstances I still think you need both because at the end of the day like I said that comes back to the plugin issue you're always gonna have to have people building plug-ins for flutter yes flutter is great it makes great you eyes beautiful beautiful you is I love I love building you guys with flutter that is the thing I like the most by far it makes the development faster but I think that's mostly because you have all these prepackaged widgets that look really great like the ListView thing like I said that's a huge time-saver there's a lot of time savers and then of course you get to apps out of it you get the iOS add it mate app and you get the Android app so yeah I think that like if you can get away with using the flutter app like I said all of those other circumstances that I mentioned where you don't need to use like a lot of native features flutter makes sense like I said if a small business walked up to me or even a big business walked up to me and was like hey Mitch we need you to build an app for like our employees or you me need to build an app that like just can like register users and display data and stuff I would I would use flutter because it's it's faster it's gonna save them money it's gonna save me time and it's it's gonna probably be easier to maintain but pretty much if you ever have to use like any native features like anything to do with services especially I would almost definitely not build the flutter app and also to like something I would also say is I spent a month on flutter and I feel I feel pretty competent like I feel like I could pretty much build what I needed to mostly other than like really advanced things which I wouldn't build with flutter anyway even if I was like an advanced flutter developer so given that I spent like a month and I feel competent I probably could have spent a month on iOS development and felt also equally competent so at that point it's like if if you're already a native Android developer and you're thinking about flutter you really have to consider like why wouldn't you just go spend a month or two on iOS and learn iOS or if you're an iOS developer especially because you don't have to go and buy a special computer if you're an iOS developer why wouldn't you just go learn native Android I'm sure like the the architectures the patterns the the concepts are always similar there's similarities you'll probably pick it up pretty quick so youyou got to think like would I go learn flutter or what I just go learn the other native language so at the end of the day I don't think there's a direct answer you know flutter verse nae which one is better I think it's circumstantial like everything else flutter is great for some circumstances native is always going to be like the quote-unquote best no matter what because it's native to the platform you can't you cannot beat the performance and you cannot beat how it interacts with the native features cuz that that's what it's designed to do so I I like flutter I enjoyed my time with it but for the foreseeable future I will not be making flutter videos I will be sticking to native and after spending a month on flutter I'm seriously considering learning iOS development because of what I just said I you know like I feel like I'm pretty confident in flutter in a month why wouldn't I go learn iOS in like a month and then I can see both sides of the ecosystem so that's gonna be it for this video do not forget that flutters for babies I don't want to let that meme die that is a beautiful meme hashtag flutters for babies if you liked the video don't forget to leave a like please YouTube does not recommend my videos unless you tell it that it's a good video please I spent basically a month on this just researching like the pros and the cons of figuring it out you know what flutter was all about the least you can do is go down there and click that like button and maybe even share this with one of your friends leave a comment some kind of engagement give me some kind of engagement I would really appreciate it thanks for watching and I will see you in the next one you
Info
Channel: CodingWithMitch
Views: 77,233
Rating: 4.8972044 out of 5
Keywords: codingwithmitch podcast, flutter vs react native, react native vs flutter, is flutter worth learning, should I learn flutter, flutter or android studio, flutter or android native, flutter or kotlin, flutter or kotlin native, is flutter worth learning in 2020, native vs flutter, flutter vs java android, flutter vs android studio, why flutter is garbage, flutter is for babies, is flutter good for beginners
Id: xEA9vw8t4Ho
Channel Id: undefined
Length: 41min 50sec (2510 seconds)
Published: Mon Jun 29 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.