hello people how are you welcome to another
new video and how you will have seen in the title at the end by the majority of votes
garex won so we are going to do the implementation of clean architecture with
state management being ex of the application that we saw last time in the
last video that is the delivery one is a very simple application based on
themes also the aegis I'm going to quickly show you here a demo of what we
did in the last video check the last video for which you did not see a splash
screen, a login and there I am live mode but I can also change the mode
then give the login we have the list of products here a
button every time I press the button we are going
to add a counter here a counter in this central button
will have the amount of products that I am adding then here I can create
several products and when I press this button I go to my cart which are the
products that I am going to have added with the number of elements that I have I can
have I can increase qui tarle and the total is updated here and when you
press delete also oil and I am removing elements basically that is what we are
going to do all that session states with garex
and well at the end all the steps states or the code structure will
be similar in several cases Using different boards
we are going to see that later and I also have here the screen of the profile of the user profile
that has been achieved in this case I am going to paint the image that is in it,
I have the name and email local and here it allows me to change the mode
Live application and will persist and this button to log
out which is going to simply delete the information and will return login
then basically what I intend to do is the following
when I entered the application here I will upload a first
one - touch in which I am going to store del using char pérez but we are going to use the
plugin to be preferred if the user was blocked it will have a
touch that we persist if I do not send to the login screen if you At the
touch, I am going to simulate a request but we are going to do it in memory only to a
service of yours that has the validation simply for you to
use it and it was going to obtain user information and it will no longer go to the
login screen. to go to home in the event that it does not have everything that is going to
enter here at the login I will enter data when I press login it will be the
validation of the user if it is correct I will put the users in hard
to validate it in the data layer and if it agrees with the users who are
studying then we save information about your user in hard
also in char preference the token and some data of the user not image
maybe name and medium not also the projections we will persist the subject
the subject of the application and once it is correctly identified if it does not show an
error it will redirect to the screen of this product these products
I will also theoretically remove it from a web service but we will manage the
memory I will leave it r ready for you to connect it, nothing else and to like it and
that is and we load the data here I am selecting this already from
the local state management here when I go to the cart also
all the elements that would appear when you press delete ready just
check out simply We show a snack bar it can be and here I also load the
data that since it comes from the login that had persisted and here it also
interacts with the topic that they want preference no so that we will be able to
explore a bit what ex we are going to see management of states and The most important thing
that we are going to implement this using clean architecture which is to write
texts are in Spanish in a clean architecture are a set of
concepts that help us to improve our software creation process
of our application in this case it
is a guide there is no something specific that tells you this must be so because if
you have to follow it to the letter it is not a guide as well as the state management
that guides for the blog that can s implement the way you want but
it tells you more or less how you should do it in this case the clean architecture is
based on separating the application into modules in layers so that everything is not
mixed in this case the main ones that I can identify and that by reviewing the
guerre xxvi package that also have that structure
is the presentation layer which is where the ones from the domain layer
are where are your keys and the repository in this case the repository and
has put identity there which are the classes that interact with with everyone,
let's say in the help and we also have entities and at the time of bringing the
information also and good data where we can access a
web service plugin or the data sort that we want,
we will see later when we go to implementation because because it is said
clean architecture and I think that with this intro we can pass the code to the
implementation quickly well we are already on the code track
so the first thing we have to do is add gar las cows here I have some
cows from other examples that I have in this project first I am going to add
garex I am going to copy and paste this
and I am also going to add at once the chart preference that I am going to use to
persist local data and this and now I'm just going to run the application
again I'm going to see if you are seeing well
if it is okay then before starting to enter you want xxi we are going to define the
structure well I had already created the structure something similar here in
architecture well but presentation domain and data I only have data and memory
meadows where I was pulling the products in memory
in domain that I have this can be in you that you can define the name that you
want that gives you a guide as I told you the product is good name description
price and more I will have I have to create good that I am a user
they only have names estero name and more than I had in the design although
we have in the app it has we are going to use internet my password
nothing more good but the pa go no name in the image is fine that we do not
need anything else here enríquez there is nothing I neither the presentation I have the splash widgets
home blogging so as I told you in the splash what we are going to do is
get the token if there is from local then make a request to observe to
see if there is no so I am going to imagine that I already have that in first
I am going to start in the layer above I am going to create a folder that
can be data sors and I have seen that also some create in
the interface in the cast domaining group domain we are going to do it I am going to create a
repository folder repository and here I am going to create an interface that is first going
to be an interface to obtain the data locally which can be I am going to get
local you will be
ripoll and tories thus a repository and dart interface
and this class local repository interface not local repository interface and it is
also already good it will be abstract because it will not have implementation of
the methods here I am only going to define what things that I want to do it, I am not going to
implement any method, it is simply like a contract, nothing more than the
implementation, I can do it in whatever I want, I can implement it in this
case, if the hype is preferred, I do not know where some other is based for the plugin case
to save information local ok so here I have to have the
touch 1 this is going to be a future string
I feel that I am going to put a touch in what has been stored
taking advantage of the get local stories also when I do the goltz I will
delete the information so I am going to pronounce void clear information or that
I have nothing this prepared I am doing the flight
clean information clear the jerk the club in everything who what else am I going to save I am going
to save the user I am also going to save user data and when I
get the information ok ok yes then here
the user could return it can also be 6 I am going to put it and I am going to
receive the user and I need a get you to know also
exterior and usher that it uses and here it does not Something happened to him no
nothing happened to him [Music] nothing happened to
him there is already my interface now I am going to
implement it in the data layer data data source I am going to put it here loucá repository
in this case it will be implementation and I will create the local class repository
implementation that will extend the interface to create interface is and I
will ask ask override these methods here I am doing the
implementation you want in this case will use the chart preference
going Let's see if this I think it's been a long time since I know how to
be preferred to be preferred here I can do something directly to
the instance this is a future so I'm going to do it
directly this is a future so I
'm going to implement it directly here since it is a simple take the end is not
distancing it every time it comes in the code then you will see that it is
a simple everything I will add the zinc ok then
remember what makes it preferable and nothing else
and now the touch is going to get an
all that here I need the safety car also gets I am going to create a kit here that
will be for example with the touch touch this I am going to create another that is
usher I will be myself only name
I am king I could also save all the user
in a jason but we are going to make it that way simpler and 20 ney name
I also missed the topic in my life I am here
and what else has to save and the image Pérez and more and more
and more this I do not need to expose so I can put private since only bucks I'm going to access those
values from here so I put them private and it is ready for them to touch
the rector this is a gets train
and this if there is nothing it attracts me null that is already there everything is fine I missed the 6
touch touch string touch white white 3
that has gates here it has I have to use the edict
I do not have to make a rector that I have 176 of life here since it was
worth and here the doping and it could return everything that I do
want and here I get a error because it doesn't create the
implementation so I'm going to make it quick Amente here
sorry I did not create the interface the method to implement it and this get you be
here easy it also starts to get data it can be a here it would be a press
user name it would be a final they
are here a prisoner
name i and more
and all this application the heaviest I think that the water
will handle the issues and all that because the rest of the state management is quite
simple, so here I create my end user I am and I return
what he asks me here I am a station and more and more and it is and I already have You can see this taking it out
of projections, it is necessary to save it now here I can make a stockpile I hit
be preferential server friends jet stream it can be if the step of being a username
canon I do not need anything that I get an error that tells me to be
about people of the kino here here It would be a brief
journey, this one I am going to copy here again and
again and again and this would be press name press and more share and more
user name and return the loser and this I have my
interface implementation that more I am already assuming that in the splash scree n
return the token ok and if I return the token I would have to
make a request when serving to ask them if there is a user
then created another repository that may be there are repositories and
class abstract class repository arrives that I have to tell it yes yes
yes Go back to the epp now and tell it get you to be fronton, I'm a touch
and this could return a user to me in life if it exists,
otherwise it could throw an exception that is cleaner is the login also
future here I would have to return the login as
well a user and
in the login if he would have to return not only a user but the token as well
so he would have to create another object for that
at this point until it is okay to groguet yusef soon
kings and he passed the touch and a half the user yes but the first Once I do
whatever this is going to be done when they go to the beaches and validity but if not in the
login I will pass the login in step
may be the request here I will take advantage of this request folder i
wish pons create a respons or request or make a use request login request art
and this will be a plus login request final string username final string
password this and that 's better and then
in the response you want what I told you that it came with everything who can be a
login or response log in response
and final string that would be a token since it would be a booster it may be so I need usher and the constructor is
up there all right I have my response atrium and I am going to modify the impede
now the interface interface and this will be a future
blogging response and that's it, you're
not responding, you're here, it's going to be a loser, a login request, the judge alcón give you the login I
need most from the epilogue, I'm going to simulate a log out, this is going to be
a I'll just go and a log. out in the just place it passed the token
and what should be how to play in removing the session no more and is
now going to create the implementation and I think others and would
state management think so good we see the repository implementation check
plas the repository implementation nothing more extensive clean repository
interface was I am going to ask to implement and this get you be front now we are going to
play here with hard data in theory you here should connect with
http or whatever you want with fire fire store or whatever
the service to the back-end and they should there identify based on everything that is not what
the credentials that you send them and return the data they want
but why do I do it like this because this is climate architects why because I am
patron saint repository where I simply from the god who made,
let's say from the controller in Castilian, I'm going to invoke a good guy, he's going to
be an architect who also believes that he implements his news, which is a tractor,
something so that it is the one of your present what you controller knows It is going to
communicate with that intermediate class which is the I is that I am going to put and that
is that it is going to connect to a with an interface for example in this
case it can be local storage repository and I simply I work with
this, based on this, I tell it to give media to the front or that it does not return its
users to me, it does not matter if the implementation you do it by connecting
with ghost service connecting tea to factor or agraft and see I do not care
simply you I send these returns this is a contract and here the implementation
for example I am going to do it in memory but you can do it with a
package so this is interesting in so this is done is that simple
but at the time of testing also because not only we have the interface
we can inject a false mod to do the tests and the process is
facilitated we are not mixing any widgets how you are seeing here
everything is business logic connections and that so it is important to keep
the layers separate the modules separate ok then we start For
example, here I am going to make a myth that is forgiveness, he mentioned that it is equal to good data
so false to 111 so you return me a user that I
can define here it cannot be me name here I am going to say it steve jobs
username steve jobs and more here I am going to return read who
should come an image url no but here I am going to use one that I have here already in
memory in local which would be assets delivery users and steve jobs point jpg
It is that I am missing
this 85 and if the touch month 222 I will return the other user
students and since it is the most here
and the most jp than ready, if not here I could throw an exception and
I want to throw a custom exception so I have to create my
exception I go here it can be I
could create another bales but good to facilitate this
I will create an exception folder and tell it
exceptional delivery or if not auto station wagon this can be an auto exception and this would have to extend exception
exception that me ask no exception with seeing them tomic simply exception
implement that option let's see I'll see if it allows me to
throw an exception I'm not sure where it is if it allows me to make a piece of this
exception that it implements in the exception ion of dart bar cage the sky 'engine
here it could even pass some message to you no but hey it's fine just with
that and that 's it
then the token has to be one of these two and again another disappointment is already
in the login the same could be a similar variation for example when a point I am is equal to
steve and blogging password is equal to jobs then the user will be steve
jobs this response
then here is the move here the return the object that creates
response is agreed here returns the token In this
case it will have to be the one above 111 and the user and the same here but now with more thread
that will be I touch and I copied this user eye this implementation you
can do it as you wish or against your back end and launched this section
yes no and to give it a touch of realism I am going to
put a delay so that it does not go so fast so that you please think a bit
so I give wait delay constant duration it can be 13
seconds and this one
and here too achieved here that it was going to be just
good here, simply in theory I would have to remove the moving token from
server touch and nothing else is all there is nothing more good
up to there we have already created the data part also of the local and now
we are just going to connect everything we are going to connect little by little because
for now if the state management yes and do everything else no so
we are going to continue with that because there are people here I was
wrong it is how I am using another user
in theory here I am going to put it Another thread that is using the same saying a
copy-paste I am going to take advantage of adding the part of the theme here because I am not
saving the theme either so here I already have a variable lend team and
I am simply going to create a future void von der goltz here
and I'm going to put a vulgar dark mods on it and I'm going to recover
only in william gay and it's long and nothing else I just do the
implementation now quickly I'm in the local local implementation I get an
error it's fine and that's it it is here simply is the
implementation this part is easier and it was without director and shark mauser
preferential points jetblue and 3 dark
is and to save it I use it to
be preferential points & wood and I use the key and the valley that I am passing this
nothing more now if we started with the implementation of care ex
because we use gates gitex material
here jr / ecs has an interesting option which are the page yet page the pages
that I am going to use to navigate and they have a special option which is
vending this is very cool in the convoy to remove it and I can put
an initial by neither nor nor be root I will then create my class
roots file well that is single roots and I will put a file that is
roots of free delivery roots point art
and this is my class of delivery roots I'm going to create here my routes that will be
final static string expanded to be equal to splash
static final string another one that I have will be the login here now I have the home what else I have route with also they are not
routes because they are internal views and I think that's all
splash login and home and now I'm going to create my space delivery
6 so I'm going to rename this
because it's more generic a free man delivery navigation I'm going to put
larry page and here I'm going to put my mis pages that are going to be yet page
is already in the name for the path of splash
delivery blood splash is going to be the page splash screen this I think is a vile there
if it is a function this and it has nothing is
and the others that are going to do and the login is going well screen
ok then what else I already have my pages that I am going to do delivery page they do not believe it as static and steve payne pérez is starting ruth I am going to put
delivery blood point the splash that the initial route
then I am going to remove this import and get ex has a special option that is the
vending has initial vending that are like the classes that allow us to
inject dependencies as we have global dependencies that are the ipi and
the local is now me so I'm going to create a class for inject them there
I am going to create here in I am going to tell you a main binding
if any main painting class that extends from bain days then yerex
that allows me to make a new king of the dependencies
that I am going to use rest we know try we do it with multi provider the same with the
flar blog there is a blog and provider I think that the same
then a special class has it separated for example I am going to
inject the get we are going to import this not lazy putts where here you can dictate the
dependencies that I want eye let's work based on interfaces here
then is what to look for the repository interface and I am going to inject the
implementation so this allows me to
change any implementation I am only going to work based on the
interface I do not care what implementation I have here they leave injected
and for the ts it will be a lot simpler because I can inject a mount is a
fake ts here for the tests then get lazy potts here there is also an
interface repository and it asks for repository I laugh from here the implementation and what else is
ok then so far everything is fine I have the implementations injected
now just go to my good this is the initial bending invite me and this I
say that this is going to be the initial one I am going to run the application because it
seems that it fell into the simulator and we are going to see this one is running I
imagine now if I am going to splash spring I am going to re-invoice this I no longer need
this false delay I am simply going to use a style is here this I remove this Monday cri
[Music] and because we are using derex
we can use the widget that is get widget that where I tell it which controller I am going
to use but I have no controller here so I have to create a splash controller
which is the one that will understand or handle the business logic classes classic
controller extreme what ex controller
and that's it then I can put here this control
imported and it's done now what can I do with this control I don't have a binding here this controller
should have access to the repos Itorio del local
so I'm going to create a repository interface block and an interface repository
is created by the constructor and I put it named
to be able to inject these these values and where I get those values they
saw that they had the vending 1000 bach inning where to inject but I don't need to
create this control and as I think it is good because we can use a binding for
splash screen today create a splash screen binding
is not plas binding, it would be a splash bain class of extens
finding this for the handling of dependency
injection so here I am going to inject the call
lazy put here I am going to inject the es classic controller and it finished creating
and this asked me for two elements there is no law so where can I get it from the
same get there is an end I think if I simply tell it fire and it will look for the instance
that have that type that type of class that is what you are waiting for and if it does not
find it, it will surely throw an error or it will be null then it created a crazy and the
same is already and is my splash contr oller injected
and now what else am I going to splash controller and this one wants to control it has
methods that I can override which is a few lines when the controller has been created but
still in view it has not been rendered so I am going to do it in the name di
I believe there is one in grady where the view and then presented here can
load some logic here might be that I am in this
here could be a method validated validated that can be validation to validate the session if there is a
user then here could be a method to 5 not even if here I am going to call
valid station validation and first bring the final touch touch
if I am going to put it like this so as not to have many callbacks
and here I put way is still that if the touch
is different from nul then it called law to bring the data but simply
return something to view and tell it that there is nothing if there is no token then it
should send the login we are going to try
here I would use that this is what I do not like jets that oblige me Go to use the
navigation within the control which is incorrect because
and made a video about the vile context that if it can be in the channel of ferrer
colombia or if they do not find it they put the comments and I put them the one I put the
link but hey let's use it to see how this free
pace free roots and bojan is doing, I think
something I had to do here is if login delivery roots
is not I have to replace it I think to replace the off
or flame & pop the codename & page and they do so It is like the place no longer
then a little from the splash and they call login and if the touch of a different nature
then called the hipias white believe point that I am
frontal that touch once I have the you be it persists
so I can use an away point lokarri post it or interface point safe to share
and it happened to him I am nothing more and I redirect to home in this case and that's it we are
going to try this that I would miss the most and in the routes I did not root the jury
navigation roots here I am missing indicate the vending this
spla sh has a bending that is going to be like the class that injects internally
if you start to review the code to find that it is simple it is not a gay
page that is a class like this every time I do in the vision we are going
to review in the vision by Example here in get off name is as a new putter place
that is using the normal page let me check the let's go to the
main mail I have a get pages laws that the
country does, look every time there is this one has a generator that handled routes that
has a get page root and
I am going to enter this team it extends from asking for root and this is where it calls the vending it
verifies if it has dependencies and is that the by ning is different null
but it runs all the bandin and calls dependencies first first before
invoke the page calls the pods which in this case my splash beijing that
has just the injection from my controller knew I can use my
controller here ok but hey I will not need on this page just
for the for l to logic splash and controller here which I do not
agree with this but let's see first if it works so delivery and
hallyday station with ready and I am not going to enter the 'bund' and
we are going to see why the vending does not enter this I controlled the splash band and
because we are in banking it seems that the 20th does not enter, they
waited for print and if Albaini is entering I
think the problem is that it is not an instance of the splash control because
it is not looking for it, it has simply put it there in memory as law yes so
what I can do is good to bring the controller here pod is to
control although I am not going to use what
here to use the find and I put splash control and I suppose
that with this the days to initialize it says to clean the post-it oriol or
memory book to use and then he released it, we are going to test in this one
as I am not successful, then he looks for the token and does not find it and simply
sends login then we are in the login screen now we are in the login then we are going to
go rap Then and here you would also have to create your wine
ding ding ding although the standing bands
simply implemented the dependency method
that more so in scream the gun control is
missing login control it would not be class sunday
control gates ex controller here that I can do just good
how am I going to need him sorry, this splash controller I need
the low cost and also these 2 a port and I changed the name of the ready constructor
and in my local binding the same thing I did for the splash binding
only that I am going to insert the control that corresponds to this for it Dependency
handling this would be a login controller and it is
injecting dependencies it is dependency injection that way
it makes text [Music]
not cool yes then we are going to control and here I could create a
void login method
and nothing else I will create here the fainá user name text controller
editing controller the password text control
this then I will give login I do not forget the navigation of free navigation
here I also need to tell them their mining is going to be either van dyck
is I have a controller login
here I am going to capture the data first and username
I am a teeth controller text and the password I have the valid trip then
[Music] log in response equals
leape and from here I am going to put a wave huawei point point login and I am going to create a login
request henríquez
I am line password it is obviously that this as I put in the
clean implementation and it can throw an exception if it does not find the
user then I have to be prepared for
that except here it would show a snack bar
you are a message this is also anti pattern because I am
using a snack bar it is showing widget within the business logic
which is wrong and that is what I do not like about direct
los others would have to return better we do so not
such as to avoid falling into this Antipater future boom will live
if proper response login then what will I do
this I will remove here He returned to falls
and zeal in the corrector so different that here is the irresponsible and responsive thing and to
save the touch and local gdp groups and thor interface touch
just put a touch and in the local web repository in 3.62
air response with usher and this and I return truth
and there is [Music]
a new error this buoy login page and they
do not register it I put here I need the controller get widgets
blogging controller I am going to create a method that is the login
and I am simply going to call the control of the login point and This how you get an answer is going to
be 5 and if it is struch then I make a
direct navigated towards of all towards the koldo flame page in we will have yes
and I put the jury page to go and to the home free of the roots
and if not I show there yes I put a snack bar incorrect login,
I just need to do nothing else, there are controls in the texts, here I am,
here is the text that is controller is control the exam
and here password and even the button will no longer call
the home screen directly. i no va a ir a
blogging este método es el que está arriba
y listo parece que mi simulador nuevamente falla no sé qué está pasando
con el otro lado voy a compilar mientras cumplir los
revisamos el login controller va a entrar a este login va a traer los datos
del controller los textos controller llamada ley que hay con los datos del
zew ser y retorna un logro response que es un objeto login response que contiene
el talking y liu share y si lanza un excepciones que no fue
identificado y yo retorno en falls el widget y aquí ya puedo redirigir al home
o mostrar un mensaje del snack mar hasta ahí está sencillo creo que no hay
nada raro voy a comentar esto quitar esto y ya
está vamos a probar con esto habíamos finalizado el
audiencia que funciona ok login voy a poner cualquier cosa
login 123
y un mensaje de error login incorrecto aquí podría manejar esta va a ser
interesante para el cargando y aquí por ejemplo pongo el long
masc y esta no son tres segundos que le puse
pero no tengo ningún in dicador así que podría validar eso si voy atrás ya cerró
nuestras páginas y su pop así que para cerrar esto el login le voy a poner un
indicador ya que manejamos estados aquí es en el controller no estoy en el
widget de aquí me parece el control voy a crear un por ejemplo voy a crear un stack a todo no sólo solo esto está acá
children colon y el cierre de stack no aquí y aquí puedo poner un por ejemplo un
centre el circo circular roberts indicators
nada más no también podría ponerle
posiciones field podría ponerle un peinar
color color black 26 puede ser
esto es medio transparente y si lo dejo ahí
bueno en teoría acá debería entrar directamente no 1 2 3 y mandar con esta virgen está por
que guarde los datos del todo quién se acuerda de guardar los datos del toque
entonces está yéndose a validar con el limpia y el usuario y entonces por eso
me está redirigiendo el home pero yo quiero el login quiero volver a alguien
como necesito borrar los datos voy a ponerle
rápidamente un evento aquí al profe el screen esto no deben hacerlo pero
solamente para borrar los datos voy a cuando presiona el log out aquí
voy a decirle se acuerdan donde lo puse en el local de grupos y tory
no lo que grupos y tori implementation aquí no deben hacer esto pero voy a
poner un clic el data y debería borrar me los datos preferentes que entonces
voy aquí borro ya no hay preferente entonces cuando yo vuelva a entrar debe
ir al login y ahí está en la pantalla cargando que le puse usted lo que estaba
haciendo que quiero probar ok entonces este es el login
aquí voy a poner una condición pero basada en el estado un controller por
ejemplo voy a crear un y nam hoy esto lo lo quito y el dogging state voy a
ponerlo en cloud loading en ti no start y loud y nada más inicial
y loading voy a crear una variable de estado
dentro del controlador que va a ser log in style lo voy a poner en state
punto inicial porque me presión installation inicial
baixas mitchell ops que se ha observado me voy
a convertir automá ticamente un string ustedes revisan el código tienes una
extensión esto de arex miren extiende a eric simplemente tiene
bastante lógica aquí y este área simplemente es una clase al final que lo
que hace este creado nuestra in controller por cada objeto que tú le
pongas ops va a tener un string controller y cuando tú lo leas en tu
widget va a escuchar va a ser va a ser un string builder internamente donde va
a recibir los datos entonces esto tiene un string controller que va a ir
emitiendo datos miren cada vez que tú le asignas datos emite y bueno así es cómo funciona esto
internamente hay varios tipos no he visto que han creado
int string eres volver cada vez que tú haces
un cambio automáticamente envía una señal de que de actualizarse igual en el
string cuando la asigna en los números también hay un bug
no sabes qué sumas restas automáticamente envía un seriedad y
envía una valores ya si conocen streams es lo mismo que tiene internamente
calonge state empieza en inicia y cuándo cuando está cargando en teoría aquí
este login demora de acuerdo en tres segundos así que aquí lo voy a decirlo
en state no bien state loading
aunque ya iba a estar cargando y si algo falla entonces aquí le voy a decir inicia la nueva
también estado voy a salir
y entonces que más necesito simplemente escuchar eso pero sólo para solo me
interesa para este vídeo así que voy a ponerle aquí y excargos el widget que
escuchan sigo vex y esto es un vil de aquí
voy a ponerle llaves retorno a este widget y aquí puedo usar el if controller
control el punto inicial hay sets iniciales a esta variable más states
login state value es igual a
blogging state loud y entonces muestro este widget sí no
nuestro 16 es vox 5 probamos y está el login voy a ingresar cualquier
valor 1 2 3 y está loco break y desapareció entonces
posibles que viene ahora esta vez voy a usar steve jobs
1 2 3 y como ésta es correcto manda el hoy y aguardó los datos que retorna él
el repositorio implementó después steve jobs entonces es tá retornando este toque
y estos datos del usuario las la imagen todo y la está persistiendo vea y login
controller que hace una vez que retorna los datos cuando el login es incorrecto
lanzó una excepción aquí captura decepción retorno force muestra
slackware cambió el estado para que el wii se actualice y aquí guardo el toque
y guardo el usuario entonces ya tengo los datos del usuario
que podemos tener perfil vamos a seguir con ahora la parte de él
el productos de home bueno entonces ya continuamos algo que
me olvide es que en el splash screen también tengo que validar el tema de la
aplicación lo cual no lo estoy haciendo y splash binding splash controller sería
no me gusta que esté lógica relacionada a la ayuda
aquí porque él se involucra con el contexto pero no aquí vamos a ponerle un
método qué va a ser
con in it [Música]
super un clínic y aquí va de zinc
crea un método bytes válida
[Música] y lo que voy a hacer es traer el tema
tim igual no es dark igual a white blue car repositor y punto
y estar montt esto puede ser nulo no porque la primera
vez no tengo ningún valor así que es dark diferente de nulo entonces
hasta que tiene un método también para manejar el tema no sin fin y le pasó el
tema si es dark entonces le pasó el dark
sí sí no y si no puede usar creo que quiere que
también tiene también tiene una variable de taxi me
dice si estoy en dartmouth así que puedo usar esto no
[Música] si quiere
es así que
y stark mode partimos lighting ya así nada más y creo que eso es todo
grabó y voy a entrar de nuevo ya entonces asumo que estoy en la misma
así que está entrando aquí obviamente porque dar me gusta nulo y asumo que
están en live por eso entró aquí entonces mostramos ahora la lista de
productos ha faltado no hay para eso esto ustedes lo podrían separar
limpia repositor ya no estoy manejando el login esto ustedes pueden ponerle por
ejemplo el login repository para que manejen sólo el
login y otro por ejemplo produje y play opositor y para que manejen todo lo
r elacionado productos y así es tener separados por categorías por flujos en
este caso sólo es autenticación yo podría crear otra para el productos pero
debido a que solamente tengo estoy listado de productos y nada más así que
voy a hacerlo dentro de éste hay después el nombre genérico también el viaje
inauguración login o out así que vamos a hacer rápidamente future
list product productos
get products voy a ponerle products
este producto importó y está me pide que lo implemente y ésta
y acá simplemente voy a hacer un fake del
nyt de lights a 5
constellation un segundo y retorno a la lista de
productos que tenía como se llamaba memoria y me morí estaban dentro de mi memoria y
products products nada más y lo importa
y esta ya tengo limpia y ahora tengo el home que tengo que manejar en el home
miren en el home necesito mostrar aquí la imagen de el usuario así que esta
barra la tengo el home así que vamos home
el home screen tengo el tab bercy donde le puse una bata rojo vamos a ver si
fun ciona home aquí son este default
porque si entonces antes de los productos vamos a manejar el home
primero me olvida de esto que tenemos que manejar el estado de los de los
botones y esto así que un home con controller
porque aparece aquí controller
las controla extenda get control
está ahora necesito home banking
class home banking extend findings
mip implementar dependencias esta y aquí que tendría que hacer sin éxito a inyectarle el
así como el splash es lo mismo existe inyectarle el controller
creex esto también lo pueden no necesitan el
bajen y lo pueden hacer directamente en el widget cómo se usan dos putts los
detengan contra pero es mucho mejor hacerlo así más limpio un lugar sólo
para dependencias home controller necesito aquí necesito
no necesito esto sí para obtener el usuario
así que un controller entro vaina local repositorio interface al
compositor interface constructor y ésta esta joven ding me falta en las páginas
no le puse el binding main ding aquí vending
home findin g y esta voy a salir por si acaso combining está un controller
y esto necesito que en el hombre d
cargue el usuario no te dio ser voy a crear el usuario aquí yo ser
yo ser igual sería no tengo ningún usuario el inicio voy a
importar esto y aquí lo que tengo que hacer es traer
al yo ser grandioso ser igual a componer lo privado incluso esto para
que no pueda ser del otro lado a waits
así que no voy a hacerlo así con curvas nada más
y sería no necesito que
que sea válido si necesita que sea público para que pueda acceder desde el
control así que aquí sería el local opositor y punto get you ser punto
aquí tengo el you sería también lo pueden hacer con agua y solamente quiero
probar así hacerlo así ahora y aquí tendría que hacer un yo ser
y le asigna el válido yo sé que estoy obteniendo de él preference
listo solo necesitaría escuchar esta variable creo pero está nula así que no
sé cómo funcionará en este caso vamos a probar los juces ya está cuando
empieza entonces el home binding el home screen ahora esto es un statement así que voy a
cambiar esto y se va a caer seguramente en widgets
sería home controller ya está
ya no dice que esté voy a comentarlo por ahora
ya que la gestión de estados que estamos haciendo ahora con el xerez cge
igual aquí entonces que podría ser
ya empezamos con el del libro y navigation bar esto está dentro de este widget así que
debería poder acceder al controller [Música]
vamos a probar aquí le voy a poner sólo me interesa
esta parte del avatar así que aquí podría ponerle un widget que sea apps homex seguro va a salir de aquí es un aquí
nada para ponerlo así
el vector aquí no voy a poder acceder al control porque no me extiende el widget
pero puedo hacer o puedo ponerle get ex widget controller o también puedo hacer
esto que he visto que hacen final controller igual a get punto find porque
me estoy equivocando en los importes voy a importar el get no el state manager
porque estos horas y post al fin y aquí le pongo él con controller
y esta no p uede ser con controller y entonces aquí en teoría debería poder
acceder al usuario vamos a probar un doble punto ya ser válido y va a ser
nulo al inicio entonces voy a hacerlo hacia el ojo
[Música] si usuario si usuario es igual a nulo entonces
muestro este circulaba atar rojo sino o no sé usuario es igual a no lo voy a
mostrar nada un 6 el vacío si no muestro el avatar
pero aquí ya le pongo la imagen en teoría debería tener el usuario así que
background y más asset y más y le pongo yo usted el punto de más
que en teoría soy steve jobs no debería mostrar steve jobs en el hall de la
dimayor response no sé qué está pasando el problema vuelvo a compilar la
aplicación y revisamos a ver qué podría fallar como
lugar es tan duro la primera vez debería entrar aquí nulo
que es que va a ser casi imperceptible porque
y va a traerse los datos del robot del preferentes que es muy rápido así que
rápidamente se va a ver el usuario seguramente debería el usuario que tengo
persistido así que como grave no se curan después el login y lo grabé en el
pre france así que debería traer el usuario con los datos d
limpia en el pósito steve jobs debería traer este usuario libre
acabamos 1 2 3 y se caiga todo qué pasa bayly guasch old town el controller no encontró el controller
[Música] no
controller no encontró el control pero si le estoy
poniendo en el vending
debería estar de la gripe a dieron aviation bombay india
[Música] estoy inyectando el controller
y acá dice como traen hutsby iniciales el yerbal y busco ligón del me está
diciendo que el control del estado usted no que el usuario estando voy a
ponerle simplemente una interrogación y probamos si el usuario está basar nulo entonces
esto también va a ser nulo va a ser restar de todo
voy a tener que bajar la aplicación y coreana
aunque voy avanzando para no perder tiempo lo mismo voy a hacerlo en el
estado del index o que voy a crear una variable int que sea el indec selected
y que esto si va a empezar en 0.2 te voy a poner llevas el er ror x int así
ya tiene un tipo especial que al final es lo mismo
eriksson la implementación tiene muestra un
controller todos tienen este grano más en contra de por cada variable que
escuches vamos que corrió la aplicación de nuevo está llegando anduve no estoy usando wenger ex dice ex
[Música] muy extraño si he insertado en el home
control pero qué me dice ahora satisfecha con controles inicializa
dicen puede ser porque no tiene valor
eso es lo único que podría hacer si es que necesito que tenga un valor
pero que puedo ponerle aquí yo será así ops voy a poder crear un usuario vacío
quizás yo sea factory dios el punto en ti
y creo en dios que tenga
un hombre vacío yo solo un vacío y más bueno todo en todo caso ok entonces aquí
se esté creando un usuario vacío voy a decirle yo ser en ti ops vamos a ver si funciona y ya está pero salió un error ahí está
ven en la foto del usuario ya está refrescando estamos bien pero que
realmente saliendo holmes came lo que pasa es que ahora si el usuar io
ya no va a ser nulo pero tengo que validar que la imagen no sea nula así probamos ahora sí sin problemas ahora falta solo
el contador ya como ya lo quite le quite el estadi le quite el indec que vamos a
ver cómo hacemos la validación ahora curran index ya no tengo chau
aquí necesito el cubren index y
esto está de más esta pantalla voy a ponerle un consenso
play holder y aquí también aquí ocurren gentes
necesito obtenerlo y aquí también dos lados necesito entonces qué puedo hacer fácil creo que le pongo dentro de un
widget ops aquí pongo el builder
aquí uso controller punto index selected punto vale ya
igual aquí x controller punto
index electric value y esta y aquí necesito actualizar el index en base al
que estoy pasando entonces creó un método el controller punto update index
selected de paso el index paso
y qué tengo que hacer aquí simplemente indec selected
index y eso es todo creo probamos y no funciona nada
camps que ha grabado graba está ahora sí bum bum bum bum vamos a ver q ué errores
[Música] jr/ecs
[Música] esto sí está raro no sé qué puede ser
voy a quitar esto o sea que estoy llamando simplemente
para actualizar el estado así que no entiendo qué podría pasar
y al entrar aquí o ex para actualizar el estado con nuevo valor y mostrarlo nada
más no de una raro pero vamos cuando entro a esta pantalla no muestra
nada no encuentra el error
[Música] no puede agregar eventos después de
cerrar y esta es una de las cosas que no me gusta de estos pacas estos errores
el error basada en el string pero no entiendo qué puede ser a ver cambio profile hice lo mismo o sea
funciona pero está saliendo ese error así que no entiendo qué podría hacer
porque estoy actualizando el index cuando cambie el index le pasa al
control el indec seleccionado y nada más algo está mal aquí
[Música] controller podría hacer esto
estoy seguro voy a quitarlo no es eso bueno podría ser también una falla de
dirección ok entonces estamos cambiando esto sin
problemas puedo ver el profile aquí es ta
información está en duro así que vamos a hacer es el profile de productos primero
que productos ahora vamos a la pantalla de productos
hasta un ex producto es queen en productos que necesito cargar los
productos y luego manejar en memoria los productos del carrito y eso lo voy a
manejar en el home me parece porque tiene que sincronizarse con el carrito
de aquí los productos que voy agregando así que mejor esto lo dejamos para el
final voy a agregar ahorita lo el profile team el tema así que vamos con
profesores rápidamente profe y voy a crear un profile binding binding hasta incluso podría sacarle
sí no quiero complicar más profile
controller dart y voy a copiar bastante de explosiones
para no perder mucho tiempo de splash y controlar profile controller profile control
necesito aquí solamente loco esto y me copia también el splash
las playas bang profile vending mining y que más aquí es profile mining profile
controller está ahora el tema hasta donde inyectó
esto creo que aquí no pu edo porque no estoy
usando páginas no no estoy haciendo navegación con dentro de get page estoy
usando directamente el widget dentro del envío
com entre la home screen
a menos que pueda usar un que space no he probado
no no puedo usar un que page porque no es un widget es una clase nada más
así que en este caso es lo que no me gusta
profe de scream no necesito el baile y entonces voy a inyectarle directamente
voy a borrar este baile el control está bien en profa
screen entonces debería hacer creo que hacen esto hacen un final controller y le pone un put
y aquí asigna el profundo controller y esto es lo mismo pero no me gusta que
la inyección aquí queda en el wiki si usted está en una forma de usar el
vending no en la navegación sino dentro del widget dentro de otro widget lo
dejan en los comentarios que solamente leí el ejemplo de jr ecs y no no estaba
esa esa forma así que supongo que esto también podría funcionar entonces aquí
estoy ya siendo el profe de controller
[Música] que más y simplemente tendría que
observar el widget crear un booster vamos a probar efe
controller con ready
claudio ser voight loud tu ser amado copiar del home
el home screen mano contraria [Música]
hasta incluso podría rehusar la dejan controlar ya que es el mismo usuario pero vamos si podría rehusar el control
del azul ya voy a borrar este profe el controller destacaría solamente un get fine perdón
un controller solamente un fin deja un controller
sí borro esto
y que más controles que escuche todo [Música] si podría usar un controller o podría
usar este control del juego no podría usar del profe y también yo decido así
que voy a usar del home y una vez para que vean cómo se pueden revisar
controlar / página con get ex y entonces a todo le pongo
ops text y retorno simplemente el widget aquí esto y está simplemente ahora tengo el
usuario aquí controller punto giuseppe punto vale
y en teoría podría poner la imagen aquí voy a validar si el usuario
y más es diferente en un entonces muestro esto y se va a apreciar si no
muestra un widget vacío entonces aquí mostraría la imagen del
usuario y más aquí el nombre punto name
aquí podría mostrar josh earnest yo soy rey y así nomás
y aquí es donde podría saberlo del tema también del zinc
así que ya que lo estoy haciendo estoy hablando
del home vamos a ver si funciona si steve jobs o si estaba en nombres y lo
usaron ayer steve jobs el nombre steve jobs de nuevo programas steve jobs tibios perfecto
y el legado está falta implementar lo malo de hacerlo así con él usando el
home control es que estoy sobrecargando la lógica bueno lo haga un modo de que
ustedes no lo haga como estoy re usando esto para obtener el usuario que ya
había obtenido para el botón navigation el problema es que por ejemplo ahora
necesito log out entonces le añado más lógica ahí y ahí
voy añadiendo voy añadiendo mucha más lógica para un controlado sólo en
controlar cuando puede haber sacado un profile controla para aislar la lógica
que tener un poco más limpio no s ólo lo que necesito en el profe así que bueno
vamos a seguirlo aquí tengo local repositorio
ahora me doy cuenta que necesito limpiar y también aquí fainá
y piar opositor y interface le voy a inyectar en el vending
mining compañía limpia yo tengo la inyección y aquí en lo que
hacía se acuerdan limpia de punto log out con el toque y si está bien le pasa el
toque final que eso lo tengo en el local la cacería
local repositorio interface que toquen y le pasó el token para que lo elimine y
también tengo que eliminar los datos localmente
loca sí
huawei wait y aquí voy a simplemente espero la
llamada ahí y me dirijo no quiero hacer la redirección aquí porque usted en
control ahora en el olimpia de repositorio
implementation le pusieron un toque front token for server y le voy a poner
todo que estoy enviando para que vean que en verdad si tengo el token que
estoy enviando log out jockey rafael screen log out que va a
ser esto no debo hacer yo voy a crear un método aquí log out
blow out aquí boi tes log out
a 5 control del punto eudald espero
y una vez que aquí también podría capturar excepciones bueno el controller
si el sur voy de aquí tendría que hacer ya no son fitur y aquí tendría que redirigir get punto of the name et y voy a delivery roots
roots voy a login porque estoy haciendo log out
así que y todo esto
creo que ahí está bien asumo que está bien log out
ahora me falta el tema aquí tendría que observar otra variable
solo en esa parte nada más voy a crear un control en una variable que sea arex
bullyng y es dar fin a dar te voy a mandar
iguala y aquí necesito inicializar la no sé si estoy en dar cine sólo tengo
que obtener desde él voy a ponerle fall shops y eso lo tengo que obtener al inicio con
hynix load current team voight loud oscura fin lucas armesto y es larchmont y aquí uso el que le puse en fin aquí le pueda dar fin
y le pasó el valor destrozo es nada más ok entonces hasta ahí tengo el tema ya
puedo pintar el tema con la variable de dar team pero necesito camb iarlo también
voy update team y aquí a donde le pasó pudo
variable stark y lo que tengo que hacer es llamar al
repositorio y hacer un update y cómo era 6 dartmouth y dark lo que ya está ahí está bien
no retorna nada y lo retorno aquí si está en barco o no y cuando haga establece simplemente
actualizó el tema en la ayuda stark y ésta y esto porque le estoy retornando para
cambiarlo dentro del widget no quiero cambiar el tema aquí así que unas buenas
prácticas que profile screen vamos profe escribo en change que le paso es el
control del punto con 25
con el valor y necesito cambiar el tema no así que
voy a crear un método mejor tim updated estiman 20 urban
stark controller punto con testing está aquí está
y esto me retorna bueno ese mismo lo estoy enviando así que puso un game
change team si es dark ozz dark fin sino el life inc
esta hora necesito escuchar nada más estos cambios aquí
en este switch si el switch nada más porque el traste cuando una dama switch
off tex
aquí es empieza y us o el controller punto
dark funcionará funcionará vermont y me sigue saliendo ese error de je
t'aime nota si ustedes saben porque me sale ese error que no me dice en qué
parte del código mío está fallando sino me dice que que está fallando
directamente aquí que está agregando no puede agregar otro otro evento después
que ha sido cerrado el string es lo que entiendo pero en qué parte quiero saber
qué entonces está cambiando el tema voy aquí
y en teoría no está persistiendo al voy a salir voy a hacer recepciones debería
estar en dark yo
log out what's cold onu [Música]
no encontró la ssm errores en el repositorio interface no dice la
inyección en el libro sería en home banking
sí pero parece que ya estaba distanciado así que voy a hacer otro start que debería estar con
o ninguno sí bueno quedó en dar así que está perfecto mantuvo el tema solo que
no mantuvo esto y estar como debería estar chequeado o no
no sé cuál es el chequeado así que voy a corregir esto rápidamente
de forma que escrib e sin él
active color voy a ponerle el propio tengo el del libro y
delivery colors punto cuerpo esta tarde light ya está bien se
entiende mejor ya no me sale el error qué raro que
tenemos otro estar que más me faltaba cuando hago log out
no funcionaban not found
en teoría salió de la pantalla pero salió otro error
del libro y navigation login screen
johnny to call a propósito later interface donde en el login
sin controlar 9 impide vending qué espejos herreros están saliendo yo soy no no he encontrado esto en johnny to
call gates así opositores y eso es porque estaba en
mi alma vending pero yo asumía que debería estar en el main binding
es extraño eso porque en el main bending es donde yo estoy inyectando todos y yo
asumo que esto ya no debería pedirme nuevamente porque está en el perdón
estoy en otro menor está aquí
en el inicial by ming es como haciéndolo tomar en cuenta así que es plants así
que qué puedo hacer simplemente inicial
binding me permite que permite poner varios binding así que voy a decirle al
login que en scream tengo mining si tengo vainas
entonces voy a usar el main bai ling aquí por si acaso necesite inyectar
primero las dependencias anteriores y ahora si voy a ser un hot arrestar y
probamos ok lo voy a hacer con la máscara ciudad
mask y tres
ahora sí con la foto de la más dartmouth está en world truck
qué entonces logrado debería funcionar ahora sí um ya está datos incorrectos inc
y voy a poner ahora steve jobs funcionó perfecto y bueno aquí está mal
el dark modo no me está pintando y quiero ver porque es profe de scream y
no profile controller profe no tenemos profe el control él trabaja un control
como controller y creo que es porque le puse en el on in
it cuando debería ser en red y cuando el widget ya se ha mostrado así que voy a
probar eso aquí tengo que salir y entrar
estoy en karting entonces debería estar más tienen likes le hice cambios ya
ahora si yo estoy en dar entonces algo y steve parece que se quedó con ese valor
cuando yo hice da rtmouth en larchmont log out de o borrarme todos los datos
y debo cambiar el tema debo cambiar el tema al inicio al light
así que ahí está ese es el profe cuando presione el log out voy a cambiar el tema azul es que no estoy validando el tema en el
login sino en el spla sido validad ahí tengo otro problema qué tal si en vez de re dirigirlo al
login lo mandó al splash pero voy a cambiar ahora al delivery navigation
poner estos bai ling entonces miles plasman findings
creo que con eso ya debería estar para poder ya de estar con lo del producto
dogging mind por qué entonces splash dermot perfecto ahora sigue recesión me dice que qué me dicen si el mismo error que hace
rato creo que me faltó otro estar manos de campings y el splash profile screen
splash y león
más que este modo light modark cierro sesión modo live ahora sí
ahora siesta y ahora sí
onlive y estamos listo ahora si pasamos a la parte de productos y la del carrito bueno veamos entonces
primero estábamos en producto screen produ ctos que había quedado ahí
son estériles son estériles si está bien es un estéril y si necesita obtener los
productos ahora le estoy poniendo directamente en durar producto pero
vamos a crear un producto productos controlar
necesito un bending no necesito un bien porque esto es una
página que está dentro de home view on screen class products controller extend
terex controller get conflicto esta semana ya no
que necesito el ipi hay nada más aquí final limpia repositorio interface ya
está un constructor
y les pongo nombrado nada más en prueba screen y entonces voy
a usar aquí get control creex controller pero no lo va a encontrar porque no ha
sido inicial izado no necesito inicializar lo entonces el put final
controller iguala puso un ghetto punto boots voy a volver importarlo de no importar
guetos pütz y le digo que es un controller no
productos controller y qué va a hacer
productos controlar que requiere o limpiar y usted lo hago con get
punto fine para que busque la instancia ok enton ces ya tengo el producto
controller ahora necesito escuchar nada más sobre esto le pongo
op bewkes
esto y dónde está aquí le pongo control del
punto no tengo nada en contra de él así que voy a crear algo fai en donde estoy
mal siempre pongo final sería tengo un ex list perfecto producto producto de poner igual sería un vacío
así falta importar esta y voy a crear o bueno le digo que en el on in it
cargue los productos cloud products y entonces voy a boy the road
productions puedo hacerlo con code weight como
quiera entonces qué hago simplemente voy a limpiar
al final resulta igual la vuelta y pide al punto que productos
y le digo al producto listo que está actualice con el nuevo estado [Música]
en este caso como es nuestro todo así aps y le pasa el resultado supongo que a
todo le envía simplemente la lista ojo que le está agregando más así que tengo
que tener cuidado ahí a dar united el cual le sirve creo aquí simplemente
le añade y reemplazó todo así que no sabía que se podía hacer est o así que
promise le envió resultados así y está en teoría esto debería refrescar el
stream que está escuchando y vamos a probar
aquí le digo sí como le puse un delay creo de un segundo vamos a probar si
controlar punto by1 braddock list punto es no en ti
entonces muestra el grid wílder sí no centre chain circular progress indicator
que está cargando le digo y entonces tengo este valor para cloud
value porque me sale esto
producto ser directamente no sabía y aquí el producto list en teoría debería funcionar vamos a
probar se cayó todo porque no es un asunto de list producto
así que supongo que tengo que especificar el tiempo aquí voy a salir y volver a entrar [Música]
cargando y se cayó nos pide que sea uno de ese tipo así que
como le puedo notificar a este ex list que tengo una lista de objetos así
inicial izando los operator le agrega una lista de
elementos está bien igual a todo
el cual podría ser [Música]
insert insert vemos
clear y el valioso pálido esto está un poco raro entonces tendría
que hacer esto válido igual a resultó sin nada más que vuelva a entrar y está bueno estaba fácil no simplemente
era leer el código ya entonces aquí tengo ya los productos con el botón
agregar y esto debería estar sincronizado con el carrito que voy
agregando aquí está mostrando todo nada más pero bueno ya tenemos la primera
parte no vamos al llosa reales que no sé de qué es
y entonces ya tenemos la primera parte ahora al
presionar el botón debería tengo que tener una variable primero y dejamos
controller que tenga los productos que voy guardando así que voy a crear aquí en el modelo voy a crear un
product art puede ser producto y voy a decirle clases product card
este va a contener el producto y
va a contener la cantidad
y nada más no porque el sistema la cantidad de tengo el producto ya puedo
ser la multiplicación y sacó el total y eso total
sí creo que es es suficiente el problema es que aquí la cantidad va a
mutar así que vamos a ver voy a hacerlo constante no perdón me
con sta producto y quantity cantidad inicial es
cero ya está entonces vamos a hacer
implementación ahora del carrito ok entonces pasamos a la implementación
del carrito vamos a crear un kart controller para
manejarlo separado para controlar este car controle va a tener que ser
usado desde el la lista de productos para agregar los elementos y desde el
car screen para refrescarnos así que hacer un no va a necesitar alguna
dependencia una inyección nada porque eso lo vamos guardar los objetos de
memoria jr/ecs controller porque voy a salir de
esto pero no tendrá ningún problema ok quiere controlar qué más necesitamos
a rex que va a tener producto art
y yo voy a poner card karlis igual a lo inicial hizo un vacío
educar y esto va a ser observar un observador que más estoy ahora este car
controle necesito inicializar lo junto con él
home controlar ya que como les dije va a ser usado en dentro del home también así
que se puede controlar y nada más no necesito nada más
qué más algo que me hizo un poco de ruido es el
producto art debido a que voy a actualizar los
elementos voy a quitarle el final para que pueda modificar la cantidad y que
por defecto empieza en 1 pues listo ahora ya tengo el card controller
voy a crear mi método para agregar elementos al carrito de producto card
me voy a pasar el producto productos
voy a validar sobre los elementos que tengo si aquí ya existe y si existe el
incremento en una la cantidad art producto carsí
y voy a ponerles solamente voy a crear también un método cuando esté en la pantalla de cart y
presione el botón menos pero sólo voy a implementar el ahorita
que tiene que ser un forward recorrer podría hacer esto un poco más complejo
acá sobre escribiendo el método y cuál cielo ver white el operador y collier
overdrive para poder validar los objetos directamente sin tener que validar bueno
no tenía idea así que voy a variar los nombres nada más para ver si existe ya
por ejemplo voy a sacar una lista temporal
que va a ser el producto la lista de observador que necesito
actualizarla así que necesito setear le un nuevo valor por eso para que se
actualice y refresque si no no veo otra forma de refrescar esta lista por ejemplo aquí tengo voy a recorrer la
lista de productos [Música]
en tiempo y si existe si p punto producto name es
igual al producto que está ingresando simplemente
al producto le aumentó la cantidad en 1 esto está fácil ahí le voy a decir que
ya lo encontró entonces creo julián font fox
y aquí un fondo truck y break si no lo encontró entonces implica que
productos nuevos y la tengo que agregar a mi lista de productos
el valor de la cantidad de iniciales 1 así que está bien solamente le agregó
el producto que está ingresando y está y le asignó nada más para que refresque al
karlis carolis punto válido es igual a luís pero una lista nueva para que
refresque si no sigue siendo animalista no va a
refrescar product art
y ya está aquí ya tengo mi lista agregada lo que
pienso agregarle también es en el icono en el icono central botón central la
cantidad de elementos que voy a ir dando al carrito aseverando 2 aparece un
contador 2 así que voy a crear una variable observador que sea int ruta
ítems y la voy a inicializar en 0 que sean
observados y aquí voy a sumar voy a sacar electoral
ahora el total en basada en esta lista voy a hacer un y
como se llama el método expand tengo un experto
y tengo fault también para reducirlo voy a transformar los elementos de valor
iniciar va a ser cero osea necesito obtener valores enteros
necesito aquí decirle previos válido no me dice ten
el elemento que está elemento quantity más el elemento previo que el inicio 0 y
va a ir sumando todos los quantity entonces ya tengo el total simplemente
actualizar el total hay temps con el total listo entonces necesite escuchar
este tutorial light en esta da más y voy a ir a home
vamos a correr la aplicación hasta ahí que debería ser solamente
mostrar los productos y aquí es donde quiero agregarle un contador vamos a
ponerle a esto un stack puede ser no es aquí es y saldrá y aquí podría hacer esto y creo que me sobra uno está y aquí le voy a poner un posiciones
raid 0 child y otros circulaba tal pero en este caso más pequeño radios puede
ser 10 color colores pink accent y side con un contador por ejemplo 0 voy a
ponerlo y ustedes ven que hay un contador ahí
entonces simplemente necesito observar ahí este valor este cambio del valor
que puede ser con ops ex o ex y aquí necesito un viuda
y listo necesito traer el valor ahora del card controller
necesito escucharlo aquí ya lo puse en home bing xing findings y entonces card
controller aquí y esto va a ser un kart controlar tengo
acceso ya se cayó por qué me dice que estoy usando o vex este
error sale cuando uso o ex y no uso el controller usando mal entonces
simplemente validar aquí aquí en este texto si no en todo el
avatar si es que el card controller punto toral air en bali es igual a cero
entonces no muestro esto simplemente un 6 xbox swing sino si nuestro y tota l
aquí punto streaming grabó y vamos agregó uno y no pasa nada
porque no le estoy mandando el evento entonces aquí también necesito necesito
acceso al car screen donde es aquí no entonces voy a copiar me esto este
acceso al control entre el producto screen ítem producto
voy a escalarlo aquí en el pro de screen principal pero no distanciar muchos
controles ok car controller hasta aquí y
simplemente necesito un comeback aquí con tap y aquí necesito recibir el code account
creó un método aquí final voy al balcón tap y esto simplemente le invocó
aquí y ésta
ahora tengo el callback y ahora solamente el evocar control del punto de
producto y está es fácil
y vamos a probar ahí está uno dos tres cuatro cinco hasta
que cuento en total no entonces ahora solamente me queda irme al carrito y acá
debería mostrar sólo los elementos que agregado y refrescar el total entonces
voy a es cartes screen gabart escribe imperfecto aquí si puedo
usar ese es un style es ese su kart creado y es que acá tengo do s pantallas
no uno cuando carrie está está vacío y otro cuando tengo datos así que aquí es
buena forma de usar un ghetto get widgets voy a ponerle cal controller tienes cost
y que más el shopping nuestro está bien aquí voy a
decir le voy a poner un ops x también bewkes
tengo un si el controller
punto toral aire excesivo valió es igual a cero entonces muestro en ti
ante screen picart si no muestro fulcar fácil de nuevo el otro lado timbal y bajar la
aplicación y luego correr más mientras voy avanzando
tengo fulcar está aquí si me interesa me interesa seguir escuchando los
cambios aquí entonces voy a usar de nuevo un gateway & un kart controller
y necesita escuchar a este y aquí le poner un ops
bewkes y aquí en revolver
y aquí como ya sé que tiene elementos voy directo a controller punto es seria parte carles punto ley ya y acá obtengo
karlis punto value acá sería un producto que es un producto
art siyaka sería un producto ya no sería un
producto porque tengo la cantidad así que voy a pr ovocar lo cambio y ésta
acá sería producto voy a cambiar el nombre para que se lea
mejor productor product art entonces acá es productor punto producto y más no más fácil este le pongo producto
igual aprox y está hay un error que es producto de buscar desde el nombre
y ya estamos probamos y ok y carlo está vacío y no tengo nada
en el contador voy a cart y está no hay productos este
botón me falta agregar los dos shopping y voy a quitarle esto
no tiene acción porque eso está en las crines está en producto
identificar estoy pasando en shopping pero no estoy
pasando nada desde el home screen si no me equivoco y un shopping y no hay nada
aquí lo que tengo que hacer es decirle al control del punto index select o asignarle creo que no sé
si también puede asignarle directamente voy a decirle 0 voy a ver si funciona
y no funciona en shopping voy a salir y entró nuevamente para ver no no está funcionando parece que no
está pasando en este evento en shopping de paso karl screen one shopping no
e stoy pasando con shopping o bing shopping está
así si ésta funciona ya ok no hay elementos y yo agrego uno
debería mostrar en la pantalla ya no la triste
ahora sí ahí está mi elemento me falta utilizar la cantidad creo que ya está
creo que no y él es total entonces aquí también esté más y el menos debe cambiar
los valores y el eliminar también y refrescar el de abajo que ya está
escuchando el total no así que debería funcionar
miren se agregó otra más dos abajo y en el carrito dos también como son
diferentes voy a ir a otro cheese bacon 3
y ven que sólo hay dos aquí debería estar la cantidad nada más entonces ya
estamos bien que me falta
voy a modificar las cantidades aquí nada más fácil estoy pintando dos
directamente cuando puedo pintar el productor punto quantity puntos 2 3 y
esto era un widget texto cart punto quantity punto string listo
grabó y ya está uno y el otro 2 el botón eliminar voy a hacerlo de una
vez este creo que es este voy a usar y voy a que voy a pasarlo en que lo ha ga
aquí y aquí este sería un delito si voy a crear callback un delito
aquí le pasó h
le pasó aquí también callback honremos substrato voy a poner para diferenciar
del total de una resta sus track mejor un incremento un decremento
y como esta tengo tres curvas voy a pasarle
a este producto final white on the way back incrementa by night cold back
the comments y esto simplemente creo aquí parámetros en constructor
despuntó un decremento un incremento y está viendo error arriba por los
con decrementos y no le puse con el incremento
me falta aquí un decremento a un incremento donde comments todo estamos aquí para dos puntos ya es el
sueño y esta línea tengo cuando borra cuando
incremento cuando incrementa entonces aquí simplemente necesito
[Música] controller voy a obtenerlo así fin a
controlar igual a 7 puntos me quedo con el importe steinman es no
haber faith getz
find y aquí uso el canal controlar a ellas
tengo el control esté usando un tuit get wild así que no necesito esto tengo el
co ntrol simplemente control el punto del producto
y le pasó el producto aquí estos métodos ya lo tenía
implementado y ese producto este es un producto a cambiar de nombre y aquí
controle el punto debemos provocar y esta falta crear este método nada más
a implementar el remo fia déniz este va a borrarlo éste sólo va
aps voy a cambiar le cambió el nombre
incrementa dictamen más entendible ahora sí probé screen
seguramente error incremente scream incremente si comments
está y comentó que ahora el incremento lo
mismo que dice en el incremento vamos a
en copiar nuestra lógica carlsbad sounds si lo encuentro resto tengo que tener cuidado ahí porque si la
resta no está bien solo puede llegar hasta hasta 1 hasta 1 así
y entonces tengo que validar si punto quantity es mayor que 1 entonces
mayor que 2 tendría que ser mayor que 1 sería 2 entonces ahí sí pudo restar pero
si es 1 ya no puedo estar iguala sería igual a menos -1
y acá no tengo que agregar nada simplemente restar la cantidad
eso no me i mporta y simplemente refresco la lista lo que
sí necesita es este método para volver a recalcular el total el total de
elementos y el total también necesito el total en costo así que voy a crear otro
método aquí que sea void calcule lecturas y voy a pasar esto ahí le pasó a la lista de productos tiempo y esta boya invocarlo nada más desde el
método incremento le digo y es el de carmen también
y ésta deberá recalcular y cuando elimine el producto simplemente que
tengo que hacer fácil algo que estoy viendo es que si estoy
restando es porque el producto ya existe entonces sé qué producto es lo que puedo
hacer ahí simplemente es esto está más fácil
ah no pero necesito encontrar el producto de todos donde las nuevas
también ya me puse a pensar
es que desde aquí yo tengo el producto no necesariamente el producto así que es
más fácil aquí sé que estoy añadiéndole un
elemento más el cual está aumentando no no tengo que buscar si aquí existe así
que vamos a cambiar esos métodos aquí vamos a vol ver al at esto suele pasar es que lo estoy
haciendo así la abuela no lo tenía planificado nada y aquí voy a crear otro
incrementos que sea productor de producto y este también va a recibir un
productor el de clement y lo único que voy a hacer
al producto sí creo que como tengo mi lista que es
carvalho a este producto voy a quitarle la
cantidad 1
estoy utilizando el objeto y así que necesito simplemente refrescar el mismo
objeto puede ser así
tengo que asignarle un list from para que crea una nueva lista y re actualice
así que por eso que lo hago yo acá el vídeo calcula el total
y acá el incremento sería igual pero con más
y product art sería un más aquí
y listo incremente más calculadoras está bien del producto va a ser simplemente
agarro mi lista honremos por entonces y tengo un método
aquí remoto así tengo reeducar directamente
y vuelvo a calcular el total si tengo un método para para quitarla
directamente y supongo que esto notifica hace un jet sí y creo que ya está probamos primero tengo que probar el incremento y
funciona haciendo esto así que vamos a ponerle las acciones a este método del
cars green esto es incremente a no producto sino
producto está y vamos a darle acciones entonces aquí
en el botón este es el problema entonces aquí tendrá
que invocar al de listo yo no está en el contador dónde está su primer producto necesito
el menos del más donde está voy a buscarlo por ahí con su rebufo que estás no hay causa está aquí está
enap este es el counter y estaremos entonces
este de 0 decremento this comments y estoy a hacer el un
incremento y el dónde está el de el tacho en esta
tacha aquí está kraft estoy hacer icons punto del
esto es y aquí le pongo un delito listo probamos y más ha funcionado
3 - ja se fue no hice la validación y yo no tengo productos no está mal esto
es la validación pues claro estoy restando nada más aquí si mi producto
carl punto quantity voy a salir es mayor que 1 entonces sí puedo
restarlo para que llegue a 1 sino una buena y está dentr o estamos no hay nada voy a cambiar a dark y agregó uno está voy a aumentar aumento
miren el contador de abajo como aumenta también está escuchando bajo bajo bajo
el contador también refresca ya no puedo dejar más que en uno perfecto de lo que
quería si presionó el remo debería quitar lo perfecto y voy a agregar de
nuevo voy aquí voy a agregar 5 si hago un remojo debería quitar todo
está perfecto contador se refrescó también abajo listo entonces que me
falta al total no refrescar el total pam pam
tengo varios elementos aquí y cómo calcular total fácil bueno ya que tengo
este cálculo y todos tengo uno para el total de elementos y necesito otro para en total price voy a ponerle que sea un
doble este va a ser un rico sabor 0.0 y que más aquí tengo que calcular y
tórax un folk también si uno va a ser pero de
davos aquí va a ser final todas las pruebas es igual a
en punto fault va a iniciar el 0.02 y es elemento punto quantity por elemento
price por producto price además el previos
vaya lis to y le digo ahora price es igual total que ponerle aquí para diferencia
el nombre esta simplemente necesito escuchar ahora
este esto broadprize donde en el cart screen
veamos el shopping delivery aquí está solo este nada más este widget
ibex ciudad y aquí pongo
en controlar controle el punto en contraste
tengo acceso al controller no estoy en full cars y si tengo entonces debería
ser un toda rice
punto vale punto
no me está yendo caso voy a sacar esta variable y llamar aquí al final tour al igual
controlar punto toral price punto palio y le voy a pasar a tu string
pixel con dos decimales y ésta
no me sale no es usado creo que hay otra variable toda la de aquí me estoy ignorando allá me estaba
ignorando por esto ya está 00 está mal vamos a agregar un elemento para ver si
recalcular ahí está ahora sirve cálculo 20 + 58 voy a eliminar esto para que la
suma sea más corta 20 78 98 perfecto aumento uno más sería 118 está bien y
creo que hemos finalizado ya es tarde también tengo el carrito voy a si no si
está bien está grabando a la que asistirán ok entonces voy a la pantalla
de envío para que podamos ver el resultado final
que entonces y costó trabajo sí porque son varias
cositas no conocía qué ex tienen buenas cosas sin embargo hay errores que son
difíciles de identificar porque está muy está recontra basada en arrestar en
streams soviets y es un poco difícil a veces encontrar un error
el tema del navigator navigation no me gusta que quiere que se pueda usar
se puede navegar desde el control o mostrar la uar del controller imagínense
mostrando la capa de datos vieron cuando nuestro repositor y la implementación
y ustedes van a pensar que no hay problema pero internamente pondrán su
presión y tarjas luego se va a caer todo así que tienen que tener cuidado ahí
porque quiere que esa libertad de esa facilidad que ustedes cuando recién
empieza simplemente le usan y les parece fácil sencillo dicen o qué maravilla
pero cuando hagan pruebas militares cuando van proyectos más c omplejos
profesionales adicional cuenta que hay un problema está bien como de práctica
recomiendo derex para gente que ya conoce un poco más de declarar the state
management cómo funciona por dentro para que puedan identificar errores y hacer
darle un buen uso no porque si no se imaginen
y al final con cualquier este imán en ustedes puede lograr cualquier solución
esto final se puede hacer comprobar el confiar el blog como uex con lo que sea
es libre elección ustedes pueden usar el pacas que más les gusten o simplemente
les doy de observación hay que tengan cuidado con el ex y recién empieza
porque pueden cometer muchos errores entonces empezamos un poco a ver a hacer
un repaso de esto déjenme reducir un poco el tamaño
y ahí está ahí estamos entonces empezamos aquí
empieza con el splash empieza a cargar hacer un facebook quest de tres segundos
tengo un toque entonces ya tengo un usuario válido me regresión al home
me carga los productos usando una ip y también fake de productos tengo a quí mi
usuario muestra una información el just your name el nombre la foto
puedo cambiar de destino todo funciona perfecto aquí no simplemente está
pantalla no tengo productos web shop y me va acá
voy a dar modo todo cambia perfecto agrega un producto aquí a ti se agregó
un contador aquí estoy escuchando sólo esa parte voy aquí al carrito y puedo
agregar aquí productos quitar productos el contador se va aumentando el total
miren este 20 sólo es el precio del producto y qué más tengo el botón de lit para
borrar elementos ya limpie mi carrito y voy a agregar otro otro otro otro cuatro
elementos aquí 98 bien la suma bueno quieren sumar ahí no puedo quitar más
elementos y puedo agregar los que yo quiera puede eliminar productos del
carrito y listo todo usando gestión de estados cuando quería que usando print
arquitecto ustedes vieron cómo se pare las capas es más fácil de testear así
puedo hacer la implementación como yo quiera en este caso simplemente es en
memoria pero ustedes pueden lla mar a su hija y estoy usando ser preferente
también y ustedes pueden usar otra el plugin para guardar información hay pero
bueno es información súper básicas y que será preferente perfecto para eso cuando
no maneja mucha información y bueno eso fue todo creo estoy aquí voy
a hacer los out y tengo el login si yo pongo cualquier
dato no está validando solo idiomas y steve jobs así que el error está el
snack bar de get y eso no estaba personalizado ojo a uno
de los problemas de gerets que yo comento es que cree que tiene muchas
cosas dependen mucho de muchos widgets de flager no es como un este es más que
normal que depende de clases sólo de the state management the chain notifier
streams no si no queréis depende de widgets también y ahí hay un problema si
hay un breaking changing de algún widget grace no va a compilar porque quiere
extraer widgets integrados no el snack bar hediger ex es personalizado nuevo se
leen de verdad que ya provee flyer porque elena porque pruebe flores
depende d el ska food y queréis no lo hace dependiente del ska full
por eso lo puedes usar de cualquier lado igualmente con los no sé si muestra un
botón si no estoy seguro pero depende de widget así que hay que tener cuidado ahí
me hubiese gustado que mejor los separen que sean pacas de get state management
yet navigator yet widgets sería chévere y solamente usan lo que necesitas
y bueno veamos a ver voy a lograr me con steve
jobs ahora tres segundos carga aquí un segundo
muestro el listado muestro el carrito no hay
voy a mi profe aquí y listo ahora voy a salir de la aplicación me toquen está
grabado no es cerrado sesión si yo vuelvo a entrar no me manda el login si
no me manda al home válida internamente y me manejo y bueno ese es el resultado
espero que les haya gustado esta semana estaba full trabajos estoy a full voy a
ver si me de tiempo para hacer más chalés estos días que viene y dejan sus
comentarios que les pareció estuvo fácil difícil que les parece que eres el
gestor de estaban a gus to ustedes y los leo muchas gracias y no se olviden de
compartir el contenido y darle like y nos vemos en el siguiente vídeo