
Build production-ready Android apps inspired by Uber and Lyft, integrating Google login, Google Maps, AdMob, PayPal, in-app payments, and VoIP from scratch using Java.
Explore the basics of Android Studio and the Java side while starting the logon page design. Preview intents and shared preferences as upcoming topics in this introductory section.
Create a sign-up activity in android studio, add a centered title, a phone input, and social login, then wire a back button and use string resources.
Set up the sign up page in Android Studio using Java, importing needed classes and wiring public void methods for sign up and activate social for the next video.
Watch this demo to see the finished page layout and how tapping the keypad inputs a phone number as you complete section 1, with a preview for section 2.
Explore building a social media sign-up page that enables login with Facebook and Google, fetching user information to sign up, and dive into using the two new APIs.
Finish sign up page and set up Facebook login for the Android app by configuring the Facebook SDK, package name, activity, and key hash with OpenSSL and keytool.
Implement Facebook login in the Android app by creating a social sign-in activity, adding a login button for Facebook, configuring permissions, and handling graph requests.
Set up Google sign-in for Android by integrating Firebase, configuring the project, adding the Google services file, and implementing a Google sign-in button.
Implement Google login in Android by configuring sign-in options, building a sign-in client, triggering sign-in on click, and handling results to obtain user name and email.
Enable Google login in the Rivage console, adjust project settings, and add your Android fingerprint from the Gradle signing report to activate Google sign-in for the app.
Explore the social media page built in section 2 by clicking Facebook or Google to preview the page, ensuring everything works as shown.
Learn how to build a verified page by implementing shared preferences, permissions, and estimates integration, ensuring the permission page works smoothly within the app.
Finish the sign up and verify pages by implementing location and read permissions, handling requests, and sending a verification code via SMS stored in shared preferences.
Finish the verified page setup by handling sign up paths from social and normal sign up, using a shared preference register press, and navigate to information and credit card pages.
Explore the section 3 demo to see how the verify page uses a keypad and responds to correct and incorrect codes.
Finish registration by building an information page activity in Android Studio that collects first name, last name, email, and password with inputs, and pre-fills from social login data.
Learn how to set up Firebase in an Android app, create database references for users and drivers, and upload user data with updateChildren using a map.
Create a navigation drawer with a home activity, refine the layout by removing the floating action button, and add a Google Maps activity with the Maps API key.
Implement the location listener to obtain current coordinates, resolve the address with a geocoder, place a marker, and center and zoom the map on the user's location.
Learn to integrate Google Maps in an Android app using fragments and location services, and fix layout by adjusting the toolbar and fragments.
Enable Google Places autocomplete to fetch street and business names for nearby search, then bias the results and filter by address to set the destination address.
This lesson integrates Google directions into an Android app by fetching directions from a url with an async task, parsing the response to render a polyline route and show distance.
Create and manage a SQLite database for Uber/Lyft rides, including tables for rides and payments, and implement onCreate, onUpgrade, insert, and query methods with cursor and ContentValues.
Develop an Android service that runs in the background to monitor nearby drivers and ride interactions using Firebase, with start command handling and a sticky lifecycle.
Learn to send notifications from firebase data using a notification builder, pending intents, and a notification manager to inform riders about driver status.
Learn how to set up and use Firebase storage to store and retrieve driver images, generate storage references, fetch bytes, and prepare image data for a driver photo feed.
Implement Android fragments in a map-based activity, using a frame layout and bottom sheet to display a request panel, pass data via bundles, and replace fragments with a fragment transaction.
Send broadcasts from a service to activities in an app using an empty intent and extras. Register a broadcast receiver with an intent filter and handle onReceive for ride accepted.
Implement the request ride and driver accepted flows, including decoding base64 strings to bitmaps for driver images. Update the home activity with car type standard or black and price.
Finish up tasks from the last lesson and prepare the payment page. Implement click to call the request, register and unregister broadcasts, and start the driver service to obtain context.
Explore section 4 demo to build main activity, draw a route after searching for Walmart, and render a route with standard and black car options and a request platform.
Learn to build a payment layout page with a list view and a two-layout custom adapter that displays credit card and PayPal options from a data handler.
Set up Stripe to handle payments in your app, learn how tokens secure bank transfers, and explore Stripe Connect, activation, and the dashboard for managing transfers and fees.
Learn the basics of PHP, a server-side language, including embedding in HTML, using a localhost server, and working with variables, the GET method, and echo.
Learn to set up a local php development environment with XAMPP, resolve port conflicts, start Apache and MySQL, and run a php script from the zap/ici docs folder.
Set up Stripe PHP, install the Stripe library, configure the API key, and build a charge array with token, application fee, and Stripe account for transactions.
Learn to integrate stripe in android studio, tokenize a selected credit card, and send a payment token to your server via http when an order is delivered.
Set up PayPal for the Uber/Lyft Android app by creating a developer account, obtaining a client ID, and enabling future payments for transfers to drivers' PayPal accounts or credit cards.
Set up PayPal future payments in a sandbox, configure merchant name, user agreement, and privacy policy, and start the future payment activity via an intent.
Develop Android requests to a localhost authorization server, configure a new class, obtain a fresh token via a PHP script, and finish integrating PayPal future payments.
Learn to build a PayPal PHP script: configure autoload, supply client id and client secret, perform two-line API call to fetch and echo a fresh token saved on the phone.
Learn to implement PayPal future payments in Android with a PHP backend, configure the client id, and implement charges, transactions, and payment intents in server and client scripts.
Create and display an alert dialog to let users choose a payment method, such as credit card or PayPal, triggered when the request button is pressed.
Explore the payment page, add PayPal and credit card options, review the payment dialogues, and select a payment method as shown, preparing for the next section.
Enable voice over internet protocol (sinch) in your android app for driver and rider communication without a phone number. Learn to download sinch and configure dependencies in Android Studio.
Log in to Sinch, create a sandbox app, and obtain the app key and app secret, then paste credentials into Android Studio to enable Sinch in your app.
Implement a background Sinch service in Android, initialize the Sinch client with app key sandbox, and build a binder-based interface to manage calls and client listeners.
Discover how abstract classes enable abstraction by hiding implementation, extend AppCompatActivity to create a base activity, and implement a service interface bound with on service connected and on service disconnected.
Implement Sinch on the sign-up page by wiring the synch service interface, showing a loading spinner during startup, and launching the home activity after registration.
Build a Sinch-based call screen for Android app by creating a call activity, wiring user interface elements for caller ID, call state, and photo, and managing a call duration timer.
Set up an incoming call screen with sinch by initializing UI elements, wiring accept and decline actions, and starting the call activity with permission handling.
Section 6 demo guides you through fixing the request helper, removing a fragment, updating the driver service to use user instead of request, and moving notifications inside the else block.
Set up a single Firebase project for multiple apps and integrate Stripe for payments. Implement a maps-based driver interface that updates and displays real-time driver locations with movable markers.
Learn to set up Stripe accounts for drivers, create an account ID, tokenize bank accounts, and link external bank tokens so rider payments transfer automatically to the driver’s bank account.
Build a countdown timer inside a driver notification fragment for ride match requests, displaying a timer and accept/decline actions, and wire it to react to driver updates and fragment visibility.
Send extras to the driver service and route a declined ride to the next driver on the list by updating driver references.
Publish your Android app to the Google Play Store using the Google Play Console. Create your application, upload assets and screenshots, set content rating and pricing, then publish.
Hey everyone!
So you want to learn how to become an Android master?
And you want to be able to develop production apps, and make your visions a reality?
In this course, you will learn how to build a complete ride sharing app like Uber and Lyft.
It will take you from start to finish, and pretty soon, you will both become a master of Android programming and have a production level ride sharing app in your portfolio.
The course will cover a whole range of topics, including all the basics of Android Studio, the Java language, and many advanced materials specific to our project.
The course will cover several Android APIs, and their usages as well, including Facebook, Google, Stripe, PayPal, Sinch and others.
I hope that after this course, you will have developed a strong foundation for Android Development, and with hands on experience developing a full Android App with several APIs implemented, can kick start your Android development career!