Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:02,300 --> 00:00:07,670
We're nearing the end of this module and you can skip this video here
2
00:00:07,670 --> 00:00:11,630
if React Native and Ionic doesn't tell you anything.
3
00:00:11,660 --> 00:00:19,530
These are simply alternatives to using Flutter, at least in a certain way. Flutter is not the only tool,
4
00:00:19,550 --> 00:00:27,050
the only approach that allows you to build iOS and Android apps with one programming language and with
5
00:00:27,050 --> 00:00:29,210
one project codebase.
6
00:00:29,210 --> 00:00:31,090
There are other solutions too,
7
00:00:31,180 --> 00:00:36,920
also besides React Native and Ionic, there for example is also Native Script and so on but React Native
8
00:00:36,920 --> 00:00:40,450
and Ionic are probably the biggest competitors to Flutter
9
00:00:40,670 --> 00:00:45,070
and I just want to show some examples on where Flutter differs from them.
10
00:00:45,860 --> 00:00:50,530
So why would you use Flutter and not React Native or Ionic?
11
00:00:50,540 --> 00:00:56,720
Now let's see how each of these approaches works. Flutter uses Dart and the Flutter framework and
12
00:00:56,720 --> 00:01:02,180
Dart is a programming language developed by Google. React Native on other hand uses Javascript and the
13
00:01:02,180 --> 00:01:08,990
React library and Ionic uses just Javascript and any or no framework at all that you want
14
00:01:08,990 --> 00:01:13,700
and by the way, I also do have courses on React Native and Ionic in case you want to have a look at that.
15
00:01:13,760 --> 00:01:19,100
Now the result of Flutter is that you get compiled native apps, so you get real native apps compiled for
16
00:01:19,100 --> 00:01:25,760
the target platforms. For React Native, that's pretty much the same but I wrote partly compiled here because
17
00:01:25,760 --> 00:01:31,820
the apps are compiled to native apps but there also are parts in your code, in your Javascript code
18
00:01:31,820 --> 00:01:37,970
which is actually not compiled but which is basically enclosed in the native app and runs as Javascript
19
00:01:38,030 --> 00:01:42,550
in the native app, instead of as compiled code and that's different for Flutter, there
20
00:01:42,620 --> 00:01:45,370
all the code is compiled and runs as native machine code
21
00:01:45,380 --> 00:01:48,200
therefore and for Ionic, nothing is compiled.
22
00:01:48,200 --> 00:01:53,720
There you actually have a web app which is wrapped inside of a native app, so you still get a native
23
00:01:53,720 --> 00:01:58,740
app which you can publish to the app stores but it's just a wrapper around your web app.
24
00:01:58,760 --> 00:02:03,320
Now the advantage of this Ionic approach is that you can use normal web technologies and if you're a
25
00:02:03,320 --> 00:02:09,800
web developer, it's particularly easy to create such apps and you can use all your normal web development
26
00:02:09,800 --> 00:02:18,310
skills to build cross-platform apps there. A downside of this wrapped approach of course could be performance.
27
00:02:18,310 --> 00:02:24,310
Now for Flutter, it's also important to understand that we don't compile to iOS or Android UI components
28
00:02:24,370 --> 00:02:29,590
but that Flutter gives you an app that controls the entire screen and every pixel on it. For React
29
00:02:29,590 --> 00:02:30,520
Native, that's different,
30
00:02:30,520 --> 00:02:36,970
there you do compile to iOS and Android UI components, so the parts of the React Native app that are compiled
31
00:02:37,360 --> 00:02:39,340
is in the end the user interface and there
32
00:02:39,340 --> 00:02:44,680
for example if you render a button, it is compiled to the native iOS button for iOS and to the native
33
00:02:44,740 --> 00:02:50,800
Android button for Android, which means you have less customization possibilities because for example
34
00:02:50,800 --> 00:02:57,010
if you can't add a drop shadow to the native iOS button, you can't add it to the React Native button because
35
00:02:57,040 --> 00:03:02,330
that's compiled to the iOS button. For Flutter, since it controls every pixel on its own,
36
00:03:02,380 --> 00:03:08,860
you can style it in whichever way you want or Flutter lets you at least because the native button restrictions
37
00:03:09,040 --> 00:03:10,670
don't matter to Flutter.
38
00:03:10,840 --> 00:03:16,870
Now for Ionic, there is no compilation to Native equivalence, instead you have a web app, so you can style
39
00:03:16,870 --> 00:03:19,530
a button as you could style it in any web app,
40
00:03:19,540 --> 00:03:26,400
it's not compiled to a native button. Now with Flutter, you can build cross-platform apps, mobile apps and
41
00:03:26,400 --> 00:03:31,530
actually even web apps and desktop apps, though as long as that's in very early stages, it will not be
42
00:03:31,530 --> 00:03:32,370
part of the course,
43
00:03:32,370 --> 00:03:39,750
I do cover it once it is more stable though. For React Native, it's pretty much only about mobile apps,
44
00:03:39,810 --> 00:03:45,390
though there is a project, an unofficial project if you will, which allows you to use your React Native
45
00:03:45,390 --> 00:03:45,580
app
46
00:03:45,590 --> 00:03:52,020
also to get a web app as a result. For Ionic, you by default since you build a web app that's wrapped
47
00:03:52,020 --> 00:03:55,350
by a native app, you by default have a web app as well, right?
48
00:03:55,430 --> 00:03:58,590
You also have full cross-platform support,
49
00:03:58,620 --> 00:04:01,310
you can get a mobile app with this wrapped approach,
50
00:04:01,380 --> 00:04:07,670
you have a web app anyways and you can also build a desktop app by wrapping it around this web app
51
00:04:07,680 --> 00:04:14,620
so to say, with a tool named Electron. Now who's working on these projects? Flutter is developed by Google,
52
00:04:14,690 --> 00:04:20,970
React Native is developed by Facebook and Ionic is developed by a company which is called Ionic and therefore,
53
00:04:20,990 --> 00:04:27,280
they all have big companies backing them, especially React Native and Flutter of course but also the
54
00:04:27,280 --> 00:04:32,980
Ionic company is earning its money with the Ionic framework and therefore regarding the future, all three
55
00:04:33,160 --> 00:04:37,350
should be very stable and under active development for a long time,
56
00:04:37,480 --> 00:04:41,940
so that shouldn't influence your choice. What should influence your choice then?
57
00:04:41,980 --> 00:04:47,980
Well for Flutter, there you have the great advantage that you have real native apps, so you get great
58
00:04:47,980 --> 00:04:48,760
performance,
59
00:04:48,790 --> 00:04:54,660
no web view wrapped app which automatically has a bit worse performance because of that wrapping,
60
00:04:54,670 --> 00:05:00,240
instead you have meshing code which is running and that gives you a great performance and because Flutter
61
00:05:00,240 --> 00:05:05,730
controls every pixel on the screen, you also have a high flexibility, you have a lot of control over your
62
00:05:05,730 --> 00:05:06,230
app.
63
00:05:06,240 --> 00:05:12,810
Now some people also might not like this approach of not having the platform primitives but instead
64
00:05:12,810 --> 00:05:18,270
have Flutter control everything because you could argue that it's therefore harder to get the default
65
00:05:18,330 --> 00:05:23,730
Android and iOS look and that it requires a bit more work from your side to get the look
66
00:05:23,880 --> 00:05:25,520
but that's up to you to decide,
67
00:05:25,530 --> 00:05:32,340
I think the higher customization possibilities actually aren't too bad and are a nice advantage but
68
00:05:32,340 --> 00:05:35,450
in the end, that's of course up to your personal preference.
69
00:05:35,640 --> 00:05:40,260
React Native and Ionic are certainly nice alternatives and that's why I do have courses in all of them
70
00:05:40,720 --> 00:05:42,030
and attached to this lecture,
71
00:05:42,030 --> 00:05:47,340
you actually find a link to an article and a video which I created where I compare these alternatives
72
00:05:47,730 --> 00:05:53,910
and dig a bit deeper into the details of these approaches and give you a more detailed comparison. As
73
00:05:53,910 --> 00:05:55,010
a first summary here,
74
00:05:55,020 --> 00:06:00,970
Flutter is a great choice of course because you have real compiled apps and with every pixel controlled
75
00:06:00,970 --> 00:06:04,530
by Flutter, you have a lot of flexibility and high performance.
8928
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.