Build a modern android ecommerce app from scratch | Kotlin, Firebase, MVVM

Land of coding
30 Jun 202210:06

Summary

TLDRThis video introduces a new series on building an e-commerce app for Android from scratch. The host guides viewers through the app's features, including user registration, product browsing, cart management, and order placement. Utilizing Kotlin, Firebase services, MVVM architecture, and coroutines, the tutorial promises a comprehensive journey for aspiring developers interested in Android app development.

Takeaways

  • πŸš€ The video introduces a new playlist focused on building an e-commerce app from scratch.
  • πŸ› οΈ The tutorial will cover all aspects of app development, from the initial setup to the final coding.
  • πŸ“± The app includes features such as user registration, login, and account management.
  • πŸ” Users can search for products, view details, select options like color and size, and add items to a shopping cart.
  • πŸ›’ The shopping cart allows users to manage quantities and view the total cost before checkout.
  • 🏠 The app supports multiple address management for shipping and allows users to add new addresses.
  • πŸ’³ Although payment integration is not covered, the app has a checkout process that includes order placement.
  • πŸ”” The app will include push notifications using Firebase Cloud Messaging.
  • 🌐 The app development will utilize Kotlin as the programming language and Firebase services for backend operations.
  • πŸ”„ The app will be built using the MVVM architecture pattern, incorporating the use of coroutines for asynchronous tasks.
  • 🌐 The video creator has already implemented support for the Arabic language, indicating multilingual capabilities in the app.

Q & A

  • What is the main focus of the video?

    -The main focus of the video is to introduce an e-commerce app that will be built from scratch, covering all the steps and functionalities involved in the process.

  • What are the initial steps a user encounters when using the app?

    -The initial steps include a splash screen, followed by options to register or log in. Users can register by providing their first name, last name, email address, and password.

  • How can a user reset their password in the app?

    -A user can reset their password by clicking on the 'forgot password' option, which displays a bottom sheet fragment allowing them to reset their password.

  • What additional login options are available besides email and password?

    -Besides email and password, users can also log in through their Google and Facebook accounts.

  • What features are included in the app for browsing and managing products?

    -The app features a home screen with product categories, a search screen, a cart screen to manage products added by the user, and a profile screen for personal account details.

  • Can users customize product options like color and size before adding them to the cart?

    -Yes, users can select options such as color and size for a product before adding it to their cart.

  • How does the checkout process work in the app?

    -During checkout, the app displays a screen for payment methods (though no virtual payments are implemented), and users can add or select a shipping address before placing the order.

  • What happens after a user places an order?

    -After placing an order, the user receives an order number and a confirmation message. They can also view the order details, including the status and other relevant information.

  • What personalization options are available in the profile section?

    -In the profile section, users can edit their personal details, upload a profile picture, and manage their shipping addresses.

  • What are some of the technical tools and architectures mentioned for building the app?

    -The app is built using Kotlin, with Firebase services including Firestore, Firebase Authentication, Firebase Storage, and Firebase Cloud Messaging for push notifications. The MVVM architecture pattern and coroutines are also utilized.

  • Does the app support multiple languages?

    -Yes, the app supports multiple languages, including Arabic, as mentioned by the video presenter.

  • What is the next step for viewers interested in following the development of the app?

    -Viewers interested in following the development should subscribe to the channel, turn on notifications, and stay tuned for the first video of the playlist.

Outlines

00:00

πŸ›οΈ Introduction to Building an E-commerce App

This paragraph introduces a new video series focused on building an e-commerce app from scratch. The host promises to guide viewers through the entire development process, from the initial setup to the final coding. Viewers are encouraged to watch the entire video for important information on prerequisites and to understand the functionalities that will be implemented in the app. The app features a splash screen, user registration and login options, password reset, and social media account login capabilities. The host demonstrates the app's interface, including product browsing, cart management, and user profile customization.

05:01

πŸ“¦ Exploring App Features and Development Overview

In this paragraph, the host delves deeper into the app's features, showcasing product categories, the ability to select product options like color and size, and adding items to the cart. The shopping cart functionality allows for quantity adjustments, with confirmation dialogs for item removal. The checkout process is detailed, including the addition of shipping addresses and the display of order totals. The host also touches on the app's profile management features, such as personal details editing and picture uploading, and mentions the inclusion of order tracking and notification systems. The development tools and services to be used are outlined, including Kotlin for programming, Firebase services for backend operations, and the MVVM architectural pattern for app structure. The host concludes by inviting viewers to join the development journey and to subscribe for updates on Android development content.

