[00:00] Hello guys! For a while I've been teasing on social media and on this channel that I'm working on this experiment project, building three different mobile applications with the same functionality with three different tech stacks. Native PHP, React Native and Flutter using the same Laravel API on the back end. [00:16] And finally, this is out as a course on Laravel Daily, and in this video on YouTube, I will publish the main overview of the ecosystem for free as a free video from this course. So the course itself is 55 minutes. This is how I shoot courses these days. [00:32] Max one hour because no one has more time to watch videos. So in eight videos, I will help you choose. If you're a liveable developer, PHP developer and haven't built mobile apps in your career, you have choices. [00:45] And for a month or so, I've been experimenting, doing some research, asking AI, then experimenting more. And this is what I ended up with. I will not pretend to be a mobile developer suddenly. I'm not. But this is what I found out from my research and my experiments in this video. [01:01] If I'm wrong somewhere or missed some details, then let's discuss in the comments below. So, the free video about mobile ecosystem overview is still on YouTube, and the link to the full course will be in the description below. Let's dive into the video. [01:14] Now, on screen, you can see three mobile applications in three Android emulators built with three different tech stack. Here we have native PHP mobile app. Here we have React Native and on the right Flutter. [01:28] And they all use the same Laravel backend API, just different frontends. You can add a habit here, for example, something something, and save the data, and then mark it as done, and then calculate the streak of habits. [01:46] This is a very simple habit tracker. So let me quickly explain in this video the differences, the core differences between those technologies, what may affect your decision to choose each of them to create your own [02:00] mobile application as a Laravel developer. So I'm thinking the audience for this video is a typical Laravel developer, the back-ender, the full-stack web developer with the need to start building your own mobile applications. [02:15] So, this is kind of the slide presentation of ecosystem of mobile landscape. I asked Cloud Coast to prepare that before this course in the video and I've chosen those three options down below in this course. [02:29] I will show them in much more detail later in the future videos but for now the overview What are other options And this is kind of the spectrum of two different extremes First extreme you don learn any new platforms you use the skills that you already have [02:48] and the closest to that is PWA, Progressive Web Apps. But there are limitations to that, especially on iOS, it got better in recent years and months, but basically the user experience of [03:01] installing those apps is totally not the same. So you cannot find progressive web apps on app stores in the same way. So users need to kind of understand on their own how to install the [03:14] mobile application PWA from the website. So this is a viable option, but can be used only for certain types of application where app store visibility is not that important. Also almost [03:28] needs to that list is Capacitor for Vue.js developers, but I just found in my research it's not that popular if you want to find a job, for example, as a mobile developer [03:40] to build applications. On the market, it's quite a niche technical solution that does work, so if you are a Vue.js developer specifically, you may take a look at that as an option. Then, the Deep Dive Zone, those three, and I will get to those in a minute, but on the other side [03:57] the spectrum, you will want to use native platforms. So if you need an iOS and an Android application, you may use Swift for iOS and Kotlin for Android to build two separate mobile applications. [04:12] This is as native as you can get to have access to native components, but then the downside to that is that you need to learn two platforms, two languages, and support them separately, [04:25] two different repositories, two different codebases, and especially for Laravel PHP backend web developers, two new technologies, I guess it's an overkill. So, that's why kind of [04:37] the sweet spot are three options, three frameworks, which used to be actually two even a year ago. I would shoot a course, and I did shoot a course earlier about React Native and Flutter with [04:50] but in the last year native PHP grew much stronger, became much more powerful, also became free to start with, so it made the same list of top three I want to show in this course. [05:05] And if we continue talking about the prerequisite and technologies to learn, so for React Native it native for frontend web developers which is TypeScript and then Expo framework on top So if you are familiar with TypeScript and JavaScript then that will feel native [05:25] And React, of course. It's obviously in the name React.js. Then Flutter is a separate new ecosystem. Dart is the language. And then Flutter is on top of that as a framework, [05:38] which you would use probably only for Flutter. So in case of React and TypeScript, You may use the same language for web and mobile with slight details, and for Flutter and Dart, it's just for that ecosystem. [05:53] And then native PHP, if you are a Laravel developer, then basically you don't need to learn anything. You build your mobile app with Laravel. The front-end may be LiveWire or it may be Vue.js, for example, [06:06] for dynamic behavior, and then you compile, build your application for Android and iOS. And also one of the criteria I mentioned already in this video is the amount of jobs, the opportunities. So let's search through Upwork. [06:19] It's not, of course, the best source of jobs, but it will show relatively the numbers of popularity of the demand on the market. So Flutter in this case. So you can see 61 entry-level job, 1.5 thousand intermediate, an expert 670. [06:37] is actually not the accurate number because it includes very old jobs that are not even active anymore but you get the idea the rough estimate if we go for React-native then the numbers are bigger so two thousand then a thousand here so [06:54] probably twice as much and of course if we go for native PHP you will almost not find the jobs at the moment or have one that's even actually surprising so in [07:06] terms of job opportunities, it's still very, very early days. So, as much as I like native PHP, and I included that in the scores as a technical solution, for now you can build the apps with [07:18] native PHP and publish them on app stores, but you shouldn't expect to get jobs specifically with that technology. But to compare Capacitor, for example, the one that I mentioned earlier, it's, as you can see, present here, but with much, much lower numbers. And finally, let's take a look [07:35] the code very briefly. So, this is the package json of react-native application. So, this should look familiar for javascript and react developers. A lot of dependencies [07:47] and export framework is a big part of that and then react under the hood. And then you write typescript code So this is an example file of react typescript So habit role typescript import then export and then it should have yep the components here inside Again it should look very familiar to TypeScript [08:08] developers, at least structurally. Now, brief take a look at Flutter. So, this is the main.file.language, and then you will work a lot with so-called widgets. So, almost everything will be a widget here. [08:24] So this is main. and kind of almost main is app. with another widget actually. And the code will be more like configuration of widgets with like theme and other configuration [08:37] options. And this is pubspec.yaml file with mentioning a lot of dependencies. So it's not package.json or composer.json, but also quite a few dependencies. But as I mentioned flutter [08:52] and dot is kind of a separate ecosystem world, not really similar to React Native or Laravel or PHP. And then finally native PHP application, which is in fact Laravel application. So you can see [09:04] this Laravel framework dependencies, native PHP mobile and also Livewire, and we have routes web here with route get and all of those are Livewire components. So today's screen is a [09:16] Livewire 4 component with properties and all the code is familiar to you as Laravel and Livewire developer. And then you render the blade view, typical blade view that contains tailwind classes [09:31] and other Livewire components to include. So basically you're at home with full stack web development with Livewire in this case, but maybe also Vue.js. And this is packaged as an application [09:45] to transform that into Android or iOS build. So this is the overview of the ecosystem, why I chose these three, and what is briefly under the hood and prerequisites. [09:58] So I wanted to explain the why behind my decision to choose three, and in the next videos, we will dive deeper into all of them. So yeah, this is the end of free video here on YouTube, the ecosystem overview, which I think is still helpful, [10:12] even if you don't watch the full course. But if you want to dive deeper, the next lesson will be about comparing the native capabilities, UI, how it works with databases, all three tech stacks, and with remote Laravel API and [10:24] stuff like that. So the link to the full course will be in the description below. And by purchasing the course, you're also supporting this YouTube channel to continue with free videos on Laravel and its ecosystem. So I appreciate your support and see you guys in other videos.