Build Flutter Apps Fast with Riverpod, Firebase, Hooks, and Freezed Architecture | Apps From Scratch

  Рет қаралды 49,147

Marcus Ng

Marcus Ng

Күн бұрын

» Flutter courses, writeups, and source code on Launch Club 🧠
drp.li/Iq9Bk
» Flutter Job Board 👋
drp.li/T9bLq
Learn Flutter fast in this tutorial by building a shopping list / to do list app with Riverpod, Firebase, Flutter Hooks, and Freezed. Watch tips and tricks to quickly design and prototype a fully functioning mobile app. This tutorial is great for developers who want to improve their mobile app development skills.
» Remember to like, subscribe, comment, and share this video! 🚨
kzbin.info?sub_...
» Socials📱
GitHub: github.com/MarcusNg
Twitter: / marcuslng
» Resources 📂
Flutter Firebase Setup ( • Flutter Firebase Setup... )
Source Code: github.com/MarcusNg/flutter_s...
» Timestamps 🕒
0:00 Introduction
0:34 Flutter Branch - Null Safety
0:50 pubspec.yaml and analysis_options.yaml
1:50 Firebase Setup
2:14 Firebase Authentication
2:30 Auth Repository
5:21 Auth Controller
6:44 Testing Anonymous Authentication and Logout
7:32 Item Model with Freezed
10:08 Item Repository
12:32 Item Controller
15:36 Add Item Dialog
17:01 Display Errors with SnackBar
17:16 Item List
17:51 Item List Error
18:17 Item Tile and Build Optimizations
19:27 Running the app
19:54 Item List Filter Provider
20:59 Item List Filter Toggle
21:24 Thanks for watching 🙏
» Music 🎶
[NCS ( / nocopyrightsounds )]
Limitless - Elektronomia ( / elektronomia )
Joakim Karud ( / joakimkarud )
#Flutter #FlutterRiverpod #FlutterFirebase

