Тёмный

Build reactive mobile apps with Flutter (Google I/O '18) 

Google for Developers
Подписаться 2,4 млн
Просмотров 195 тыс.
50% 1

Do you over-react when you hear Streams, Observables, Redux, Flux? Don't. One of the advantages of Flutter is that it uses reactive views, which you can take to the next level by also applying reactive principles to your app’s data model. Through practical demonstration and live coding, learn patterns for crafting elegant and intuitive code and architecting maintainable apps.
Rate this session by signing-in on the I/O website here → goo.gl/aMJQE3
See all the sessions from Google I/O '18 → goo.gl/q1Tr8x
Watch more Android sessions from I/O '18 → goo.gl/R9L42F
Watch more Chrome sessions from I/O '18 → goo.gl/5fgXhX
Watch more Firebase sessions from I/O '18 → goo.gl/TQEeBQ
Watch more Google Cloud Platform from I/O '18 → goo.gl/qw2mR1
Watch more TensorFlow sessions from I/O '18 → goo.gl/GaAnBR
Subscribe to the Google Developers channel → goo.gl/mQyv5L
#io18 event: Google I/O 2018; re_ty: Publish; product: Flutter - General; fullname: Filip Hracek, Matt Sulliivan; event: Google I/O 2018;

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 190   
@lukejagodzinski
@lukejagodzinski 5 лет назад
I'm really impressed with Flutter and what it can do but imho state management api is not easy to understand. Event speakers had problem explaining all the details of streams, sinks, controllers. I come from React development world and when I compare APIs, flutter's API looks like nightmare to learn and understand - especially bloc creation part. When I first read React article about state it was obvious after first reading, in Flutter I still don't get why API for creating bloc has to be so complex. I see that it's using several different packages instead unifying everything in one wrapper package with nice API. To be fair, I'm really impressed with Flutter and how easy it's to create beautiful UIs but I think it still requires some work to make it digestible for newcomers. Keep doing a great work!
@canerdemircigm
@canerdemircigm 5 лет назад
I have made an app using setState() and now it is not enough because my app is going to more complex. There is a lot of state management approches. I'm confused. I hope this video will help me.
@TensorProgramming
@TensorProgramming 6 лет назад
Very nice. Much cleaner then my state based tutorials on Scoped Model and Streams; naturally because it's the flutter team. I am glad this talk went very smoothly. Great Job Guys.
@jeffjose
@jeffjose 6 лет назад
Your videos are amazing! Looking forward to more videos.
@TensorProgramming
@TensorProgramming 6 лет назад
Thank you very much. They are all live coded so I do make mistakes but I am getting better at streamlining the process. I generally post 4-5 videos a week and I anticipate producing Flutter videos for the next few months at least. My channel covers a ton of different technologies and languages but I try to make a fairly large playlist of relevant information for each technology before moving to the next one. After a certain period of time, I come back to revise things and add more material. Thus far I have covered some Elixir, Go, Rust, Elm, Kotlin and Flutter with a few small videos on Clojure and ReasonML.
@filiphracek
@filiphracek 6 лет назад
Thanks! I love your videos, please keep them coming.
@shibudevasia5685
@shibudevasia5685 6 лет назад
Like your videos Tensor
@em3888
@em3888 6 лет назад
Be honest, I like Tensor's voice more
@axmccx
@axmccx 6 лет назад
That look they give each other at the start, "Let's do this!"
@andriidamm3538
@andriidamm3538 5 лет назад
Finally I've got it! Watched many videos about the BLoC but got the idea behind it only after watching this video. Thanks guys, your are the best!
@youssefhenna7852
@youssefhenna7852 6 лет назад
This was actually really helpful
@richardmiho
@richardmiho 6 лет назад
another great presentation on Flutter. Clear as, logical and easy to follow.
@FidelGuajardo
@FidelGuajardo 5 лет назад
Really liking Flutter state management!!!
@dmitriyobidin6049
@dmitriyobidin6049 6 лет назад
Great talk, but... At the end of the day where are we going? Google added Kotlin as native language but at the same time wasting time on flutter? Which one is the right way?
@sshfishuser
@sshfishuser 5 лет назад
Google added Kotlin just because google wants to leave java as soon as possible. Flutter is the future.
@Mzulfreaky
@Mzulfreaky 5 лет назад
It's all just options and preference. More options is great
@iurysza
@iurysza 5 лет назад
Both. Native Android wont suddenly disappear. Kotlin solve developer problems now. Flutter+Dart is just starting, but I see it as a pretty good solution for mobile in the near future. There are lots of people already trying to do something like that (state management, functional, reactive, MVI, etc) in the android community right now and most of this ideas translate seamlessly in flutter/dart.
@sujiththycattussery
@sujiththycattussery 5 лет назад
Why Google developers always use Mac?
@artursvancans9702
@artursvancans9702 4 года назад
Because of native bash support (although Windows is working hard on WSL) and consistency - if the whole team has Macbooks, then there wouldn't be much CPU/Architecture discrepancies. You could go for just a normal laptop with Linux installed, but Macbook just feels better.
@stockita
@stockita 6 лет назад
Very nice work, thank you.
@trietlamminh6780
@trietlamminh6780 5 лет назад
So excited, let do it !!!!!!!!!!!!!!!!!!!!
@em3888
@em3888 6 лет назад
I have tough time trying to figure this out, since Mobx in React native kind of the same as this bloc thing. How about login and localization? Can I do end to end with just bloc???
@PraveenAV
@PraveenAV 6 лет назад
Thank you team.
@JoeCodeswell
@JoeCodeswell 6 лет назад
This is an EXCELLENT talk on the Google way to manage Flutter State. Thanks very much. Also, at about 14:00, what is the VS CODE plugin you are using to wrap the MaterialApp widget with the ScopedModel widget? Thanks again. Love and peace - Joe Dorocak
@JoeCodeswell
@JoeCodeswell 6 лет назад
I found the answer to my question: 1. Select MaterialApp 2. L-click the "Show Fixes" Light Bulb. Thanks again for a GREAT talk. Love and peace - Joe
@filiphracek
@filiphracek 6 лет назад
Yes, this is the Dart plugin itself. Thanks for the kind words!
@tuatkiep9702
@tuatkiep9702 Год назад
thank you very much video
@Yuvraj622
@Yuvraj622 6 лет назад
I have a flutter app that shows the list of video files from internal storage...now I want to display thumbnails of videos in video list so how can I do this in my flutter app? If anyone have any Idea then please help me. I am using ListBuilder widget.
@westiti6650
@westiti6650 6 лет назад
Why use Sink instead of a regular stream? What is the difference?
@filiphracek
@filiphracek 6 лет назад
Sink is the receiving end of a Stream. You can't listen to a Sink, for example. It's a clear separation of concerns - Sinks are only for input, Streams only for output. api.dartlang.org/stable/1.24.3/dart-core/Sink-class.html You could, for example, use StreamController for both input and output, but that would give users of your API too much power. It would be the streaming equivalent of having a public, mutable field (instead of methods as inputs and getters/finals/immutables as outputs). Hope that helps. I was going to explain Sink in the talk but we figured we'd run out of time, so we dropped that part.
@westiti6650
@westiti6650 6 лет назад
Thanks. That's really helpful
@MrMatiux
@MrMatiux 6 лет назад
Implementing the BLoC pattern, I do not understand what the CartProvider class is for. Can someone explain me? Thank you
@SoundbytesMusic
@SoundbytesMusic 5 лет назад
The cart provider is the access point through which the widgets get the cart reference. cart = CartProvider.of(context). It is the flutter way to hand a resource down the widget tree.
@seccat
@seccat 5 лет назад
FYI: Here is the file (never appeared in the video) github.com/filiph/state_experiments/blob/master/shared/lib/src/bloc/cart_provider.dart /// This is an InheritedWidget that wraps around [CartBloc]. Think about this /// as Scoped Model for that specific class. /// /// This merely solves the "passing reference down the tree" problem for us. /// You can solve this in other ways, like through dependency injection. /// /// Also note that this does not call [CartBloc.dispose]. If your app /// ever doesn't need to access the cart, you should make sure it's /// disposed of properly.
@nightlifeking
@nightlifeking 6 лет назад
Just starting to get into app development, should I learn Flutter or Ionic?
@cowboy-alex
@cowboy-alex 6 лет назад
Flutter.
@TensorProgramming
@TensorProgramming 6 лет назад
Don't learn Ionic. Hybrid apps are a dying technology.
@SiphoNgwenya
@SiphoNgwenya 6 лет назад
Flutter. I got started on Ionic but switching over to Flutter :)
@ukasztrojanowski3149
@ukasztrojanowski3149 6 лет назад
Honestly. If you are just starting out, learn something which will make you emploayable. Flutter is a nishe within a nishe. You will still be better of learning kotlin to do android development or React Native, which has a much bigger market share.
@meghashyambhandary4191
@meghashyambhandary4191 6 лет назад
React-Native
@matej0909
@matej0909 6 лет назад
9/11 great presentation
@bflmpsvz870
@bflmpsvz870 6 лет назад
Outstanding
@NileshKantak
@NileshKantak 6 лет назад
O my GOD Great !
@uday4816
@uday4816 6 лет назад
Github link - github.com/filiph/state_experiments
@matej0909
@matej0909 6 лет назад
Is there code available from this presentation?
@filiphracek
@filiphracek 6 лет назад
Sure: github.com/filiph/state_experiments
@nathanpaludo7078
@nathanpaludo7078 6 лет назад
What's the best way to change data from product in CartAddition on this file? github.com/filiph/state_experiments/blob/master/shared/lib/src/bloc/cart_bloc.dart I'm trying to use Sink/Stream to update my components with listeners, but I got this problem... Should I use CartAddition again with a new Product or define a set for product?
@nathanpaludo7078
@nathanpaludo7078 6 лет назад
pfff nevermind, I just realized I can create a sink for each field
@Keljfelgamer
@Keljfelgamer 6 лет назад
I am a beginner, and I lost track. Could you upload a state, where you start coding in the video? Or could you recommend a tutorial, where I can see this or similar from the beginning?
@黄宝乐-i1r
@黄宝乐-i1r 6 лет назад
awesome
@michaelchan1629
@michaelchan1629 5 лет назад
Is there a repo to find the examples on this video? I'm interested in the custom widgets they have the the cartbutton with the badge. EDIT: Found it!!! github.com/filiph/state_experiments/tree/master/shared
@MrStyle9x
@MrStyle9x 6 лет назад
lol "it's nothing but pretty, if you concern it's pretty"
@yeilmusic
@yeilmusic 6 лет назад
i will wiat 1 year more.
@shubham5451
@shubham5451 6 лет назад
check out *Flinty Rolls* a game built on MATERIAL DESIGN on PLAY STORE
@PablofMorales
@PablofMorales 6 лет назад
The only hell that exists is the one for those who use white background
@alexsolovyov3322
@alexsolovyov3322 6 лет назад
man, it's our personal choice )) do not be mad about that
@loenkoff
@loenkoff 6 лет назад
That is, for all the book publishers in history?))
@sshfishuser
@sshfishuser 5 лет назад
LOL. You were actually writing this comment in the white background.
@BestDealsFind
@BestDealsFind 6 лет назад
5 view
@gilbertooliveira1351
@gilbertooliveira1351 3 года назад
Streams & Bloc starting at: 18:25
@FreeMusic54
@FreeMusic54 5 лет назад
when you realize that you always used the bloc pattern and now it gets a name......
@mdtamjeed
@mdtamjeed 6 лет назад
Flutter, Dart, Kotlin, Angular, PWA - where are we headed? Too early to comment, new frameworks always feel & look great unless it matures and there is a feedback from the community. On the contrary; with Dart being everywhere is promising sign. React was taking big strides in both Web and Native applications. VUE JS was a evolving so very well and it showed a lot of promise and results. Seriously; there should be a video to detail an adoption strategy (from Google). Being developers we tend to have hard time developing apps with so much happening around from the big houses. REST based server with Microservices is in full swing when it comes to server side coding. Both JAVA and JS have a very good echo system here. Google stack looked clean with Firebase (serverless) and Kotlin being made official lang for Android. Will try to come up with some article surrounding these frameworks, libraries and languages, from the Developers' perspective.
@FreeMusic54
@FreeMusic54 5 лет назад
dude. do not worry. first of all: flutter is just a wrapper around different operating system SDKs (ios, android). that means: flutter is always going to need kotlin or something else. so if you are going to start writing a new app for both systems: go for flutter. if you want to develop also a website? go for angularDart. trust me. then you can share your dart code (services, classes, validations). but this is all client-side. how hard is it to get started in client side development? not very hard. so why worry? one week and you are in. and backend? well nothing changed there actually. you could write your backend code in java 20 years ago and you still can. maybe 1% of all developers need to worry about scaling their backend (because they work at google). the other 99% can write their backend in PHP if they want. it wont matter. just stick to that what makes most fun to you.
@raoufrahiche2828
@raoufrahiche2828 6 лет назад
another great flutter talk
@PinePark0
@PinePark0 5 лет назад
11:40 ScopeModel→InterheritedWidget and ScopedModelDescentdant (後裔) 11:59 Shopping Cart Structure 12:31 Layout & Implement ScopeModel Dont' forget 16:56 rebuildOnChange: false to prevent unnecessary render
@ManuLpz4
@ManuLpz4 5 лет назад
Just use BLoC pattern lol
@jamesperry4470
@jamesperry4470 3 года назад
I really like how flutter handles events with sinks and streams. Can't I / Shouldn't I implement the BLoC pattern when it is the most simple solution available to me using the 3rd party provider library? People often mention Provider as if it is a competitor with bloc, which confuses me.
@operamini6
@operamini6 6 лет назад
Coming from react native - react js development. This is what I'm looking for to handle state management on flutter. Awesome !
@RaiderRides125
@RaiderRides125 3 года назад
i tried but i dont get it
@kingmanhusada824
@kingmanhusada824 4 года назад
I lost when they start talking about the streams
@albertopolofernandez3472
@albertopolofernandez3472 6 лет назад
I've only understood the hole flutter state management issue after seeing this video, very clarifying videos as usual. Great job!
@WarnerBosss
@WarnerBosss 5 лет назад
it looks like even worse than js.
@suryaprakash-kq7np
@suryaprakash-kq7np 4 года назад
2020?
@emmanuelamarh5988
@emmanuelamarh5988 6 лет назад
I was so excited when I heard of the release of Flutter. It will do good even though it was just released , but I fell it will do well
@uday4816
@uday4816 6 лет назад
Scoped Model - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RS36gBEp8OI.html . (Use a Data Model class, ScopedModelDescendent & notifyListeners(), set the rebuildOnChange flag to false to prevent unnecessary re-building, disadvantage-Need to remember which widget should not rebuildOnChange ) Streams - ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RS36gBEp8OI.html (flutter has a StreamBuilder widget that has a builder which builds whenever there is a new value in the stream, Sink for input events, Stream for output to subscribers. Implementation - Sink is backed by a StreamController or BehaviourSubject (which has memory of the last value). To publish, you call the method on the Model that adds items to the Sink. To listen, you need to wrap the widget with a StreamBuilder and specify the stream it listens to. This is so that the StreamBuilder passes down any new data to it's child. Afterwards, merge the streams.
@sebasbad
@sebasbad 6 лет назад
The code for this talk github.com/filiph/state_experiments
@satishkumar-qq8df
@satishkumar-qq8df 6 лет назад
Is it necessary to make the stream every time, its like we are creating a list of the variable every time. I want to make only on variable than how its possible?
@DmitriyBlokhin
@DmitriyBlokhin 5 лет назад
Great talk, streams & reactive pattern are very exciting!
@smithshelke2036
@smithshelke2036 5 лет назад
I really hate the fact that just to mutate state, something so basic and necessary in every single reactive app we have to use external libraries already, I mean its just too much effort for something so trivial and this might lead to spaghetti code in the longer run.Should have not chosen dart i think.
@MuhammadFahreza
@MuhammadFahreza 6 лет назад
What is the purpose of UnmodifiableListView if I used bloc_start pattern ? github.com/filiph/state_experiments/issues/5
@filiphracek
@filiphracek 6 лет назад
Good question, replied on Github. The gist is: UnmodifiableListView is there for safety. It's immutable, so consumers of the Cartclass cannot change the items in the class via the Cart.items getter. They have to go through Cart.add() and Cart.remove() (which make sure to do the right thing).
@AliSattarBarani
@AliSattarBarani 5 лет назад
*This video is valuable. I really was surprized of the way of ScopeModelDecendant job in inherited widgets and it is one of the beautiful ways to create the inheritance among the widgets. I was wondering how to pass variable value among the widgets and here is a cool way which is exactly specified to do that.*
@amugofjava
@amugofjava 6 лет назад
Great talk! Helpful and fairly easy to follow.
@danialothman
@danialothman 3 года назад
wholesome talk
@NivenShah
@NivenShah 5 лет назад
How does Matt get the menu that shows "Wrap with new widget" at 14:01 (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-RS36gBEp8OI.html)? Is this a VS Code extension? Thanks :)
@NivenShah
@NivenShah 5 лет назад
@@emilyfortuna2262 👍 thanks!
@PS-cc3pz
@PS-cc3pz 3 года назад
Flutter UI development is all nice and good. Managing state is very confusing. If the variable is not in the widget scope why doesn't intellisense or compilation works?
@totommmoto
@totommmoto 5 лет назад
Great demo! Some additional links -> flutter.dev/docs/development/data-and-backend/state-mgmt/options
@brus11
@brus11 6 лет назад
Hey, is there a source code from this presentation somewhere on GitHub? BTW, I loved that state management pattern using streams. Makes me re-think the whole application design and build on top of it. Thanks a lot!
@filiphracek
@filiphracek 6 лет назад
Yes, here's the code: github.com/filiph/state_experiments
@brus11
@brus11 6 лет назад
Found it: github.com/filiph/state_experiments
@fille.imgnry
@fille.imgnry 5 лет назад
Coming from developing web apps using Vue.js, handling state in Flutter seems complicated. In Vue its as simple as having a globally accessible Store-component with a variable and then use that variable anywhere and mutate it from anywhere. No need for inherited widgets and different streams for input and output. So much simpler. Maybe this is not possible with Dart?
@Jj_jj434
@Jj_jj434 5 лет назад
great talk, was wondering if there is an equivalent approach to state management in web dev (specifically with Vue.js) as opposed to the standard redux/ngrx/vuex/etc approach. if so, can anyone point me to some good resources for learning more ?
@petrushoc
@petrushoc 5 лет назад
look like MVI pattern in android or cycle.js
@michelfeinstein
@michelfeinstein 5 лет назад
I don't agree that converting the price (1.0) to a string ("1.00 USD") is business logic.... IMHO, the business data is 1.0, and how we present this to the user (be it "$1.00" or "1.00 USD" or something else) is presentation logic.
@SoundbytesMusic
@SoundbytesMusic 5 лет назад
Keep in mind that this a very simple example app. In a real world scenario the switch from $ to € would involve different taxation, probably delivery from a different national branch of the company, with prices drawn from a another price list, differences in consumer rights laws to care about and so on. The Bloc pattern allows to change the entire app's behavior with the turn of a single switch. A differentiation between business and presentation logic would introduce yet another layer to worry about. This would go against the paradigm of separation of concerns.
@dalu_
@dalu_ 5 лет назад
Why is it posting my comments 4 times, @RU-vid?
@theGoldyMan
@theGoldyMan 6 лет назад
super weird naming - Sink. I don't think this exist in rx. Why not full implementation of rx. this mixing of notions is so confusing
@helioernestocuambe9592
@helioernestocuambe9592 6 лет назад
Are you Planing to create a drag and drop ui Creator? that would be cool
@erichalim
@erichalim 5 лет назад
scopedmodel looks simpler to me while BLoC seems like overkill
@samiullahkhawaja9972
@samiullahkhawaja9972 5 лет назад
I think it's a nice framework.
@thusithaniroshan
@thusithaniroshan 5 лет назад
18.24 for Streams 21.04 bloc patterns
@funkiekeda
@funkiekeda 6 лет назад
Very helpful, but having the source of this simple example would've been even more so.
@davidweiss5249
@davidweiss5249 5 лет назад
This is an excellent discussion of state management/architecture options. Well done.
@soumen81
@soumen81 5 лет назад
Excellent content, excellent delivery...
@sarmadabdulrahman4272
@sarmadabdulrahman4272 4 года назад
Thanks for your effort
@michaelscofield2652
@michaelscofield2652 6 лет назад
Really promising. Going to use this for sure.
@christianneilanthonywico9874
@christianneilanthonywico9874 5 лет назад
Where can you get one of those Flutter shirts? Love Flutter, BTW :)
@jamesscott3372
@jamesscott3372 6 лет назад
Great talk. I have a question: I'd love to see how you wired the CartBloc into the CartProvider, because you pass CartBloc() as a param to the provider, but you get the CartBloc back when you call Provider.of(...). How would this look if you had multiple Blocs?
@filiphracek
@filiphracek 6 лет назад
Great question. I recently wrote a companion article that tries to address some of those conundrums: medium.com/flutter-io/build-reactive-mobile-apps-in-flutter-companion-article-13950959e381
@zeccy337
@zeccy337 5 лет назад
Really great presentation. Besides the awesome content, i love how you guys presented it!
@SteveHayles
@SteveHayles 6 лет назад
Great presentation and nice to see a state management pattern in Flutter that doesn't rely on Redux. It feels over engineered and would benefit greatly from dependency injection done properly (which seems thin on the ground right now). One question I have around the BLOC pattern is how do you deal with the issue of having "initial state" being rendered before the observable updates ?
@filiphracek
@filiphracek 6 лет назад
Using something like ValueObservable solves this. ValueObservable is coming soon to pkg:rxdart (github.com/ReactiveX/rxdart/pull/182).
@MaballoNet
@MaballoNet 6 лет назад
Very helpful. Thank you so much
@rrabinovici
@rrabinovici 6 лет назад
Thank - really great talk! Sorry about the silly question - but it's killing me :) - how do you do the magic of auto-inserting code when you type just Sink (at 24:20)?
@filiphracek
@filiphracek 6 лет назад
This is IntelliJ's Live Templates. You can define your own: www.jetbrains.com/help/idea/using-live-templates.html
@rrabinovici
@rrabinovici 6 лет назад
Thank you! You are the best!
@RivenbladeS
@RivenbladeS 6 лет назад
Redux Flux Flutter great Another Moba game?
@nathanpaludo7078
@nathanpaludo7078 6 лет назад
Is there any way to use the stream data again? I have an object on a stream and I need to retrieve its data. I want to retrieve it so I won't need to instantiate a variable and a stream for it. I tried to use Stream.object.last.then() but I couldn't pass through its future's return with a stateless screen...
@nathanpaludo7078
@nathanpaludo7078 6 лет назад
Oh I figured it out on my code! I instantiate an object inside my Stream which upgrades with the handlers and then made a function to return it, so if I need to use a quantity or a price in a if before the Stream component I can use it :)
@homeygdoggydogg
@homeygdoggydogg 6 лет назад
In your example at the end where you show how changing the locale will give you the opportunity to change the USD to something else, isn't it much more likely that these changes will occur in another 'bloc' such as the 'SettingsBloc'? How then would you reference that SettingsBloc in your CartBloc? Is that possible?
@filiphracek
@filiphracek 6 лет назад
The canonical way is to pipe relevant outputs of one bloc to inputs of the other. So your CartBloc would have an Input and your SettingsBloc would have an Output. This nicely decouples things, because that LocaleChange can come from other places than the SettingsBloc, and can flow elsewhere than to the CartBloc. Depending on how much you want to (over)engineer things, you can have an overarching app-level Bloc through which these inter-bloc streams go. This makes it even easier to decouple everything, especially in case the two blocs live in separate parts of your widget tree. They'll just go through the "boss". Hope that helps.
@homeygdoggydogg
@homeygdoggydogg 6 лет назад
Filip Hráček it does! Thank you.
@jungeunwoo6905
@jungeunwoo6905 6 лет назад
Thanks for the nice video. Amazing!
@FidelGuajardo
@FidelGuajardo 5 лет назад
Dart Streams look super nice!
@SKNPictures786
@SKNPictures786 6 лет назад
It's amazing video...I like it
@ibrahimragab2299
@ibrahimragab2299 6 лет назад
Princes +1
@RumakInaph
@RumakInaph 6 лет назад
What are some of the Google apps built using Flutter??
@filiphracek
@filiphracek 6 лет назад
The two that are public knowledge are listed in flutter.io/showcase/.
@chicagoboy279
@chicagoboy279 5 лет назад
should I learn this or angular cordova
@barnabasbartha3507
@barnabasbartha3507 5 лет назад
Definitely this
@ravinkponjg
@ravinkponjg 6 лет назад
1st view
@BestDealsFind
@BestDealsFind 6 лет назад
Excellent
@randomnet_tv
@randomnet_tv 6 лет назад
Number 3
6 лет назад
What are the requirements to understand that talk? I am kinda lost
@filiphracek
@filiphracek 6 лет назад
It would be very helpful to know where exactly we were losing you. It's very possible that we just failed to explain things in a clear way. That said, this talk is definitely for intermediate-to-advanced Flutter devs. There are at least 2 other great talks from this year's I/O that are much better in explaining the foundations of Flutter.
6 лет назад
Thanks Filip, I will come back after learn more about flutter then.
@MsKante
@MsKante 6 лет назад
I don't like Flutter development patterns. It breaks encapsulation, why not create custom classes to hold data/states ?
@filiphracek
@filiphracek 6 лет назад
Could you elaborate? Encapsulating data in separate classes is definitely a pattern that Flutter apps use, and we show some of it in the talk (Product, CartItem, Cart, etc.).
@MsKante
@MsKante 6 лет назад
Sorry I didn't watch the entire video. I guess the code structure is throwing me off little bit.
@WeiLiuhaha
@WeiLiuhaha 6 лет назад
What is the editor you use to code? It's called 'Code'?
@zipzit2go
@zipzit2go 6 лет назад
VS code. code.visualstudio.com/ free, open source, runs on any OS. very awesome tool..
@zeccy337
@zeccy337 5 лет назад
I personally use intellij👌🏽
@mainelad
@mainelad 3 года назад
Filip uses Android Studio and Matt uses Visual Studio Code.
@Touseef
@Touseef 6 лет назад
google is promoting 2 ways to develop android, flutter and kotlin and its confusing for me because I am a newbie in android and both of these seem promising.
@TheNiters
@TheNiters 6 лет назад
I guess one of the differences is that Kotlin lets you make Android apps and Flutter lets you make cross-platform iOS+Android apps.
@Touseef
@Touseef 6 лет назад
@NiteLite yes you are right, but my confusion is because of "Kotlin-Native" which is also a new project aims to let u create cross platform apps with kotlin
@LinJheYi
@LinJheYi 6 лет назад
You can build cross-platform production level app for million users today with Flutter, but not with Kotlin/Native. However, with the future development of Kotlin/Native and Kotlin/JS, you can basically write Kotlin everywhere, mobile, web front-end, back-end, even desktop. It's not coming in the near future, but I bet it would happen in like 2-3 years.
@Touseef
@Touseef 6 лет назад
what if I just want to write apps for android right now? ( because I cant afford ios store fee per year ) what should I choose then? is flutter still good enough for this scenario? I mean can it do all the things at OS api level which can be done with kotlin and android jetpack?
@soraneko8392
@soraneko8392 6 лет назад
Kotlin was just an improvement upon Java and was good. But Dart and Flutter are going to be the industry standard and Google standard for Android apps in the years to come. As of now it's just another option.
@MartykanT
@MartykanT 6 лет назад
What are the advantages of Flutter over React Native?
@raoufrahiche2828
@raoufrahiche2828 6 лет назад
native performance and beautiful ui
@TensorProgramming
@TensorProgramming 6 лет назад
Flutter is actually Native where as React Native is only partially native (its basically a web browser that runs your react application). While flutter also runs on top of the native platforms and uses its own rendering engine, it still compiles everything down to native code which is a huge deal as far as performance goes. Flutter also has built in support for concurrency and distributed rendering. This means that it is much harder to write code that will slow down the performance of an application (or block the rendering of the UI) and it also means that you have access to good tools which can take care of these types of concerns (Dart Isolates for Expensive computation and first class stream support for state changes etc). If you are a react native developer, I highly recommend you take a look at Flutter.
@Zhuinden
@Zhuinden 6 лет назад
>>> React Native is only partially native (its basically a web browser that runs your react application). Wat? React Native is translated to native UI components, it is not hybrid like Ionic/Cordova, AFAIK. Flutter on the other hand ditches native UI components entirely and draws itself out from its own realm of Dart code, so it's actually closer to Xamarin.Forms than it is to native app development.
@wmleler6163
@wmleler6163 6 лет назад
The following article talks about the differences between Flutter and other systems, including React Native. "What's Revolutionary about Flutter" hackernoon.com/whats-revolutionary-about-flutter-946915b09514
@meghashyambhandary4191
@meghashyambhandary4191 6 лет назад
Wrong... React Native is not a Cordova Framework to run in a webview, Code written in ReactNative uses native components. No DOM here.
@xpopcornx1747
@xpopcornx1747 6 лет назад
The last thing we need are more frameworks. No good reason to use this over native android and iOS.
@SiddhantDubey
@SiddhantDubey 6 лет назад
Write once, run anywhere. Besides flutter is integral for google's next os fuchsia. Plus flutter is native unlike react native
@ibrahimragab2299
@ibrahimragab2299 6 лет назад
How can I implement two-way binding using "Sinks and Streams"?
@VikramSinghVikroatwork
@VikramSinghVikroatwork 5 лет назад
You lost me at Streams .
Далее
The Boring Flutter Development Show [Pilot Episode]
54:34
Офицер, я всё объясню
01:00
Просмотров 3,7 млн
Barno
00:22
Просмотров 658 тыс.
Using Firestore as a backend to your Flutter app
11:42
Просмотров 525 тыс.
Pragmatic State Management in Flutter (Google I/O'19)
33:25
Building a Mobile App in 2024: The BEST Technologies
13:31
Using Material Design with Flutter
13:01
Просмотров 269 тыс.
Top 12 Flutter Tips & Tricks
9:32
Просмотров 269 тыс.
Top 30 Flutter Tips and Tricks
6:50
Просмотров 558 тыс.
Flutter State Management - The Grand Tour
14:07
Просмотров 242 тыс.
Офицер, я всё объясню
01:00
Просмотров 3,7 млн