Building Android Applications with Jetpack Compose

Peculiar C. Umeh
Android Developer

Video 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.