Пікірлер: 89
@miguel_bogota
@miguel_bogota 3 жыл бұрын
I love this kind of tutorials. It feels more like Fireship or Robert Brunhage videos. I hope I can see more of them in the future. However, I have to admit I enjoy way more your 'Apps from Scratch' tutorials. I'm new to Flutter and be able to see somebody think and guide me through everything it's amazing.
@tluanga-ruatpuii-pa
@tluanga-ruatpuii-pa 3 жыл бұрын
There hasbeen breaking changes in StateNotifierProvider, the code should be final authControllerProvider = StateNotifierProvider
@CZARCZAR
@CZARCZAR Жыл бұрын
Very useful, thanks
@kemids2842
@kemids2842 3 жыл бұрын
YES!!! thank you so much! please create more tutorials with Riverpod, Firebase, Hooks, and Freezed
@Soulcybering
@Soulcybering 3 жыл бұрын
I love Riverpod + Freezed, hope to see more videos with them inside. This video is one of the best about the topic currently, thank you
@adilbasharat
@adilbasharat 3 жыл бұрын
I need to watch this 200 times to understand it all .. This video contains the most amount of information one can get in 20 minutes on KZbin. Good Job Marcus.
@dennisbarzanoff9025
@dennisbarzanoff9025 2 жыл бұрын
If you need 200 times to understand it, that does not speak good for the video
@adilbasharat
@adilbasharat 2 жыл бұрын
@@dennisbarzanoff9025 or doesn’t speak good for my intellect
@dennisbarzanoff9025
@dennisbarzanoff9025 2 жыл бұрын
@@adilbasharat lol teacher vs student
@dennisbarzanoff9025
@dennisbarzanoff9025 2 жыл бұрын
@@adilbasharat i would say this vid requires a lot of prev knowledge and experience. It's advanced. You need tp be able to relate to certain things
@adilbasharat
@adilbasharat 2 жыл бұрын
@@dennisbarzanoff9025 I understand it now and implemented it already in my app. Watched it about 200/10 times in order to do so 😄
@stewartchan1057
@stewartchan1057 3 жыл бұрын
Working through the tutorial now - really great stuff. Thanks!
@kirilllapshev
@kirilllapshev 2 жыл бұрын
What a great video! Riverpod + Fluter hooks + Freezed is a really powerful combination! Thank you for sharing your knowledge! 🙏🏻🙌🏻
@haseebkahn4811
@haseebkahn4811 2 жыл бұрын
I just found out this channel. I can't believe how lucky I am to have found such an expert flutter developer. Thank you!
@Ahmedibrahim356
@Ahmedibrahim356 3 жыл бұрын
This is actually the most valuable video i have ever seen on youtube until now. 🤩 Great work !
@Ahmedibrahim356
@Ahmedibrahim356 2 жыл бұрын
@@ExtraServingsBTS can you do better ? I guess not.
@koxwobi6431
@koxwobi6431 2 жыл бұрын
Dude, thank you so much for this content! It's a huge help for me now!
@chuxville11
@chuxville11 3 жыл бұрын
Thanks for another one Marcusng
@silas_wolf
@silas_wolf 2 жыл бұрын
This video is absolutely amazing, thank you!!!
@laziboi5975
@laziboi5975 2 жыл бұрын
I learn much from your video man!, thx much
@a22601807
@a22601807 2 жыл бұрын
Thanks for your sharing! I learn from this course a lot.
@KennyBlewett
@KennyBlewett 2 жыл бұрын
6:50 For anyone watching in current times, HookWidget is depreciated and should be replaced with HookConssumerWidget. With that the first few lines of the HomeScreen class should look more like this: class HomeScreen extends HookConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { final authControllerState = ref.watch(authControllerProvider);
@Celestial0Force
@Celestial0Force Жыл бұрын
is the rest basically the same?
@CZARCZAR
@CZARCZAR Жыл бұрын
Great answer, thank you
@caballero75RS
@caballero75RS Жыл бұрын
Thanks Kenny !!!
@Ageleo
@Ageleo 3 жыл бұрын
Loving the recent activity from you
@peekpt
@peekpt 3 жыл бұрын
Simple, direct, informative
@rhuanbarros
@rhuanbarros 2 жыл бұрын
the best video about flutter riverpod hook firebase
@em3888
@em3888 3 жыл бұрын
Great materials actually
@naratewongserewattana3966
@naratewongserewattana3966 2 жыл бұрын
love this tutorial
@evara0
@evara0 3 жыл бұрын
thanks for the video
@mdhossen7082
@mdhossen7082 2 жыл бұрын
This video is Very helpful
@RandalLSchwartz
@RandalLSchwartz 3 жыл бұрын
hooks_riverpod automatically pulls in flutter_hooks and all the riverpod stuff. I let the transitive dependencies take care of that.
@andenetalexander5244
@andenetalexander5244 3 жыл бұрын
This is how you write beautiful code.
3 жыл бұрын
Me putting on repeat to see more ads so you can get some money from me
@alarmaerand7082
@alarmaerand7082 2 жыл бұрын
Super useful video about setting structure and architecture for your app! Do you have some video or course how to solve Firebase data access layer in generic way. That CRUD operations and streaming results are done in in generic way and can be used for all the collections etc. Maybe some clever way with extensions or inheritance etc.
@hojdog
@hojdog 2 жыл бұрын
Nice code quality
@akshaymankodia9003
@akshaymankodia9003 2 жыл бұрын
Hi, thanks for the video @ Marcus Ng . May I know , how can we do testing for filtered list either of any testing method i.e. unit/widget/integration ? Thanks
@avatar_ng
@avatar_ng 3 жыл бұрын
Thanks for the great tutorial! I got this error message while implementing the login page. any idea why? "'package:riverpod/src/framework/base provider.dart': failed assertion: line 944 pos 7: 'exposedvalue is listened': a provider tried to assign `null` to a non-nullable `exposedvalue`"
@quangle5701
@quangle5701 2 жыл бұрын
Hi @Marcus, I really like the content. Do you have plan to include Riverpod into your Flutter courses? Thanks.
@Creat0299
@Creat0299 3 жыл бұрын
Good day. I liked your lessons. Could you take a lesson on how to make a mobile application on the topic of ecology? For example, the application how to improve the ecology in the place where you live, having good habits, can be done in a playful way. And so on. What do you think? It is on Flutter in the Dart language. After all, the topic of ecology is more relevant than ever, you will help a lot if you do a lesson
@talatkuyuk6556
@talatkuyuk6556 3 жыл бұрын
Thanks for that.You are very clever. Two questions. 1) If we manipulate an item directly from Firebase, does the UI listen this changes, so it updates self automatically? How do we do that? 2) how we separate all logic from UI establishing model-view-viewmodel (MVVM). I want to reach view model from a view(UI) for example with model.itemList, model.countItem, model.getItemList() something like that? If you provide an architecture like MVVM using the same tools (RiverPod, Firebase, Freeze, Exception mechanism etc., listening the database, caching mechanism etc.) this will be very huge achievement.
@nevek895
@nevek895 2 жыл бұрын
lol your video is like fireship's video :D
@TylerR909
@TylerR909 3 жыл бұрын
Awesome! Next idea: Continue from here and implement a way for me to share this list with my wife on her own account. We need to convert to streams, model our data for shared access, figure out invites/linking/ownership… Would be a pretty cool exercise.
@DavidHust
@DavidHust 2 жыл бұрын
I'm at a lose why there is an auth_controller file. All it seems to do is repeat what what is in the auth_repository file.
@quicksketch1617
@quicksketch1617 3 жыл бұрын
Hi, I have some questions, I use a lot of autocomplete and 2 were different of what you use: 1 - cloud firestore - firestore core, what is the difference 2 - In the ItemListController, before create the variables, it creates this construtor, again what is the diference? ItemListController(AsyncValue state) : super(state); Your constructor ItemListController(this._read, this._userId) : super(AsyncValue.loading()); It's set to loading, why? And what is extensions? extension FirebaseFirestoreX on FirebaseFirestore
@purushottampk4530
@purushottampk4530 3 жыл бұрын
I've problem in option 2
@CZARCZAR
@CZARCZAR Жыл бұрын
14:42 Breaking changes In order to get the state of the Exception provider, you must have to use .notifier like this: _read(itemListExceptionProvider.notifier).state = e;
@Qibla_Kha
@Qibla_Kha Жыл бұрын
What is the best way to retrieve an Item and access its name (item.name) using the itemListController if i know the item id ?
@keithbacalso9433
@keithbacalso9433 3 жыл бұрын
Hi Marcus Ng, I am just curious, what is the best or what State Management that is very useful for you and why?
@mahmudizukri
@mahmudizukri 3 жыл бұрын
Cool
@Hema115
@Hema115 2 жыл бұрын
My Item widget is stuck on the CircularProgressIndicator... Please help!!
@lowglow687
@lowglow687 3 жыл бұрын
You made me feel like I have to relearn how to code again :'(
@adilbasharat
@adilbasharat 2 жыл бұрын
Can you do a tutorial on how to implement google maps with riverpod and have the initial camera position go to users address from friebase?
@shei69
@shei69 3 жыл бұрын
Can you do one with changenotifier instead of statenotifier ?
@1GAMEDOG1
@1GAMEDOG1 Жыл бұрын
The cloud_firestore API has been updated and you need to specify the type of data you're getting from the DocumentSnapshot. This means the line > final data = doc.data()!; in the item model, needs to be changed to > final data = doc.data()! as Map; or you'll get the error "The argument type 'Object' can't be assigned to the parameter type 'Map'."
@RamkumarSivakaminathan
@RamkumarSivakaminathan 3 жыл бұрын
I'm not sure why your website loads without any CSS while I'm connected to my broadband but is perfectly fine on my mobile network
@DiegoTheWolf
@DiegoTheWolf 2 жыл бұрын
Could you make a follow up on how to implement more than anonymous login (like the normal email, google, etc.) I'm trying to port my bloc logic but i cannot get my head around it
@sultanmyrza
@sultanmyrza 3 жыл бұрын
What software is used for intro video?
@guythomas9977
@guythomas9977 3 жыл бұрын
What plugin is putting the inline error descriptions in vs code?
@CodingwithDay
@CodingwithDay 3 жыл бұрын
@@MarcusNg was looking for this for so long.
@naxcall
@naxcall 2 жыл бұрын
make videos about updated riverpod pleasee
@kenmmita346
@kenmmita346 3 жыл бұрын
was going well ... until you used freezed to generate all those methods. I'm still struggling to know what they are used for.
@tsbaurzhan
@tsbaurzhan 3 жыл бұрын
Why you created abstract repository if you hardcoding firebase repository in your provider?
@ihardikb
@ihardikb 3 жыл бұрын
for unit testing
@CZARCZAR
@CZARCZAR Жыл бұрын
7:11 Breaking changes on the sign-Out button To read the method signOut() you must use the ref instead of the context like this: ref.read(AuthControllerProvider.notifier).signOut();
@tluanga-ruatpuii-pa
@tluanga-ruatpuii-pa 3 жыл бұрын
The code is notworking please update
@debajyotisaha4289
@debajyotisaha4289 Жыл бұрын
The Reader Type in 3:46 is not in Riverpod 2.0. Can anyone tell me the fix??
@justbasic2862
@justbasic2862 Жыл бұрын
old: final Reader _read; _read(*); new: final Ref _ref; _ref.read(*);
@tluanga-ruatpuii-pa
@tluanga-ruatpuii-pa 3 жыл бұрын
factory Item.fromDocument(DocumentSnapshot doc){ final data=doc.data()!; return Item.fromJson(data).copyWith(id:doc.id); this line gives an error message The argument type 'Object?' can't be assigned to the parameter type 'Map'
@adilbasharat
@adilbasharat 3 жыл бұрын
Any leads on this ? I have the same issue
@evanz7863
@evanz7863 2 жыл бұрын
You can cast it during assignment. This fixed the issue for me. final data = doc.data()! as Map;
@StevenHagene
@StevenHagene 3 жыл бұрын
the latest riverpod breaks this, is it possible to see the changes with latest riverpod?
@stevenhagene7424
@stevenhagene7424 3 жыл бұрын
@@MarcusNg your awesome
@douglasharringtonmuhone1144
@douglasharringtonmuhone1144 3 жыл бұрын
@@MarcusNg source code link please. Great tutorial btw
@mdhossen7082
@mdhossen7082 2 жыл бұрын
How to make flutter calculator
@calvingonsalves9741
@calvingonsalves9741 3 жыл бұрын
0:50 Iphone 13 O_o
@pikapikabooboo
@pikapikabooboo 3 жыл бұрын
How about a Firebase GetX paid course?
@blablablabla29382
@blablablabla29382 3 жыл бұрын
getX => no.
@leoingson
@leoingson 3 жыл бұрын
@@blablablabla29382 Why?
@blablablabla29382
@blablablabla29382 3 жыл бұрын
@@leoingson Cancer community spamming to use it. Didn't understand why...
@andrewparris5372
@andrewparris5372 3 жыл бұрын
Are your courses up to date with Flutter 2.0 ( Null Safety )? I ask because, as we all know, Null Safety broke a lot of these KZbin video tutorials.
@faheemahmad3957
@faheemahmad3957 3 жыл бұрын
still tooooo difficult please make a simple flutter social app that is easy and simple basic
@purushottampk4530
@purushottampk4530 3 жыл бұрын
Based on admin role
@faheemahmad3957
@faheemahmad3957 3 жыл бұрын
@@purushottampk4530 yeah please :*
@AMODERNArcher
@AMODERNArcher 3 жыл бұрын
Yes it might be difficult but making a social app doesn't make anything more simple..
Learn Flutter Hooks and Maximize Your Code Reuse
10:36
Robert Brunhage
Рет қаралды 61 М.
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 179 МЛН
БАБУШКИН КОМПОТ В СОЛО
00:23
⚡️КАН АНДРЕЙ⚡️
Рет қаралды 17 МЛН
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 10 МЛН
路飞太过分了,自己游泳。#海贼王#路飞
00:28
路飞与唐舞桐
Рет қаралды 32 МЛН
Flutter Clubhouse Clone UI Tutorial | Apps From Scratch
1:00:09
Marcus Ng
Рет қаралды 30 М.
Flutter Riverpod Quiz App Tutorial | Apps From Scratch
14:25
Marcus Ng
Рет қаралды 46 М.
Flutter Flavors, App Icons, and Firebase Tutorial
9:39
Marcus Ng
Рет қаралды 50 М.
Riverpod or Bloc? Which One is Better?
3:44
Flutter Guys
Рет қаралды 39 М.
KMP vs. Flutter - Who Will Win The Cross-Platform Battle?
16:19
Philipp Lackner
Рет қаралды 38 М.
35 Flutter Tips That Will Change Your Life
10:53
Flutter Mapp
Рет қаралды 298 М.
Top 10 CSS One Liners That Will Blow Your Mind
13:34
developedbyed
Рет қаралды 931 М.
State Management Like A Pro - Flutter Riverpod
10:30
Robert Brunhage
Рет қаралды 76 М.
What if my Intel CPU explodes??
14:20
Paul's Hardware
Рет қаралды 23 М.
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 179 МЛН