Mindmap

Keywords

πŸ’‘e-commerce app

An e-commerce app is a mobile application that facilitates online shopping, allowing users to browse, select, and purchase products through their smartphones. In the video, the creator is introducing a new series focused on building an e-commerce app from scratch, demonstrating its features such as product browsing, cart management, and user account handling.

πŸ’‘MVVM architecture pattern

MVVM stands for Model-View-ViewModel, which is a software architectural pattern used in development to separate the user interface and business logic. In the context of the video, the creator mentions using MVVM to structure the e-commerce app, which helps in organizing the code and making it more maintainable and testable.

πŸ’‘Firebase

Firebase is a platform developed by Google for creating mobile and web applications. It offers various services like Firestore (a NoSQL database), Firebase Authentication, Firebase Storage, and Cloud Messaging. In the video, Firebase services are highlighted as integral to the app's functionality, including user authentication and data storage.

πŸ’‘Coroutines

Coroutines are a form of concurrency design pattern that is used in Kotlin, the programming language used in the video for app development. They simplify asynchronous programming by allowing for non-blocking operations and are mentioned in the script as a feature utilized in the e-commerce app for smooth and efficient execution of tasks.

πŸ’‘Splash screen

A splash screen is the introductory screen that appears when an app is first launched. It often displays the app's logo or name and can serve as a loading screen. In the video, the splash screen is mentioned as the first interaction point with the user when they open the e-commerce app.

πŸ’‘Product categories

Product categories are classifications used to organize products within an e-commerce app, making it easier for users to navigate and find items of interest. In the script, the creator shows different categories such as furniture, chairs, and tables, which are used to categorize the products available in the app.

πŸ’‘Cart

A cart in e-commerce refers to a virtual basket where users can add products they wish to purchase. The video script describes the functionality of the cart in the app, including adding products, adjusting quantities, and checking out.

πŸ’‘Checkout

Checkout is the process of reviewing and confirming a user's order before finalizing the purchase. In the video, the creator demonstrates the checkout process in the app, where users can view their cart, select shipping addresses, and place their orders.

πŸ’‘Order confirmation

Order confirmation is the step where a user receives a summary of their order and a confirmation message after placing it. In the video, the script mentions that after completing the checkout process, the user is presented with an order number and a confirmation message.

πŸ’‘Profile screen

The profile screen is a section within an app where users can view and edit their personal information, such as account details and preferences. In the video, the profile screen is highlighted as a feature where users can upload a profile picture and manage their shipping addresses.

πŸ’‘Push notifications

Push notifications are messages that are sent to users through apps to alert them of updates, promotions, or other relevant information. The video script mentions the implementation of push notifications using Firebase Cloud Messaging as a feature of the e-commerce app to keep users informed.

Highlights

Introduction to a new special video and playlist about building an e-commerce app from scratch.

The app will cover all aspects from nothing to the last line of code.

The video will discuss details of Android development and new exciting features.

Viewers are encouraged to watch the video until the end for important prerequisites.

Demonstration of the app's functionalities starting with the splash screen.

Explanation of the registration and login process including social account options.

Forgot password feature and its implementation in the app.

Overview of the home screen, search, cart, and profile screens.

Product categories and the ability to add products to the cart.

Product detail view with options to select color and size before adding to the cart.

Cart functionality including quantity adjustments and item removal confirmation.

Checkout process and the addition of shipping addresses.

Order placement and confirmation with order number display.

Profile screen features including personal details editing and picture upload.

Viewing and managing orders from the profile screen.

Unimplemented features like track order and billing, with potential future inclusion.

Notification feature implementation and language support, specifically Arabic.

Logout functionality and the end of the app demonstration.

Overview of the technologies used, including Kotlin, Firebase services, and MVVM architecture.

Encouragement for viewers to subscribe and turn on notifications for Android development updates.

Transcripts

play00:00

hey everyone welcome to a new special

play00:02

video and finally a new playlist about

play00:05

what you all have been asking me about

play00:08

which is the e-commerce app and this

play00:10

video will be an introduction of the

play00:12

e-commerce app that we are going to

play00:14

build from scratch so we'll start from

play00:16

nothing until we write the last line of

play00:19

code in this app and i will go through

play00:21

all the details while i'm building this

play00:23

app with you so you will understand a

play00:25

lot of new things a lot of exciting

play00:27

things in android development so get

play00:29

ready and if you are interested in

play00:32

building such a cool shopping app for

play00:34

android

play00:35

so you need actually to watch this video

play00:37

