WEBVTT

00:00.160 --> 00:02.720
Hello developers, and welcome back.

00:02.760 --> 00:08.600
In this course, we'll build a powerful and intuitive Android application from scratch.

00:08.880 --> 00:13.480
Using Google Maps SDK as a foundation.

00:13.760 --> 00:21.840
The app will display location markers stored in Firebase Firestore and offer smart navigation features.

00:21.840 --> 00:30.840
By integrating the Google Directions API, you'll learn how to use MVVM architecture for clean and maintainable

00:30.840 --> 00:40.520
code, so everything is organized in a way that maintain the separation of code and the MVVM architecture.

00:40.520 --> 00:48.560
Also, we're going to integrate our friend Hilde for dependency injection to manage your app's component

00:48.720 --> 00:56.320
and efficiently, we're going to learn how to fetch and display markers from Firebase Firestore in real

00:56.360 --> 00:56.960
time.

00:56.960 --> 01:05.040
So for example we're going to add a new marker here Morocco for example the field the coordinates latitude

01:05.040 --> 01:07.080
and longitude click save.

01:07.080 --> 01:11.320
And in real time the marker will appear on our map.

01:11.380 --> 01:11.780
also.

01:11.820 --> 01:15.620
We're going to handle the click events on the mark on the map.

01:15.860 --> 01:23.460
Displaying a marker with the coordinates so you can notice the latitude and longitude of the selected

01:23.460 --> 01:24.220
marker.

01:24.260 --> 01:28.860
Moreover, we're going to fetch the current position of the user.

01:29.220 --> 01:37.340
So the main idea here is to fetch the current position of the user and display the directions to any

01:37.340 --> 01:38.020
marker.

01:38.340 --> 01:43.900
Even fetched from Firebase Firestore or from the selected marker.

01:44.020 --> 01:53.180
So for example if I change the location of our emulator here I'm emulating the the the position.

01:53.180 --> 01:56.580
Let me set it to Brazil set location.

01:56.580 --> 01:57.540
And here we go.

01:57.780 --> 01:59.220
The position is updated.

01:59.220 --> 02:05.020
So here we are getting the current position the live location of the user.

02:05.060 --> 02:13.540
Also we're going to create this expandable fab floating action button in order to do additional and

02:13.540 --> 02:16.900
complex requests for directions.

02:16.900 --> 02:22.920
For example, if I need to upload the A request arrived.

02:22.920 --> 02:29.040
So if I am a user, I need a ride from here.

02:29.160 --> 02:31.680
For example, request a ride.

02:31.840 --> 02:35.800
You can notice that Firebase Firestore is updated.

02:35.800 --> 02:41.560
And this marker is being stored in our Firebase Firestore.

02:41.760 --> 02:50.320
Then the current location this is for the driver if I need to if I am the driver and I need the directions

02:50.320 --> 02:52.720
to the requested ride.

02:53.000 --> 02:54.640
Click draw route.

02:54.760 --> 03:00.280
The route will be displayed from the current position to the requested ride.

03:00.320 --> 03:08.640
Make sure you display and save markers on near to the roads and streets.

03:08.680 --> 03:16.200
Okay, in order to fetch the current and the correct and the fastest route.

03:16.240 --> 03:20.160
Also, we're going to add another feature.

03:20.360 --> 03:30.960
So here if we plan to go from this point, add multi markers from this marker to this marker.

03:31.240 --> 03:40.060
This Marker and go to here if I need to fetch the fastest route and the direction.

03:40.100 --> 03:45.740
Place the markers in pink and selected row multi route and here we go.

03:45.980 --> 03:48.780
The route will be displayed correctly.

03:48.820 --> 03:52.900
Fetching the fastest route between the markers.

03:53.220 --> 03:54.620
Those are the markers.

03:54.900 --> 04:01.500
And they are fetched and displaying the fastest route between those markers.

04:01.780 --> 04:07.860
Okay so this is our application based on Google Maps SDK.

04:08.180 --> 04:15.940
Fetching and drawing directions between two points, the current position and any marker, or between

04:15.940 --> 04:19.260
different markers and waypoints.

04:19.300 --> 04:26.420
Also, we're going to handle live map interactions using Jetpack Compose and the maps SDK.

04:26.700 --> 04:34.260
By the end of this course, you'll have built a feature rich, scalable maps app and gained a solid

04:34.260 --> 04:39.300
understanding of modern Android development best practices.
