Building Android Applications with Jetpack Compose
Peculiar C. Umeh
Android DeveloperVideo Transcription
Good day, good
afternoon or good morning. Wherever you're joining me on
this session,
my name is peculiar to me and I'm glad to have you join me for this session today. OK. I'm going to be picking up my slide so we can get straight to the topic I have today. Like I said, my name is Pecky Leo. I am an Android engineer
and today's in this station,
I want to give shout out to our sponsors and we take
organizers
for this opportunity. I'll be taking you
through the topic, building Android
application with Jetpack Compose. Last year, I, we looked at
building Android app last two years. We look
at good Android application with uh with
uh comparing Java and Cole. And this year we have a new awesome uh topic
for you. And that is building Android application with JPA Compose.
OK. I'm going to dive deep to find out and to tell you a lot
about jet back composes. OK. Now Jeda
composed is yeah um modern, does it new and is modern tool kit for building native
Android UIs
with Jet Park compose. You can build beautiful responsive, flexible
uh user interface
using a Declarative programming
model. OK. In this session, I will guide you through
the process of building an android application
using jet back compose. My session will always be more of practical. OK.
So I'm going to guide you through how to develop android application with jetpack compose jetpack compose, makes it uh develop
building uh android application more easier,
simple and
is awesome. So not wasting time, I'm going to show you what would be working on in this session. So club the next
one in this practical session, we're going to be building just a simple application just to show you how to use
uh Jet back composes to build Android applications in a more concise, easy and
using just
simple uh intuitive uh centers.
OK? I'm going to stop sharing
this while we go back to Android studio to create a new project and we'll talk about Jetpack compose in, OK. The next coming up would be my Android studio in this Android studio for you to be able to develop or build an application using jar
compose uh the perquisite. What you need is an Android studio and you need Android studio, Erratic Force or delete Android studio. Um But I presently, I'm using Flamingo, then you can for your current, you're going to have co one point
five or the letters. So once you open the address that you need to just to get to new project
in the new project, you're going to use an empty uh jetpack compose uh template which is already here for
you in Android studio DS S is for
you to be able to have the dependence uh for the you to get all the dependency necessary for
you to work and build the
application with ease. So I'm going to click uh name now like the sample of application we will be working on. Like I showed you is just using jet back compost to show a list, a list of courses that maybe a pro programming languages or just courses that you want to learn for a certain period of time. So over here in the Android studio, I'm going to just
give this uh
a name. Let me see, learn.
Uh Of course.
So I'm going to click finish.
Um Think that something happened. My, I'm going to share that again in my
Android studio. So we give uh Android, we give it some time to be to come up why
we continue with um They give us to address
just a few
time. It will come
up complete with adding the dependency
and and the rest of them and get the platform environment ready for
us. So like I said, for you to start working on, you are
using jet pack
compose, you need to do what create and use an empty com composed activity template, the composer activity template, like I said will create a project with necessary dependency and basic composable function that displays hello, hello android, not ha
but this time is
hello android. OK. I mentioned composable function in jet back composed. We use most uh composable functions. What are composable functions? Composable functions are building blocks of jet back composed. Uy A composable function in co uh does is a, is a co function that returns what A U I element. OK. The composable function are notated with at compose a notation in SML. We when we use SML for uh developing android application, we don't, we don't use uh a notation just where you
want to build uh write a function.
But when you are using like maybe dependency injection
or something,
you can add
maybe
some annotations, uh some other things you want to use, but just to build a simple U I that doesn't need
much information on, on, on a, on a screen. You might not really need to annotate anything except you not want to go into like um
you add in a
room database and all the rest. So
uh project is ready. Let's look at what we have here
and
compose. Compose has made everything just so easy. It has created a simple, just simple project
for us. Now
let me show you one thing about compose that, you update it has a live update, so you update whatever you're working on or any code you are added to your, to your application, it's updated live and that is what we are going to see when we use preview. Now, what a preview to see exactly what we have here
on this. Oh I got that. Uh Yes,
it's a normal thing and
it's saying that this happened and fail application Java like a grid do Java
is part of Android. So all you need to do just come over here and SDK location, you get to grid do set up and you change this two
17 just OK. Let me use 17
and you just hit OK.
And OK.
So re review this again. Everything
would be all right at this point. Yeah, we will give it a few minutes to come up.
So we're going to see a composable function that is displayed on this
uh sample we have over here. Let me look it up again. Yes, over here.
Now this is a composable function. A composable function is that it can see is annotated with words at composable. And the name of this function is greeting. This greeting has a parameter name and then a modified which
is a course modify. I will
talk about that as
we move along as we move on in this section.
And then it has what a composable what elements in it. So this is an example of a composable portion just like I said earlier. That's com uh comp compose you have live updates. So what we going to happen is that I would like to see what I'm working on or what is um exactly all the code I'm have. Now my U I is going to look like in a real life device. So I'm going to just refresh this for me to be able to do that. I'm going to add preview this preview will help me see how my du I will look like in the real life device. Ok. So I'm going to use the uh preview over here and I'm also going to use the real life uh device. So you can be able to see uh what you are working on. OK. So we wait for that to
come up while we look at and you don't need this, I don't need at this point and I don't need this now, I will add them later when I need them. So
is coming up. So over here you've seen that this is called a composable function. And I made mention of something I talked about this composable function has a parameter. The parameter, the parameter is what that this part that the greetings takes is a function that takes in a name parameter and also a modifier too and then returns a test like you can see a test U I that displays a uh a greeting message. OK? If you want to change how this test, this test you are seeing here look like or appear or does how your U I look like you use what we call modify. So let me tell you about modifier, what modify modifiers? I used to do what to change the appearance or the behavior of a composable element modifiers of portions that are called on a composable element using the dot operator or you just need to do to add dot operator. OK. Maybe operator, maybe padding or the size you want to change the size of that uh composable element you, you can use
uh dot uh maybe front dot uh you
can add uh I mean this side, the U I, the arrangements in the U I, how do U I will look like you can use that fix mass uh
size or
something? So let's look at what we have here already. OK? Like exactly what I have here if I want to, if I don't want to use this modifier over here, OK? I can actually remove it from here and then I will use it on the body of, of the test to modify, to modify this test. OK. Now, like I mentioned, the preview has shown us. This is just what I have here. Hello world. That's what the preview has shown us. Forget about this because we may
not need it,
need it. If I also wrote this on the physical device which I, which I'm going to do at this moment, you will see that on this. We have just hello uh android, that's only what we have. But for us to move ahead in this, I like I said what we are working on is just
um
a simple uh application that accepts uh that shows displays list of courses. That's what we're going to be working on. So I don't need this. Um We move ahead to stats building our projects. OK? So I have, I want to work on a just simple list. Like if you look at what I showed the, the other slide I showed the sample data, it has a test, it has uh uh test field and um a button, the test field you I, I, you see there in S ma is called it uh edit test. OK? But over here in compose is called a test.
Um
Few. So what I need to do is this, I have to have this at the back of my mind that I will need to use the uh the, the best practice by uh creating a package called a presentation package presentation. So inside this package, I'm going to decide on what I'll be working. Uh the name for the app I want
to use. So I'm just going to create a file unless um I think I missed that. OK. Yes. Uh
let's say uh let me call
it uh L uh course. OK. OK. This is just
like what I explained over there. We have, we had the uh a function that addresses the create state for, but now we're going to create this function on our own. So I'm going to start by having OK, I like this way. Compose. Then I get uh at compose added like I explained earlier earlier, that is a composable function is annotated with at compose. So let me call this function learn.
Mm course.
OK. Yes. Now just like we saw greeting, greeting was a function we saw over there and inside greeting we had we had a composable element. What would, what was a test? So in the same, we are going to be creating composable elements here. So I'm going to start by creating one. I'm looking at the U I don't forget I've already
shown us the U I of what we are going to be working on at
the end, what we be achieving at the end of this. So I'm going to create composable element called test. OK? So this is, it will take a parameter. Uh It will take string and then I can call it. Uh uh let's say list
oh cause this
OK. Now if I preview here, I will not be able to see anything. If I try, I will not be able to
see anything. You know
why the reason is because there's no preview. I didn't add anything about a preview over here, so nothing will happen. So what I need for me to see on the android to the what and I have this update for me. Uh have the live update. I'm just going to have a review a preview for this function. OK. Let me call it learn.
L uh uh cause
three view. OK? So for this to be able to work, I'm going to annotate this with a preview
at preview.
OK? You see it's updated immediately. So then I'm going to call this function over here so that I will see
what I have worked on learn. Uh
Of course, automatically, this is going to preview for us to see
what we have achieved. At this point.
I will give it a few minutes for that to happen. Exactly. You can look at my address. So you're going to see list of courses that the a composable element that I just added. OK. So we'll move on to remember I made mission of modifier and I said that we can use modifier to do what they are used to change the appearance or the the behavior of a composable element. And I said that modifiers a function that are called on a uh on a composable element using dot operator. So over here I am going to call
use a modified to so make ah
and another another thing about compose is once you click on this, you bring your cursor close to this uh test this test field. You can see all the parameters that this test. This this test can accept we can change, increase the size the color you see the modifier, you can use this modifier to add the padding and the rest of them on the test. So let's just add, increase the
size. We're going to use uh, font, font size because I saw you can accept yes, font size.
Let's make the font size like 17 dot DP. We is not here and calling you just add DP close to this, but here
you add the DP.
Let's see why
we have uh this. Ok. Um ok, we'll call that again. I am going to come back to that again. All right, I'm going to add that again. That is not then. Ok, we'll allow that to you. All right. That's
done. So let me use, modify here. Let's
add modifier,
add, modify
and um what? Oh, that's changing the modifier. I use this one uh more the fire or the fire. I used this for the U I dot
Let's add pardon? Like I said, the pardon,
let's say the pardon is, let me add pad and top pad and top should be, uh, it goes to, let's say ST dot D
P. Ok. So this is what we've been able to achieve using the modifier. Like we talk about composable function and modify. So we're going to move ahead for us to have a better way. Does the better way to us to arrange, uh I I in a more organized way is to use layouts.
Ok. What is a layout or what
are layouts? Layouts are used to do what to arrange composable elements
on
the screen, there are several in built layouts in jet back compose, we have um column, we have row, we have bus and then there is constraint layout. OK? And this what we are trying to achieve to build a list of courses, we are going to use column. Like if you go back again to the sample of what we are trying to achieve or the app we're trying, we're building, you will see on that sample. I have a test, we have added a test and I have uh a test field and then I have uh what's
uh
a button. So now for me to be able to have all this in one place, I'm going to use the column. That is one of the layouts I made mention. Um let me uh put that out and then add a column. I have column. OK? And then the next one I will add,
I will add back the test.
So in this column, because I have the next thing I need to add is what I call a AAA test. You is better for me not to have everything jump back together so I can use um a spacer. I need that space sir. Then add modifier to modifier. So I can have a space in between the
OK. I use modifier. Do uh P
OK? Let me
use pardon of uh let's say HDP
Awesome. So the next I have on the, on the, the sample I showed us earlier is uh test field and a button by the side. OK. So how do I achieve that? They are just a distant line, a horizontal uh arrangement. So I can use like column is used to arrange things vertically. Why I can use row to arrange uh I mean arrange composable function vertically. I can use row to arrange
composable function on a horizontal
manner. So the next I'm going to do is to add or test fee. I prefer using outline, maybe outline test fee and outline button. So I'm going to
grab my outline arti test view. OK. And OK.
So over here, I'm seeing some, I have some, I have errors. What does that mean? If you look at the error I have there, you see that the value is showing an error mean, meaning that that value needs something. Let's get back to uh XML where you have ad test ad test, accept input the same way we test you test you accept in uh in. So the value is talking about is referring to the input that this test is expecting to get. Now, the next one you can see there is on value change. Now, what is, what, what does that mean on value change is called whenever the there is a new input in what in the test field, that's when the on value change is called the unvalued change. OK. Lender returns a new value that you can use to update the test field state. OK. I'm going to say that again. I said that this unvalued uh change. You are seeing there an value change. Lander returns what a new value that you can use to do to update the test field state. I just mentioned this. So I'm going to say a little bit about state before we can move on. Now. State in and up is what is any value that can change over time? OK. It's any value at all that can change over time in your application.
That is
the, the
the state is just a very broad definition. OK. This is a very broad definition. Encompass everything from maybe a room database to a variable, a variable in a class. I can say that the state is used to do what to store or update the state of a composable element status is declared using the word the remember function which creates a mutable uh mutable state object that can update using the set, update
uh the set state
function. So we're going to go back, I'm going to uh uh show you how this has been done on
the
Androids. So over here, like I mentioned, I'm going to create a value for this a variable for this value and I'm going to call that bar. Uh let me say vowel test, test value. Uh This test value
will be equal to remember,
I I said something about remember that we use it. So I'm going to use state at this
point, I can say by remember um this, so I will use mutable state of me state of
and this is going to have an empty
string because um I have seen errors here. We're not afraid of these errors because we see them. Uh when you change this value, you see them. Um Let's find out what this steroid is saying, talking about distinction. Uh OK. OK. That's just done it done. First, let's use a coo then the error goes away.
So I will then on this value, I'll call the variable that I've just created
here over here. Now, uh I still have uh here.
So over here I can then add
col uh color bracket and said, OK. New. Oh, well, new uh C OK. C value. Then like I told you about the state and the lander will be equal to this test view test value. Then it cost to the new ah a new value. OK. Ok. Let's see the argument that that's is showing we are having a
few errors
that we are going to fix
without wasting
time. OK. Let me see what going on. Why we have the error over there. Uh OK, let me change the variables for this to be. Bye. And then because it's the least is a lite I report to that get that station which is not exactly what we need. Uh this flight. It's about state value, we can change this to which state of OK? Room set. That's why we are having the the error. This is not right. You chose the wrong thing. This is notable state. Oh And then we have uh OK, I'm going to and put that then check it again and import that. And all the error is expected to go away at this point. OK? I'm going to add that.
So without wasting time, we're going to look at what we have achieved at this point. Now, I can add some modifiers here to help this app. Uh O
I look more awesome.
Like if you can see
from my Android studio from the preview
updates, you see,
let's check, update that and see what we've done at this point. OK?
Let's
run it on a physical device. So you see what we have already achieved here. Just give me some minutes, we run that on physical device and then see what we've been able to achieve. So, but without
wasting time without, without wasting time, I can add an alignment for the rules so that everything can stay uh the way they're supposed to be and even also add modifiers to the column so that uh the size will cover the screen of the
applic of the, that we, we, we fix very well on the screen. And then I can add a modifier too. I told you what modifiers are used for. So I can uh over here. Uh uh um I can use, modify, right? Can use modifier to add the padding, uh the fire? Oh, ok. I can use um mo the fire. So I don't, I wonder why that's giving me the error, but that's the right thing to do. So I do this modify. I have more the fire. I want to, I want
the screen to feel the size,
uh that what I have on this to feel the size of the screen modify. Do I will use few uh max size? Then I'll use one of. OK. I can also add um I can also add padding. Um Pardon? Um Then uh p let me see if party starts uh P start, which is uh let's say CD P and I can add the PA uh and OK. Uh which is uh it is also used as uh the D
P. OK? So we'll move ahead to work on this. So we went to go ahead. The next thing is to add the, the button at this point. I can use a row because you see they were
arranged horizontal. I told you that rows are also use. Um Yeah,
so I arrange things I can put this. I prefer
doing it out that way. There are many other ways you can do that. I want to add row. OK? So in this row, I will add the, but then I will add the button I like at line. So I'm going to use a line, a blind. But ok, here in that line,
but I'm going to use a test composed uh a composable element test. So I'll be able to add
uh add,
oh no, there will be an error there.
So I say o
awesome. So let's check what we have worked on on a physical device to see exactly what we
are dealing, how it will look like on the physical
device. But over here on the preview section, you can see exactly what we are trying
to achieve. But I'm
going to connect a physical device at
once, book and that our time and we can go ahead connect a physical device also. So we can see.
So if I put down the Android studio on my slide, I can pull that
up again,
you will see that the next thing we need to, what we've achieved is this. So we want to achieve adding, how do we at least OK. List
on, on,
on, on using compose. Now, at this point, I would like us to compare adding list using Cole and then using uh compose and compose. It just very, very simple to do that. If you look at the code, you have to use Recycler view. OK? Recycler view. Um And Jet back compose are both tools that can be used to display list in Android application. But they use different approaches to achieve that. That's one thing about they use different approaches uh to achieve that. Now, let's look at uh to achieve this. OK. Let's look at Recycler View for Recycler View is a U I component in Android studio that is used to display a large data set in a
list or a great format.
OK? It is a part of what's called Android uh framework and it's implemented in java and also in Collin, OK. It's uses uh it is used with what an adapter. This adapter provides data to be displayed and handled and handle the uh handles the crea creation and then data uh view. Now to use Recycler view in Cole, you would create a Recycler in your
uh in in layout
S MLS ML file and then create another class that adapter class. Now that is the Recycler view adapter. The, the adapter class would define the data that's to be displayed and handle the creation and binding of the views. You would then set the adapter on the Recycler view and your co code. But in compose it just very simple and straight to the point and compose you just have from post provides more concise and intuitive way to build U I compared to the traditional Android layers, OK. And compose in JPA compose, you know, you would create a composable function that defines the U I for your list and use the lazy column or lazy lay uh row, lay out to display the list, everything you don't need to create another class or anything, everything can be done in that.
Just one class, we created one file we created, we created OK? The laser column or laser layout creates and binds the view as needed. OK? Which makes it more efficient. And then, and then the traditional way of using adapter and Recycler view and, and the rest of them if you have time, I'm going to show you exactly how this can be done. OK? But now let's look at uh compose uh using a Recycler view and then using compose in terms of ease of use. And then the development speed jet back compose is easier and faster to develop compared to Recycler view. You know, this is because you know jetpack compose what it does is that it uses a more concise and intuitive center. I've mentioned this before and it has the the creation and the binding of views auto automatically unlike using uh what's it called using a Recycler view. Now, when you talk about in terms of performance, also this one compose is also considered to be more efficient compared to Recycler A. OK. This compose uses it uses more efficient layer system. That's one thing about it that creates and bind or confuse needed which reduce memory or usa usage and then improve work performance.
However, the performance of Jet Black compose may depends on the place that's complicity of the U I and the number of the item you want to list on that U I so that you're also going to take note into
consideration why when you're working on your app. So
I'm going to have said that I'm going to pull out uh and address again so we can continue if we still have the time. And don't forget if you have any questions for this session, feel free to drop it on the chat section. I will attend to that if you have that time. OK? Now, what I'm going to do at this point is to do what is to create a list, show you how to create a list using jetpack compose. So what we need to do, we want to display the list of courses. OK? So I'm going to start by doing this. I like using uh a card. OK? So to not have it model up to look nice. So what I just need to do is to create a composable function. I would say a compose this, make it faster for me and I'll call it uh course what's card I prefer using card so that I have uh things need
and more organized for my, for my um
on my U I. So I'm going to use, I said earlier, trust me, I like using outline. I'm going to use an outline card also here. OK? All I need on this card is just just the card. That's all I need it. Just the card thats all I need. I don't need a lot of things on the card. So I just create
the card and then make use of it.
But then I'm going to have add a parameter to this card and the parameter uh what it is going to take would be uh cost type a
small
letter cost title. Let's also uh cost title. Look at the name conversion uh conversion when we are building a android application and this uh cost title is going to be a string. OK? So over here, I'm going to create use a test. Uh I mean a composable element. Oh no, I typed the wrong thing. I'm going to use a composable element which takes the string I have over there and that string is one cause
uh ta two. This is what this is going to
take. So the next for me to go about, I'm going to, I'm just looking at my time is, is what the next thing to do is to use, create another composable function. And this composable function would be for uh lazy Colombi because we want to display a list. OK. Uh Let me send this
to a physical device
so we can see how it look.
I can pull out a physical device. Uh OK. This physical device we can see it here. Put that out again. OK? I can see it here. OK.
OK. The next thing is to use, create another com
composable function for uh
this, I'll call
this uh lazy, let's say
learn.
OK, can learn of cause
la then a cost
list that will help us to, you know.
OK. So in here now I'm going to use call my lazy list.
Uh lazy, I mean not lazy, lazy
column to display
the list of the items I don't need this moving from here. Awesome.
So the next is um OK, so create the list, the list of the item that I need at this point. So how do I do that? I'm going to create
what's a valuable
a variable and this variable should be able
to accept list
and I'm gonna quote that
variable. Um I like creating it up here. Where did I created the first one here? I have a variable. Oh That's right. Variable. Wow,
let's call it costs list whats list
and this, remember using the state. Remember what I said about the state? I will of course to remember remember at this point
because this is the
list. OK.
I'm not just going to use, I'm not, I'm not going to use me state list at this point. Now, what I'm going to use at this point for to get exactly what I'm looking for, which is uh is mutable state list of which would take a parameter
string. So let's add that over here. We have me, me Mr Bush state
list
of um type and make sure I got the right one because there's,
there are a lot of
them uh mutable state list. Oh Which state list of um make sure it accepts, accepts the over here a string parameter. OK? Yeah, that is awesome.
So we come back to the lazy column and we are going to add this on. So for us to see what I'm working on over, I'm going to call this lazy list
over here
in my in the column so that everything is going
to be arranged the way we want it. OK. Here inside here I add it.
Remember I can use spacer. So everything is normal up together,
use E space and then add some uh
modifier to give it uh a padding, a boat party. And then I can say just CD P
six OTP. OK. Then I'm
going to call the list,
the uh learn course, right? Learn cost list. That's what I need over here.
OK? So we complete this. Now, we already have a card. We have a cost title and then we have uh we have created a variable for a lazy column. So the last thing we need to do just to add up everything in the lazy column and we'll be ready to, to go. So the laser column will take item that di different items we want to see in the list. OK. So I can use items, items with S this that can take list. OK. Then I will pass the cost list variable
over here. I will pass. OK. I'm using caps and that you mean and that would take um OK, for one list, you know why
that didn't work because this cost uh la a cost list doesn't have the parameter. I'm trying to pass. That's why when I try to pass the variable that I've already created
over here,
it didn't work. So I'm going to add that parameter over
here and then this is what I have. Yes, it's a string. So in
this item, I can
then pass this over here. Then
we're going to get it one after the other. OK. Each list. So I can say cost that for one cost.
Um I New Zealander.
And then I'm now going to call this court card. This coast card will help me to get all the courses when it's been added in the test
uh
field. So I'm going to call postcard. Yeah. And this is going to
take just one course. Um I hope I got a spin. OK. OK.
It needs it uh create this. OK. Let's fix that. Now, what it depends on what I use over here. The cost I use, I'm going to comment that the item, the type of the item I I use if I select the wrong items because there are many of them. What you understand is about uh compose is that compose has a lot of inbuilt functions. When you select the wrong inbuilt function
to use, you are automatically going to get error, an error.
OK. So if you use the like the right one, you get it right. But another thing again is here over here, there's something going on. We are trying to get list of items. But if I should use this, just drink for the parameter that will cause a lot of errors. So what I supposed to use, I supposed to use list to tell this that what I'm trying to
get is a list and then I'm
trying to get list of strength at this point. So with that, if I recommend this, everything will just
be normal. Awesome, I'm having an error somewhere. So let's find
OK. This error is saying that you must pass something over there. And what do you need? What do we need to pass over there is the list is the cost list that we are trying to get.
So we have cost oh, does not pause
list. So at this point, you will see that everything is great. Now we're going to show exactly what we have worked on to see if actually this, we are done. But trust me, we are not done because we've not added anything for the on click for the button. So that thing, it will be easier for us when you add a value
and it will be uh you
will immediately see. But with that coming on, let's just have a look
at where we've gotten to at this point
and going to run this, I will close this. So we have it in the
real life uh device.
Ok. So what are we going to do at this point? So we can be able to manage the click action at this place? Ok. So we are going to tell the test field what we want, what we want. And I'm going to use an if statement to tell the test field that if a test value is not that that on the test field, if a test uh value is not uh empty that you call what cost list and then add a test value, I can also. Yes, that's exactly what we want to tell
the uh the click button to do for us the but to do for us. OK? So
at this point, we are going to see
if um OK, give
me some
minutes like uh the Android studio is running on the P trying to build on a physical device, but we can't wait
for that to finish. So we move ahead if OK, that's like interrupting what's going
on in the Android studio. Don't worry that will be uh that will come up, sir. OK. Is building the Unruh studio takes some time uh to build
and to complete its
build. That's what is going on here. So it's been great. Uh But uh whenever it's taking this time is
actually faster. OK, let's
continue and accept this to
happen. OK? So we're going to say the test value dot is not, is not empty. If it's not empty,
we're trying to tell, uh
we are trying to tell the but try to say that the ok, we say will reduce costs list, we call costly dots
at
what is he going to add is going to add cost? So that's exactly what he is going to add here. We're still holding on on Dell
and addressed to complete, to complete its uh build. It will add the new uh new what test value? That's exactly what you wanted to do. OK. That has been done. And yes, we accept the store. So in store, I make
this big and we will wait for
the app to be installed.
Ok? Now it is blank. You know why? Because a domen activity, we never call this function
over the in the main activity. See is, is open, is left open in the main activity. So all we need to do is to come back here
and call the
function line. Of course. Yeah, and we will run this app. So at this point, we're going to see what we've been able to achieve in this
session. So if you have a question,
feel free to OK to
ask. And as soon as this is done, we will achieve
our aim that the would be in the wrap up
for this. Just a few minutes. The android to do
sometimes take time. I don't know why it's taking time today. Normally it comes up uh very fast. Ok, we'll deal with it.
Awesome. This is what we've been able to achieve. So let's see if we can be able to add anything on the test fee. Let's add uh Android android cos one, let's add and see what happened. Awesome. We have the list if we have Android. Ok. I'm going to handle that. You notice that when I typed and I was trying to add another one. What happened? Every the first test I typed was there still there. So for me to handle that, I am just going to
add, I'm just going to add just a simple, just a simple uh thing to add at this point here. OK? I just say that this test value should be empty after adding the first typing in, in, in to give me an empty string after typing in the first one. If you rerun this again, I'm going to get what I'm looking for here.
Now, there's a lot of things we still need to do to modify to make
uh uh uh
everything look better. You can modify the text where this test is
coming from. This test over
here.
You can modify this text here and add a lot of things
I can add pardon around it.
Let's say modify can use, modify to add, to beautify it, make it fine. Um say um modify, say modifier, the fire but pardon? Oh That's pardon I can see this is E eight. Um It's uh DP.
OK, so if we run
this up, we'll get exactly what
we are looking for. So, thank you so much everyone for joining
my session. I'm so glad to have you and your time. Thank you for your patience. Also, I'm going to say thank you again for women. Take, make us for uh women's sake Global Conference this 2023 for giving me the opportunity to be able to take this session. Um Let's um add courses. Now see how our final results, what we have as final Android course list one. Um want to get more of that so you can observe awesome your eye cost list. Again, let me say cost list. True. Exactly. Another one
you see they are joined together
because I didn't add pardon on the card to separate them. I can also add pardon to separate them so that they are just on their own. So thank you so much for joining my section. Uh My name remains uh peculiar to me if you have any other question after this session or you want have want us to connect after this um session. You can reach out to me on um social media, connect with me on linkedin or 11 Twitter or Instagram with this name. Thanks so much for joining my session and see you next time. You can also want us to build a project together um available at all time to contribute to any project and walk you through. Thanks so much for joining this session. Bye.