until the end because i will talk about

play00:39

stuff that you need to know before you

play00:41

start watching or you start following up

play00:44

with this playlist so as i said make

play00:46

sure to watch this video till the end

play00:48

and now let's actually jump into the app

play00:50

that we are gonna build and show you all

play00:52

the functionalities that we are gonna

play00:54

implement

play00:55

okay so as you can see this is my own

play00:57

phone i have installed the application

play01:00

on my own phone and before that let me

play01:02

actually connect to my internet real

play01:05

quick because i'm connected to my camera

play01:06

now

play01:11

okay

play01:12

now as you can see this is the splash

play01:14

screen or the introduction screen that

play01:16

we are going to play to the user once he

play01:18

opens the app now when he clicks on

play01:21

start then we will move to this uh

play01:23

screen which will show two options the

play01:25

first option is to register and login so

play01:27

let's actually register a new account as

play01:30

you can see it asks the first name so

play01:32

let's type

play01:33

my name

play01:36

and the last name

play01:38

then i will type the email address

play01:40

and now i'm going to add my password so

play01:43

i'll just add

play01:44

any password here

play01:47

and i will click on register

play01:50

then it will take a moment until we

play01:51

register new account and we navigate it

play01:53

back to the login fragment now let's

play01:55

login into our account

play01:58

so i'm gonna type my email

play02:00

and then i will add my password

play02:04

and if you can notice that we have

play02:05

forgot password here if i click on it

play02:08

then we display this

play02:10

bottom sheet fragment and here we can

play02:11

just reset our password so we're gonna

play02:13

implement this feature as well and i

play02:16

also forgot to tell you that we can log

play02:18

in through google accounts and facebook

play02:20

accounts but

play02:22

because i have just created my

play02:25

account with email so let me just plug

play02:26

in within this account

play02:28

so i'm going to click on login and as

play02:30

you can see now we look and we logged in

play02:32

our account and now we can see the

play02:34

product we can browse them add them to

play02:36

cart let me show you all of this stuff

play02:38

so basically we have a home screen we

play02:40

have search screen here we can search

play02:42

about the products

play02:43

we have this card

play02:46

screen where we'll just show all the

play02:48

products that user added to the to his

play02:50

card and we also have this profile

play02:53

screen where he can edit on his profile

play02:56

he can add his image and so on we'll get

play02:59

back to this later so let's get back to

play03:01

the home screen and as you can see in

play03:03

this home screen we have categories of

play03:05

the product so basically for me i

play03:07

actually made this up for uh houses

play03:10

furniture you can also

play03:12

spread your own products anything you

play03:14

want

play03:16

so as you can see we have chairs here we

play03:18

have cupboards tables accessories

play03:20

furniture and yes so let's actually go

play03:24

and browse some products we have let's

play03:28

see this table

play03:30

so as you can see this table has a

play03:32

special offer

play03:33

let's go into this table and as you can

play03:35

see we display some images i actually

play03:38

added the same images

play03:39

so don't worry about that now we can

play03:41

select the color i also added any colors

play03:43

here i didn't care about that and we can

play03:46

select the size then we can add this

play03:48

product to our cart

play03:50

now let's go back and check our cart as

play03:53

you can see here is the product is added

play03:55

to our cart and we can increase the

play03:57

quantity as you can see now we have two

play04:00

and the price has increased as well also

play04:03

we can

play04:05

reduce the

play04:06

quantity

play04:07

now if the quantity already is one and

play04:10

if we try to reduce it then we show this

play04:12

dialog that are you sure you want to

play04:14

delete this item if i click on yes it

play04:16

will get deleted if i click on no it

play04:18

will stay and that's what i'm gonna do

play04:21

now as you can see i can actually order

play04:24

this uh the products inside my card so

play04:27

i'm going to so i'm going to click on

play04:28

check out

play04:29

and here we get to this screen where

play04:32

we'll just show the payment method

play04:34

however i did not add any virtual

play04:36

payments in this app you can implement

play04:39

that on your own

play04:41

but

play04:41

we can actually deliver products to the

play04:44

addresses

play04:45

we don't have any addresses we don't

play04:47

have any shipping addresses here so

play04:50

we have this plus icon where we just can

play04:52

add a new address now i'm going to add

play04:55

my address so here let's say this is the

play04:58

home address add my name here

play05:01

and add the street my address so i'll

play05:03

just type anything

play05:05

and here we add the phone number so just

play05:08

add any number and the city

play05:11

then the state and click on save

play05:15

once this uh shipping address is saved

play05:17

