We've now got an introduction to redux.
So it's time to make a little more complex application something that we'd be proud to deploy to the
App Store.
Now there's one major feature that we still don't really know how to handle yet something that is absolutely
necessary for being able to make a compelling application and that is navigation.
The ability for a user to move around to different pages in our app and see different content as they
navigate around.
Now we did already kind of you know toggle in and out some components when we were working on the authentication
app but that was a little hackish you know we had like an if statement and we conditionally returned
some amount of GSX.
Now that's OK for very simple navigation to make something that will scale to a very large application.
So we need a better solution for navigation.
We need one that is going to scale to an app of many different pages.
So that's going be the focus of the next hour we're going to work on or going to figure out how to navigate
user around in our navigation in our student in our application correctly.
So let's start the application or the installation of a new Riak needed project and then we'll discuss
the app that we're going to be making.
So I'm inside of my general workspace directory here.
And I'm going to make a new project by using the re-act native Seelye so I'll use re-act native in it.
And I'm going to call this app manager so well that installs.
Let's take a look at a mockup for the application that we're going to build.
Here we go.
Now this app is going to look a little bit small you know only four screens here but trust me trust
me trust me please trust me there is a tremendous amount of hidden complexity and challenges tucked
in here.
So even though it looks almost small we will absolutely have our hands full.
And you are going to learn a tremendous number of new concepts.
The idea behind this app is that a manager of a small business can add their employees.
So like right now we've got to sample employees of Sarah and Jeff and then designate a schedule for
them.
So like maybe a shift starting on Monday and then text that schedule to the particular employee.
So definitely a practical use case here if I was running like a small business like say McDonald's or
subway or something like that.
And I just want to manage the schedules and while all my employees.
And then once I set the schedule I want to text it directly to the employee.
So that's a pretty darned practical use case here.
So let's walk through each screen really quickly and then get started in the next section.
So on the first screen we have the log in screen.
Yeah.
You know again we're going to tackle authentication here.
So the log in screen is going to be just like the one that we made previously.
A user has to enter a email and password.
We're going to use the same trick we had before where we don't have a separate sign up screen.
You know we're just going to have a single log log in form and if the user doesn't have an account then
we'll just make them make one for them right away after a user logs in they should be presented with
a list of all the different employees that they have.
So of course this list screen right here this employee list is going to start off as empty because by
default a user does not have any employees only over time after they start adding employees will they
be able to you know see some number appear here on the screen on the on the list.
The third screen here has a little bit of a dual purpose.
And this is going to be a point of just a tremendous amount of discussion here.
This third screen is going to be used kind of both for both use for both creating and editing employees.
Ok so like kind of one form that is responsible for creating employee and also editing an employee as
well.
And you know again we're going to have a lot of discussion about how to best handle creation and editing
of resources.
Finally a manager sometimes you know they got to make they got to make the tough decisions.
And so if they decide that they want to remove an employee or kind of like fire them via the fire button
down here we're going to show a big modal message to the user and say Hey are you sure you want to fire
this person and they're gonna have to click yes or no to actually remove the employee.
OK.
Again this might seem like a small application but believe me there is really a lot of hitting complex
in here.
A lot of very good lessons to learn.
So let's continue the next section and we'll discuss what some of these challenges are.