CK: So, maybe one of the bigger questions
that is very popular is, "Is this going to kill React Native?" Scotty: Kill. Andrew: Kill. Scotty: Hi. Welcome to Devs on a Couch. CK: Today we're gonna look at Flutter and
React Native and talk about our experiences with them and see which frameworks are gonna be great
to use in 2019. If you're new here, we are Crema. We help companies all over the country build,
design, and develop products and the teams that build them. Scotty: What are we doin', CK? CK: We're gonna talk about Flutter and I
guess the first thing we want to say, our kind of intro is: Who made it? What is it? And why is it good? Scotty: Who made it? I know that one. Google made it. Andrew: Done! CK: So it's more it's more than just a
mobile framework like React Native. What differentiates it from from React Native? Scotty: Well I think right now it's mostly for
mobile solutions but Google is also trying to make it work on the desktop and the web. CK: Very cool and our expertise with it so
far? I know you guys have dug into this a little more than I have. Andrew: Yeah. Not as much. I think we're all kind of newbies at it at the end of the day. I've done some Udemy stuff, done the code labs,
two or three of them. But yeah we're still figuring out as we go, I
think. Scotty: Yeah, same. I've done two or three little
minor apps. I did the token Taylor Swift up of course. And yeah a Udemy course. CK: And your first impressions coming from
React Native? Andrew: You can go. Scotty: Yeah I mean so so far it's been
extremely stable. I think that's one of my favorite things about it. Andrew: I think we differ a little bit in the
stability aspect of it just because I come from a purely web background and using React and then
getting into React Native was really nice just because I could utilize all the same things but
then Flutter is a lot more of a native experience and so a lot of the environment stuff and having
to dig into that native code has been a little bit more challenging for me. A little bit more spin up time. Scotty: Yeah, I think one of the biggest things
that I noticed upfront is just the sheer amount of widgets that are available. And so in and React Native you pretty much have to
roll your own everything or go to a third party. So like your navigation. Well that's the big one. The navigation. But I mean, like, there's a widget for just about
everything. CK: And everything is a widget right? [Everyone Agreeing] So, in what we've played around with so far we've
noticed some very sharp differences between Flutter and React Native. We've also noticed that there are a lot of
similarities where they're just calling something slightly different like widgets instead of
components and things like that. But then there are some things that are maybe taking on a
different flavor entirely like the BLoC pattern. Do you guys want to talk about that a little bit? Scotty: I don't. Andrew: I have delved into it a little bit. It is really interesting. We've talked about it some. It reminds me a lot of redux just in that you're
kind of reaching out with an action type thing and then reaching into some type of store where
everything is kind of handled. The cool thing about the BLoC Pattern that I've noticed is it seems like to me, and I don't know how true or
not true this is, but as I've used it you do a lot more logic in there than like in your block than
you would within like Redux. I mean I know -- Scotty: Like in business logic? Andrew: Yeah. So I mean you've got your reducers and everything
where you don't know I forget it's like a widget I don't know you something like that. Yeah you do what it's called, basically. But that was a really interesting thing to me is
everything happens in the BLoC that's related to the BLoC. CK: So if we were to rapid fire like why
would someone want to pick up Flutter and start messing with it? We've talked about the error handling which is a
huge deal. You know like state full hot reloading and getting
those errors in line, like at the component level. Yeah. I mean that's a whole other thing. Andrew: I mean just using DART again I come
from the web and JavaScript so not a strongly typed language by any means and so getting into
that there's a lot more just native area handling risk because of the language you're using. But the thing that I'm almost most excited about
is just the animations you get out of the box. So like when you something's not valid it gives
this little tiny jiggle which is so awesome it's like it's like haptic feedback for the eyes. Scotty: Yeah.
CK: Yeah. Wow, we can look at that. Scotty: They can steal that, TM (Trademark) it. Andrew: Yeah. CK: You mentioned Flair, which is a really cool thing that
they're doing with SVG support and so you're able to take SVG animations and use them natively
within the app and then also extend that. You can even use that in other platforms if you create
that animation export that to web or.. Scotty: Yeah, so Flair are 2D animations. Basically you can include it. It's a file in your app. You would use it like an
image or anything else but you're going to have these different states and some of the examples
we've seen are extremely cool. CK: Mhm Scotty: This one this week that I shared out
was that was it a bear? CK: Yeah. Scotty: But a bear on a log in form. And so, as
you're typing, you can send a message to that to play the, you know, this animation to watch as the
user is typing. And then if there is an error can be like, "Oh,
no!" So, it's just really cool and it all happens at
what Andrew was saying, 60 frames per second. And so it's like extremely smooth and it's so
cool. CK: Yeah. Andrew: Yeah. CK: And then you've got the native
navigation component you're not using a third party for that. There's thinking about writing and in cross
platform right now it's it's on the mobile platforms It's also quickly being courted toward desktop and
maybe even web. Andrew: Yeah, that would be crazy. That would be crazy. Just if you could do everything in one code base
you can be one of the more powerful platforms out there. CK: Yeah. Scotty: And I know we were talking about this
earlier, but that was one of the things that stood out with React Native. Because the promise is,
with React Native, that it's learn once and write everywhere. But it's just not the case. I mean the the difference between React Web and
React Native are.. CK: every widening. Scotty: Yeah. And honestly like every time I have to upgrade a
React Native project I die a little bit on the inside. CK: So that's a huge deal. It's like, I mean to upgrade from Flutter version
to version is just. Scotty: Flutter update. CK: Yeah and it's done. Scotty: And so far, I mean, knock on wood... CK: Right. Scotty: We don't have any wood. But yeah. But yeah, so far it's just "Flutter update" and
everything just continues to work. So yeah, the overall experience has been extremely
nice so far. I really love it. CK: So maybe one of the bigger questions
that is very popular is, "Is this going to kill React Native?" Scotty: Kill. Andrew: Kill. Scotty: Yeah. CK: I mean literally kill React Native? Scotty: Is that -- is that a legit question? CK: I think it's it's something that people
are asking but as a dev, I think we always look at that kind of question and say, "Well no, you're not going to -- One framework
isn't gonna necessarily kill another one." Andrew: Well... CK: It's "Whats the use case?" Andrew: Yes. CK: What's the community adoption and
support? Andrew: So I think I mean think about when
React and React Native came out everybody was asking the same thing about Angular. "Is this going to kill Angular?" And I mean in
their there's something like 500,000 apps still in the App Store using Angular. So it's not going anywhere. And there's still gonna be a need for it. Scotty: I mean, PHP is still here. It's
probably not gonna kill React. Or React Native. CK: Though, I mean it is gaining support
rather quickly which is nice to see. And it's backed by Google with a serious commitment to this
stuff. Andrew: I mean we've talked about before it's
being backed by Google does that automatically give you any kind of concrete -- Scotty: It doesn't necessarily mean success,
that's for sure. CK: So based on what we know about Flutter
right now do we see this becoming more popular than React Native in the future? Andrew: I mean if they get the desktop
component and the web component down then yes I would say it would look that way. But we'll have to see. Scotty: Yeah I mean there's definitely like
that new new kid at school thing going on right now, so everybody's talking about it. Everyone's using it. I've got a long term developer buddy that he said
that they're actually switching and he's been hardcore like Native only and they're switching
all of their development over to Flutter this year. That to me (like whenever I see what the community
is saying about it and other developers that have been resistant to cross platform development
before.) I mean that speaks volumes. Like I think Google's really onto something and, you
know, just our experience with like the animations all the widgets and everything else it's it's very
very intriguing. So much so that. We're writing. Andrew is actually writing an app and. Andrew: Writing, getting there. We've started the development. CK: And I think it'll be it's a good
discussion for the future too of saying what is the difference between a write once, use it
everywhere versus having features you don't necessarily need and parody across all platforms
you know and so but having it all in one not like code base in one language with the same syntax
like React VS React Native, you know, is very compelling. That's really cool. So I think that's about all we have for right now. We get need some time to dig into the platform
further and learn. Which we're excited to do in 2019. And also hoping
to hear from any of you who are using Flutter or digging into it, getting your feet wet and digging
in deeper and seeing if you can use it in more and more exciting ways. Andrew: So stay tuned for more from Crema in
development, design. Hit the Like button, subscribe, keep up to date with what's going on. We'll talk to you later. CK: See ya! Andrew: Bye! Scotty: Bye