we can select it

play05:19

and then as you can see we have the

play05:21

total price of this order we have the

play05:23

products of this order then we can place

play05:26

our order and then we click on confirm

play05:29

now as you can see this order has

play05:30

completed and we have our order number

play05:33

here which is six four two four eight

play05:36

one two

play05:37

we have this message

play05:38

then if i click on order details we just

play05:41

go to this screen where we just show the

play05:44

details of our product so so we have the

play05:46

state of the order so now the order is

play05:49

placed and the author is waiting to get

play05:52

confirmed by the by the ad administrator

play05:55

so yes as you can see we have this order

play05:58

here we have the address of the order we

play06:00

have pretty much all the details that we

play06:02

want to know about this order

play06:04

now let's actually get back

play06:06

to the profile screen

play06:10

and here uh by the way excuse me if i

play06:12

talk too fast because there is a lot of

play06:14

stuff to cover this app and i just uh

play06:16

when i finish this video as soon as

play06:18

possible i don't want to make it long

play06:20

anyways let's get back to uh the app and

play06:24

we and we are now in the profile

play06:26

fragment

play06:27

and here the user can

play06:30

view many stuff the first thing he can

play06:32

actually or she can edit

play06:35

on the personal details so if we click

play06:38

on the name of our account

play06:41

we have this screen and the user also

play06:43

can upload his or her own picture for

play06:47

the account so let me add a picture in

play06:49

here

play06:50

i'm gonna add my picture

play06:53

this one

play06:56

okay please select it

play06:58

oh we have a problem let me see

play07:01

okay we have a problem in the emulator

play07:03

whatever so we select this picture he

play07:06

can also or she can edit it on the name

play07:09

i'm going to leave it and then click on

play07:11

save

play07:13

wait some time until we upload this

play07:14

picture as you can see this picture

play07:17

is updated in the profile screen now we

play07:20

also have

play07:21

here some options all orders where the

play07:24

user can actually view the orders that

play07:26

he has ordered

play07:28

and he can also view all the details

play07:30

about that order

play07:32

and we have a track order which is which

play07:36

i didn't implement actually i don't know

play07:38

if i'm gonna implement it in my playlist

play07:41

but i will see that and here we have

play07:43

billing and addresses and here we can

play07:45

actually add payment methods which we

play07:48

don't allow yet i didn't implement it

play07:51

but we can actually add shipping

play07:54

addresses so i already added home

play07:58

address when we actually try to purchase

play08:00

our uh product so let's try to add a new

play08:03

address

play08:04

let's name this address work

play08:07

full name

play08:09

and

play08:10

type anything for the rest

play08:14

click on save as you can see now we have

play08:17

two addresses that the user can select

play08:19

let's get back

play08:21

and one of the cool features that we

play08:23

have in this app which is the

play08:24

notification so we're going to implement

play08:25

this

play08:27

we also have the language here i i don't

play08:30

know if you want to implement that but i

play08:32

already supported arabic language in my

play08:35

app

play08:36

we also have the log out button so let's

play08:39

click on that and now we locked

play08:42

off our account

play08:44

okay now i showed you everything that

play08:46

we're going to build in this app now let

play08:48

me just give you an overview of the

play08:50

stuff that we are going to use to be

play08:52

able to build such an ecommerce app like

play08:55

this one

play08:56

first of all i will use scotland to

play08:58

build this app for the programming

play08:59

language and we're also going to use

play09:02

firebase services which are firestore

play09:05

firebase authentication firebase storage

play09:07

and fire cloud messaging

play09:10

for the push notifications

play09:12

and if you have never used firebase in

play09:14

your projects then that will be okay

play09:17

because i will try my best to explain

play09:19

everything

play09:20

while i'm doing it and we're also going

play09:23

to use mvvm architecture pattern which

play09:26

is a famous pattern and finally we're

play09:28

going to use cortines and coroutine's

play09:31

flaws

play09:32

in this app okay this is the end of this

play09:34

video stay tuned to build this app with

play09:36

me and if you are not subscribed to my

play09:38

channel please subscribe now and turn on

play09:41

the notification bell if you want to

play09:42

receive all the new videos that i post

play09:45

about android development so that was

play09:47

all again thank you so much for watching

play09:50

catch you in the first video of this

play09:52

playlist

play09:54

[Music]

play10:05

you

Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
E-commerce AppAndroid DevelopmentApp TutorialFirebase ServicesMVVM PatternCoroutinesUser RegistrationProduct BrowsingOrder ManagementProfile CustomizationPush Notifications