Transcript for:
Analyzing Flutter's Value in 2024

is flutter dead already the answer is no well that's a real website that someone created and it actually says it out pretty loud and clear but is it worth learning in 2024 let's try to find [Music] out so there are a few parameters which are important to really devise the worthiness of a framework used to develop softwares job prospects funding and stakeholders learning curve popularity in developer ecosystem then the user experience aspects which are mostly like performance or the software size for each of these parameters we will see how flutter stands up against its competitors like react native cotland multiplatform net mui and also the native development so quickly why does flter or any crossplatform technology exists so very short version of the story is uh you have multiple operating systems they provide different UI toolkits to uh paint pixels on the screen different ways of Doing Network iio dis iio and interacting with these sensors now one way is for you as an app developer to build app for each of these operating systems or you can use a cross platform technology which gives you just one SDK in one language and abstracts out like the sdks for all these operating systems uh so it's kind of a no-brainer that's what I think anyway let's come to flutter uh so it's an open source UI toolkit primarily funded by Google if you are interested and like having zoomed out view of how it works behind the scenes what's happening so I created this video a few days back feel free to take a look at it okay let's talk about the first and the most important one the job prospects well if we take a look at the top paying Tech Technologies in the last four or 5 years as per the stack Overflow uh developer survey let's see the data from 2019 it's very fascinating that the dot which is the primary language used forpit is not even there in the list at the bottom of the list we have Java for some reason JavaScript is somewhere on the middle uh we have cotlin which is above JavaScript how fascinating and towards the top we have rust and the go languages which are like the most prevalent well then 2 years after uh if you see 2021 that is where dot comes into the picture it is still at the bottom of the chart while the leaders still being U like go and rust and then towards 2023 the same Trend continues D is like still at the bottom so I'm not sure what to make out of this data Maybe it may be a case that the fter is being used mostly by the startups and mostly by maybe early stage Engineers which are not paid that much maybe that's the reason this data is kind of skewed maybe it means that the flutter developers are not paid well okay now if you see the number of openings for fter on Lon uh in the US we have 834 just three digigit in India we have 15 like 1.5k for react native in the US we have 5.6k and India we have 7.7k roughly the same Trend uh for Android native in the US we have 30,000 and in India we have 15,000 but it's very fascinating that the trend here is reversed that the openings in the US are even more maybe it means that the uh India is cloud heavy no and same trend for I us as well in the US there are uh 10.7k and in India it's 5.1k so net Mai ma UI in the US uh it has 474 in India just two digits 16 similarly for zarine which is anyway dying in the US it's 20 in India it's 15 so which probably means that as far as the job prospects are concerned maybe furter is uh not there yet okay let's talk about the funding and the stakeholders so how well a software project is funded kind of depends on the companies that are backing it which would take a look in a moment and regardless of that like another aspect of the funding is how much of a bang the project is actually making in the developer community so let's take a look if you see uh Twitter followers flutter has around 259k react native has 201k uh then KMP doesn't have a Twitter page uh if you see the cottony language it has around 160k followers zarine has around 67k uh and on the interesting side Android developers uh Twitter handle has around 2.2 million wow um over to the Reddit flutter has around 134k react native is 129k KMP doesn't have like a Reddit page C language has 83k and Mai has 6.4k uh stag overflow questions flutter has 178k react native has 137k KMP has 1.7k and Mai has 7K GitHub issues well flutter interestingly it has like 12.5k open issues 83k were closed on the react native uh they have just 609 open and 25 K closed and in Mai uh they have 3.4k open and 9.2k closed well this one is very interesting it kind of shows that hey maybe flutter has a lot of open issues but tons of them have been closed as well this probably means that the developers are really engaged in flutter like not just the ones who created flutter but the ones who are using it as well and then get up Stars so flutter has 164k just the flutter like the core Library uh but there is this flutter engine as well which has like separate Stars uh react has around 117k again KMP doesn't have just one entry on GitHub it was really hard but the CT language has 48.8k and Mai has 21.9k stars well one thing which is very apparent is flutter is the one where the community is really engaged and it's very surprising that flutter actually releas 2 years after react native but still has the most engagement as far as the developers are concerned now very very fun thing is that this doesn't align with the data that we saw earlier I mean uh developers are not being paid but it looks like that they are still most interested in flutter which probably means that it's quite worth learning flutter let's talk about the primary stakeholders over here so flut is built by Google so Google is like the primary uh stakeholder here for react native we have Facebook for KMP it's again Google and a shared responsibility with jet brains for Mai we have Microsoft by the way stakeholders are also kind of the companies which are heavily invested into flutter or in other words which are using fter we have got great examples so apps like Google pay Google ads YouTube create Google one Alibaba and tensent use flutter for a lot of their apps eBay uses flutter for one of their like primary apps eBay Motors then Groupon dream 11 zeras kite and coin whatnot and the list is just uh like endless so all of this actually enforces that ver is not going to go away anytime soon if anything it's on the rising Trend with that let's come to the popularity and the developer ecosystem let's see Google Trends and uh see the interest in these Frameworks over time well the only reliable thing I could figure out was react native and futter and the net mplatform so it was actually in 2020 uh when the tables turned and F started getting more hits than the react native and the trend is continuing as is then let's see the popularity based on the stack overflows developer survey so flut is like where 3.4% of the people have interest react native is around 10.5% then 2 years after we see that fter is catching up fter is now a warpping 13.55% and react native is 14.51% and then two years after in 2023 we see that futter has actually surpassed react native fter is now at a 9.12% where whereas react native is 8.43% which means that you see the trend so it's definitely worth learning it in 2024 as well let's also spend some time seeing the popularity of the languages involved so in 2019 we see that the dart is not even in this uh in this picture JavaScript is leading Java is also like one of the top languages leading here then 2 years after we see that the dot is now somewhere in the picture somewhere in the middle 6. 0 2% and JavaScript is still like it's on the top then 2 years after we see that D is still like kind of same uh and JavaScript is still leading so Java goang cotl they are still like kind of in the middle so what what it kind of means is you start learning react native it will actually expand your skills because you'll end up learning JavaScript which will be directly usable for uh for web development and in backend development using nodejs so by doing react native you will also end up learning something about CSS I not exactly which will also help you uh in web development a developer ecosystem is also uh kind of fueled by the packages in the libraries that are available for a technology in the case of fed we have around 46,000 packages available for react native I couldn't actually figure out how to get the number but if you see npm it has around 1.8 million packages in Rising and even if let's say 10 or 20% are uh like uh can be used on react native they are still like a lot kind of means maybe it's little more mature than Pho KMP now KMP is nuanced because all the native packages are interoperable and you can call them directly from the code so like whatever packages are available natively on Android and iOS all of them are like callable from KMP but yeah uh there are like not a lot of uh cotland multiplatform modules that are available as of today there's a very nice giup that someone created that lists out a few libraries that are available I'll add a link in the descript description let's talk about the user experience and the first thing we have is app size so flutter works by shipping three things first is the uh flutter engine which is specific to the platform and brings the core functionality of flutter it also contains the skia graphics uh library and impeller render which is responsible for rendering the pixels then we have the dot runtime which is the core dot language stuff like the standard library and whatnot which means that it will add extra byes to your app now KMP uh for a case where it's using let's say compose multiplatform as the UI toolkit so similar to the flutter CM ships like a graphics uh library for the custom rendering now the unique thing here is that it doesn't have any engine or a runtime the cotlin code is directly converted to JS for the web Java on Android uh using the direct compilation to bite code and native code on iOS using cotl nid now what this problem is is that the app size that you will get over here will be uh like definitely smaller than that you will uh get in the flutter then react native okay so since the entire code is Javascript it ships uh a lightweight JS engine along with the code because that is required to run the JavaScript code well the unique thing about react native is that it doesn't use a special rendering in other words it it it doesn't use custom drawing on the canvas it uses native elements uh for the rending of the UI like if you have a view in the react native it will be mapped to a view in Android and a UI view in iOS and for Mai uh I think we don't even need to go into the details uh maybe it's not worth it okay H isn't it crazy how these Technologies solve a similar problem but taking uh like slightly different or maybe not slightly but different parts but the reality these days is that the app size really doesn't even matter uh because the data is really cheap in most of the countries but if that changes if the data becomes costly things will change okay performance so a native app gives you the best performance hands down if you talk about KMP it can be used in a way such that the only the business logic is shared but all the platforms use their own native uis and in that case my friends performance is at par with the native well you remember coton transpires natively to all the platforms but react native it react native suffers because of JS Bridge any action that happens on the UI layer is handled by the JS code which which means that it needs to go through that bridge which adds latency but it's not noticeable so moreover JS being dynamically typed language needs interpretation during runtime further so since D code is compiled to Native components it's really fast and performing it still doesn't beat KMP and uh Native though you should wait for the performance uh Benchmark which I will do in a separate video well at last what I'd say is if you have all the time in the world just figure it out for yourself download all the primary apps using these Frameworks and just spend some time and see how the user perceived performance looks like and I know for a fact fter won't disappoint you and let's talk about learning curve so the learning curve is mostly relative and it just varies from person to person depending on the learning ability and their current knowledge well first and foremost if you know even a single composable UI Frameworks you can get started on any of these it'll be kind of okay if we talk about flutter for Java developers this will be the simplest uh because the language tart is very simple it's very like straightforward and very similar to Java if you talk about KMP if you are an Android developer this is the easiest for you I'm assuming that you already know cotlin uh and km is all cotland so you will keep using the same language and you you'll have the code running on the IOS as well the chat on the cake would be the compose multiplatform if you know jetpack compose you will be writing iOS apps in almost no time another thing to note is that you you actually don't need to learn the composed multiplatform and you can write the UI natively like whatever you using on IOS and Android and build all the like all the other logic using KMP which means it'll remain common across the platforms so if you don't have any experience with a composable UI framework KMP is probably the easiest in that sense then react native uh let me tell you one thing at some point in your lifetime you will definitely write JavaScript or typescript which probably means that writing a react native app would be simplest assuming that you already no JavaScript and at last I'd also like to quickly mention about the developer tooling flutter has done an amazing job of providing some top-of-the-line tooling around debugging Network calls U UI hierarchy performance memory and whatnot I'm pretty sure I covered most of it but if you think I if I miss something very obvious let me know in the comment section A lot of fun videos coming ahead around the same topic and maybe a few blog posts as well stay tuned and thanks for watching I'll see you in the next one bye [Music] n [Music]