{"id":87763,"date":"2023-09-27T19:00:23","date_gmt":"2023-09-27T13:30:23","guid":{"rendered":"https:\/\/techvidvan.com\/tutorials\/?p=87763"},"modified":"2026-06-03T12:49:49","modified_gmt":"2026-06-03T07:19:49","slug":"android-kotlin-online-food-delivery-app","status":"publish","type":"post","link":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/","title":{"rendered":"Android Kotlin Project &#8211; Online Food Delivery App"},"content":{"rendered":"<p>Hey there, Android enthusiasts, greetings from TechVidvan. Today we are going to see and learn how to implement an Android project that is an online food delivery app in Android Studio. We\u2019ll understand the complete project development in this article.<\/p>\n<p>Online food delivery applications are useful for getting food from your preferred restaurants to your home without having to go to the restaurant in person. Users of this Android application will have access to a large selection of restaurants from which to choose and place orders.<\/p>\n<h2>About Android Kotlin Online Food Delivery App<\/h2>\n<p>It will be advantageous for beginners to learn about app development using Kotlin and how to fetch data from JSON files. You will become accustomed to using Android Studio and Kotlin to develop and add functionalities to the application. The online food delivery application will provide users with a list of food establishments to choose from and place an order from that establishment accordingly.<\/p>\n<p><strong>Details about the user interface are as follows:<\/strong><\/p>\n<p>1. A splash screen activity displaying the name of the application will appear when the app is first launched.<\/p>\n<p>2. After the splash screen, the user interface will show a list of restaurants from which they can select one to place an order.<\/p>\n<p>3. After the user selects a restaurant, the UI displays the food items the restaurant can deliver. Below each food item that is available, there is an &#8220;Add to cart&#8221; button that the customer can click on to include that specific food item in their order.<\/p>\n<p>4. After the user has added all the food items to their order and clicked on the button \u2018Checkout\u2019, the UI will show the preview of their order, also, the user is required to fill up some details in order to complete the order.<\/p>\n<p>5. Once the user clicks on the \u2018Place your Order\u2019 button, the UI will display an \u2018Order placed successfully\u2019 message on the screen.<\/p>\n<h3>Features of the Android Kotlin Online Food Delivery Application:<\/h3>\n<p>1. Users can place food orders from the restaurants of their choice without going there in person with the assistance of the Android application.<\/p>\n<p>2. The user can choose from a list of restaurants provided by the application.<\/p>\n<p>3. A range of food items on the menu are accessible for online delivery at each and every restaurant mentioned in the Android app.<\/p>\n<p>4. The user has the option to order up to 10 portions of each meal item from the chosen restaurant.<\/p>\n<p>5. The consumer has the option to quickly evaluate their order and the amount that must be paid at delivery before finalizing the transaction.<\/p>\n<p>6. The preview of the order contains all the items added to the cart by the user, subtotal of each and every individual item, at the bottom, the final amount inclusive of delivery charges is displayed too.<\/p>\n<h3>Prerequisites for Online Food Delivery App Using Android Kotlin<\/h3>\n<p><strong>To develop this Android Kotlin application, the requirements and prerequisites are as follows:<\/strong><\/p>\n<p><strong>1. Kotlin:<\/strong> You first need to be familiar with Kotlin programming. Given that we will write the app code in the programming language Kotlin, it is necessary.<br \/>\n<strong>2. XML:<\/strong> Another crucial component of our Android application is XML. It will be applied to the development of the application&#8217;s user interface.<br \/>\n<strong>3. Android Studio:<\/strong> The core of our application is Android Studio because that is how we will develop it. Also included with Android Studio is an Android virtual device that can be used to test the functionality of applications.<\/p>\n<h3>Download Android Kotlin Online Food Delivery App Project<\/h3>\n<p>Please download the source code of Android Kotlin Online Food Delivery Project: <a href=\"https:\/\/drive.google.com\/file\/d\/1uNIIbouYS6QAh3-dF9rVv0TcBMop8BZ6\/view?usp=drive_link\"><strong>Android Kotlin Online Food Delivery Project Code<\/strong><\/a>.<\/p>\n<h3>Steps to Create Online Food Delivery App using Android Kotlin<\/h3>\n<p>We&#8217;ll now start working on developing an online food ordering app. Before putting the code into practice, we will learn about its purpose and function throughout this article. So, let&#8217;s look at the files and functions needed to run the code:<\/p>\n<p>You must complete a set of steps in order to create this Android online food delivery app. We are here to walk you through every stage of developing an app.<\/p>\n<p>1. Extract all the files from the downloaded zip file to the location of your choice.<br \/>\n2. Open Android Studio.<br \/>\n3. Click on File, then Open.<br \/>\n4. Find and select the folder you extracted earlier and click on OK.<\/p>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/food-delivere-1.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88463\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/food-delivere-1.webp\" alt=\"food delivere\" width=\"1920\" height=\"1011\" \/><\/a><\/p>\n<p>Before going through the files that are responsible for the UI and functionality of the application, you will have to follow some things mentioned as follow:<\/p>\n<p>1. Create a new folder, \u2018raw\u2019, in the \u2018res\u2019 file directory. Inside the raw folder, create a new file, \u2018restaurant.json\u2019. This json file will contain the list of restaurants, food items, price of each item, etc.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">[\r\n  {\r\n    \"name\":\"McDonald's\",\r\n    \"address\":\"Empire Building, No 134 to 136\",\r\n    \"delivery_charge\": 5,\r\n    \"image\":\"https:\/\/upload.wikimedia.org\/wikinews\/en\/9\/97\/Mcdonalds-logo.JPG\",\r\n    \"hours\":{\r\n      \"Sunday\":\"11:00 AM - 7:00 PM\",\r\n      \"Monday\":\"10:00 AM - 10:00 PM\",\r\n      \"Tuesday\":\"10:00 AM - 10:00 PM\",\r\n      \"Wednesday\":\"10:00 AM - 8:00 PM\",\r\n      \"Thursday\":\"10:00 AM - 10:00 PM\",\r\n      \"Friday\":\"10:00 AM - 10:00 PM\",\r\n      \"Saturday\":\"9:00 AM - 2:00 PM\"\r\n    },\r\n    \"menus\": [\r\n      {\r\n        \"name\": \"Chocolate Shake\",\r\n        \"price\": 120,\r\n        \"url\": \"https:\/\/i.pinimg.com\/564x\/65\/c9\/94\/65c9945af0188e99b76b2ede42833781.jpg\"\r\n      },\r\n      {\r\n        \"name\": \"Strawberry Shake\",\r\n        \"price\": 120,\r\n        \"url\": \"https:\/\/i.pinimg.com\/564x\/61\/75\/ff\/6175ff149c27c64ce1f20717a3b56ba6.jpg\"\r\n      },\r\n      {\r\n        \"name\": \"Pizza McPuff\",\r\n        \"price\": 35,\r\n        \"url\": \"https:\/\/live.staticflickr.com\/8232\/8477233192_f893a154a3_c.jpg\"\r\n      },\r\n      {\r\n        \"name\": \"McNuggets\",\r\n        \"price\": 90,\r\n        \"url\": \"https:\/\/i.pinimg.com\/564x\/15\/4f\/19\/154f19252423d4689dbd56abe9e55fbf.jpg\"\r\n      },\r\n      {\r\n        \"name\": \"Veg Maharaja Mac\",\r\n        \"price\": 160,\r\n        \"url\": \"https:\/\/i.pinimg.com\/564x\/8f\/32\/72\/8f32721adbb11e95a251a9922ead3762.jpg\"\r\n      },\r\n      {\r\n        \"name\": \"Chicken Wrap\",\r\n        \"price\": 145,\r\n        \"url\": \"https:\/\/i.pinimg.com\/236x\/11\/d2\/ff\/11d2ff0f50c34b4ff16d13e48bba98ad.jpg\"\r\n      }\r\n    ]\r\n  }]\r\n<\/pre>\n<p>2. To be able to use the above json file and fetch data from it, you will have to add some dependencies in the \u2018build.gradle\u2019 file.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">implementation \"com.github.bumptech.glide:glide:4.12.0\"\r\nimplementation \"com.google.code.gson:gson:2.9.0\"\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/OnlineFoodDelivery.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88464\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/OnlineFoodDelivery.webp\" alt=\"Online Food Delivery\" width=\"1920\" height=\"978\" \/><\/a><\/p>\n<p>Let&#8217;s go through each file in this project one at a time as we comprehend how the application works.<\/p>\n<p>1. The \u201cactivity_splash\u201d is an XML file which is responsible for creating splash activity when the application is launched.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    tools:context=\".SplashActivity\"\r\n    android:background=\"@color\/purple_200\"&gt;\r\n\r\n    &lt;TextView\r\n        android:id=\"@+id\/textView1\"\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:fontFamily=\"serif\"\r\n        android:text=\"Online Food Delivery App\"\r\n        android:textColor=\"@color\/white\"\r\n        android:textSize=\"32dp\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        app:layout_constraintVertical_bias=\"0.425\" \/&gt;\r\n\r\n    &lt;TextView\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        android:fontFamily=\"serif\"\r\n        android:text=\"TechVidvan\"\r\n        android:textColor=\"@color\/white\"\r\n        android:textSize=\"30dp\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        app:layout_constraintVertical_bias=\"0.484\" \/&gt;\r\n\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Online-Food-Delivery-output.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88465\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Online-Food-Delivery-output.webp\" alt=\"Online Food Delivery output\" width=\"1920\" height=\"1011\" \/><\/a><\/p>\n<p>2. The \u201cactivity_main\u201d is an XML file which is responsible for creating the user interface to display the list of restaurants.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    android:background=\"@color\/purple_200\"\r\n    tools:context=\".MainActivity\"&gt;\r\n\r\n    &lt;androidx.recyclerview.widget.RecyclerView\r\n        android:id=\"@+id\/recyclerViewRestaurant\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintLeft_toLeftOf=\"parent\"\r\n        app:layout_constraintRight_toRightOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        android:paddingBottom=\"20dp\"\/&gt;\r\n\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/outpt-Online-Food-Delivery-1-1.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88467\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/outpt-Online-Food-Delivery-1-1.webp\" alt=\"outpt Online Food Delivery\" width=\"1920\" height=\"1005\" \/><\/a><\/p>\n<p>3. The \u201crecycler_restaurant_list_row\u201d is a XML file containing a card view which specifies the way in which each restaurant should be displayed in the main activity.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"wrap_content\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"&gt;\r\n\r\n\r\n    &lt;androidx.cardview.widget.CardView\r\n        android:id=\"@+id\/cardView\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        app:cardCornerRadius=\"10dp\"\r\n        android:layout_margin=\"20dp\"\r\n        &gt;\r\n        &lt;ImageView android:id=\"@+id\/thumbImage\"\r\n            android:layout_width=\"120dp\"\r\n            android:layout_height=\"120dp\"\r\n            android:layout_gravity=\"start\"\r\n            android:layout_margin=\"10dp\"\r\n            \/&gt;\r\n\r\n        &lt;LinearLayout\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            android:orientation=\"vertical\"\r\n            android:layout_marginStart=\"140dp\"\r\n            android:layout_gravity=\"center_vertical\"&gt;\r\n\r\n            &lt;TextView android:id=\"@+id\/tvRestaurantName\"\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:textSize=\"16sp\"\r\n                android:textStyle=\"bold\"\r\n                android:textColor=\"@color\/purple_500\"\r\n                android:layout_marginStart=\"10dp\"\r\n                android:layout_marginTop=\"10dp\"\r\n                android:layout_marginEnd=\"10dp\"\r\n                \/&gt;\r\n            &lt;TextView android:id=\"@+id\/tvRestaurantAddress\"\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:textSize=\"16sp\"\r\n                android:textStyle=\"bold\"\r\n                android:textColor=\"@color\/black\"\r\n                android:layout_marginStart=\"10dp\"\r\n                android:layout_marginEnd=\"10dp\"\r\n                \/&gt;\r\n\r\n            &lt;TextView android:id=\"@+id\/tvRestaurantHours\"\r\n                android:layout_width=\"wrap_content\"\r\n                android:layout_height=\"wrap_content\"\r\n                android:textSize=\"16sp\"\r\n                android:textStyle=\"bold\"\r\n                android:textColor=\"@color\/black\"\r\n                android:layout_marginStart=\"10dp\"\r\n                android:layout_marginEnd=\"10dp\"\r\n                \/&gt;\r\n\r\n\r\n        &lt;\/LinearLayout&gt;\r\n    &lt;\/androidx.cardview.widget.CardView&gt;\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/recycler_restaurant_list_row.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88468\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/recycler_restaurant_list_row.webp\" alt=\"recycler restaurant list row\" width=\"1918\" height=\"1008\" \/><\/a><\/p>\n<p>4. The \u201cactivity_restaurant_menu\u201d is an XML file responsible for UI where the available food items are displayed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    tools:context=\".RestaurantMenuActivity\"&gt;\r\n\r\n    &lt;androidx.recyclerview.widget.RecyclerView\r\n        android:id=\"@+id\/menuRecyclerVuew\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        android:layout_margin=\"10dp\"\r\n        android:paddingBottom=\"80dp\" \/&gt;\r\n\r\n    &lt;TextView android:id=\"@+id\/checkoutButton\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        android:text=\"Checkout\"\r\n        android:textSize=\"16sp\"\r\n        android:textStyle=\"bold\"\r\n        android:gravity=\"center\"\r\n        android:padding=\"10dp\"\r\n        android:layout_margin=\"10dp\"\r\n        android:textColor=\"@color\/white\"\r\n        android:background=\"@drawable\/button_bg\"\/&gt;\r\n\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/activity_restaurant_menu-1.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88470\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/activity_restaurant_menu-1.webp\" alt=\"activity restaurant menu\" width=\"1920\" height=\"1008\" \/><\/a><\/p>\n<p>5. The \u201cactivity_place_your_model\u201d is an XML file which is responsible for creating UI where the order preview will be displayed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;ScrollView xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    tools:context=\".PlaceYourOrderActivity\"\r\n    android:paddingBottom=\"10dp\"\r\n    &gt;\r\n    &lt;androidx.constraintlayout.widget.ConstraintLayout\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"match_parent\"&gt;\r\n\r\n\r\n        &lt;TextView android:id=\"@+id\/tvCustomerDetails\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toTopOf=\"parent\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Customer Details\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputName\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/tvCustomerDetails\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter your name\"\/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputAddress\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputName\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter your address\" \/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputCity\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputAddress\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter your city\" \/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputState\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputCity\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter your state\" \/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputZip\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputState\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter your zip\"\r\n            android:inputType=\"number\"\r\n            android:maxLength=\"6\" \/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvCardDetails\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/inputZip\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Card Details\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputCardNumber\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/tvCardDetails\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter Card Number\"\r\n            android:inputType=\"number\"\r\n            android:maxLength=\"16\"\/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputCardExpiry\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputCardNumber\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter Card expiry(mm\/yyyy)\"\r\n            android:maxLength=\"6\"\/&gt;\r\n\r\n        &lt;EditText android:id=\"@+id\/inputCardPin\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@id\/inputCardExpiry\"\r\n            android:layout_marginStart=\"10dp\"\r\n            android:layout_marginEnd=\"10dp\"\r\n            android:layout_marginTop=\"05dp\"\r\n            android:layout_marginBottom=\"05dp\"\r\n            android:hint=\"Enter Card pin(3 digits)\"\r\n            android:inputType=\"number\"\r\n            android:maxLength=\"3\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvTotalItems\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/inputCardPin\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Total items in cart\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;androidx.recyclerview.widget.RecyclerView\r\n            android:id=\"@+id\/cartItemsRecyclerView\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvTotalItems\"\r\n            android:nestedScrollingEnabled=\"false\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvSubtotal\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/cartItemsRecyclerView\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Sub total\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvSubtotalAmount\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/cartItemsRecyclerView\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Rs. 0.0\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvDeliveryCharge\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvSubtotal\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Delivery Charge\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvDeliveryChargeAmount\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvSubtotal\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Rs. 0.0\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvTotal\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvDeliveryCharge\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Total\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/tvTotalAmount\"\r\n            android:layout_width=\"wrap_content\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvDeliveryCharge\"\r\n            android:layout_margin=\"10dp\"\r\n            android:text=\"Rs. 0.0\"\r\n            android:textSize=\"18sp\"\r\n            android:textStyle=\"bold\"\/&gt;\r\n\r\n        &lt;TextView android:id=\"@+id\/buttonPlaceYourOrder\"\r\n            android:layout_width=\"match_parent\"\r\n            android:layout_height=\"wrap_content\"\r\n            app:layout_constraintStart_toStartOf=\"parent\"\r\n            app:layout_constraintEnd_toEndOf=\"parent\"\r\n            app:layout_constraintTop_toBottomOf=\"@+id\/tvTotal\"\r\n            android:text=\"Place your order\"\r\n            android:textSize=\"16sp\"\r\n            android:textStyle=\"bold\"\r\n            android:gravity=\"center\"\r\n            android:textColor=\"@color\/white\"\r\n            android:padding=\"10dp\"\r\n            android:layout_margin=\"10dp\"\r\n            android:background=\"@drawable\/button_bg\"\r\n            \/&gt;\r\n\r\n\r\n    &lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n&lt;\/ScrollView&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/activity_place_your_model.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88484\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/activity_place_your_model.webp\" alt=\"activity place your model\" width=\"1920\" height=\"980\" \/><\/a><\/p>\n<p>6. \u2018activity_order_succes\u2019 is an XML file responsible for creating the UI of the activity when the order is placed by the user.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\r\n    xmlns:app=\"http:\/\/schemas.android.com\/apk\/res-auto\"\r\n    xmlns:tools=\"http:\/\/schemas.android.com\/tools\"\r\n    android:layout_width=\"match_parent\"\r\n    android:layout_height=\"match_parent\"\r\n    &gt;\r\n\r\n\r\n    &lt;TextView\r\n        android:layout_width=\"wrap_content\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintTop_toTopOf=\"parent\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        android:textSize=\"30sp\"\r\n        android:textStyle=\"bold\"\r\n        android:text=\"Order placed successfully.\"\r\n        android:layout_margin=\"30dp\"\r\n        \/&gt;\r\n\r\n    &lt;TextView android:id=\"@+id\/buttonDone\"\r\n        android:layout_width=\"match_parent\"\r\n        android:layout_height=\"wrap_content\"\r\n        app:layout_constraintStart_toStartOf=\"parent\"\r\n        app:layout_constraintEnd_toEndOf=\"parent\"\r\n        app:layout_constraintBottom_toBottomOf=\"parent\"\r\n        android:text=\"Done\"\r\n        android:textSize=\"16sp\"\r\n        android:textStyle=\"bold\"\r\n        android:gravity=\"center\"\r\n        android:padding=\"10dp\"\r\n        android:textColor=\"@color\/white\"\r\n        android:layout_margin=\"10dp\"\r\n        android:background=\"@drawable\/button_bg\"\r\n        \/&gt;\r\n\r\n\r\n&lt;\/androidx.constraintlayout.widget.ConstraintLayout&gt;\r\n<\/pre>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/activity-success-order-1.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88472\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/activity-success-order-1.webp\" alt=\"activity success order\" width=\"1920\" height=\"1004\" \/><\/a><\/p>\n<p>7. \u2018SplashActivity\u2019 is a kotlin file which is responsible for displaying the splash screen when the application is initialized.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class SplashActivity : AppCompatActivity() {\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_splash)\r\n\r\n        val actionBar = supportActionBar\r\n        actionBar!!.hide()\r\n\r\n        Handler().postDelayed({\r\n            startActivity(Intent(this@SplashActivity, MainActivity::class.java))\r\n            finish()\r\n        }, 2000)\r\n    }\r\n}\r\n<\/pre>\n<p>8. \u2018MainActivity.kt\u2019 is a kotlin file which is responsible for fetching the names of restaurants from the json file and displaying a list of restaurants to the user.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class MainActivity : AppCompatActivity(), RestaurantListAdapter.RestaurantListClickListener {\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_main)\r\n\r\n        val actionBar: ActionBar? = supportActionBar\r\n        actionBar?.setTitle(\"Restaurant List\")\r\n\r\n        val restaurantModel = getRestaurantData()\r\n        initRecyclerView(restaurantModel)\r\n    }\r\n\r\n    private fun initRecyclerView(restaurantList: List&lt;RestaurentModel?&gt;?) {\r\n        val recyclerViewRestaurant = findViewById&lt;RecyclerView&gt;(R.id.recyclerViewRestaurant)\r\n        recyclerViewRestaurant.layoutManager = LinearLayoutManager(this)\r\n        val adapter = RestaurantListAdapter(restaurantList, this)\r\n        recyclerViewRestaurant.adapter =adapter\r\n    }\r\n\r\n    private fun getRestaurantData(): List&lt;RestaurentModel?&gt;? {\r\n        val inputStream: InputStream = resources.openRawResource(R.raw.restuarant)\r\n        val writer: Writer = StringWriter()\r\n        val buffer = CharArray(1024)\r\n        try {\r\n            val reader: Reader = BufferedReader(InputStreamReader(inputStream, \"UTF-8\"))\r\n            var n : Int\r\n            while (reader.read(buffer).also { n = it } != -1) {\r\n                writer.write(buffer, 0, n)\r\n\r\n            }\r\n\r\n        }catch (e: Exception){}\r\n        val jsonStr: String = writer.toString()\r\n        val gson = Gson()\r\n        val restaurantModel = gson.fromJson&lt;Array&lt;RestaurentModel&gt;&gt;(jsonStr, Array&lt;RestaurentModel&gt;::class.java).toList()\r\n\r\n        return restaurantModel\r\n    }\r\n\r\n    override fun onItemClick(restaurantModel: RestaurentModel) {\r\n        val intent = Intent(this@MainActivity, RestaurantMenuActivity::class.java)\r\n        intent.putExtra(\"RestaurantModel\", restaurantModel)\r\n        startActivity(intent)\r\n    }\r\n}\r\n<\/pre>\n<p>9. \u2018RestaurantListAdapter.kt\u2019 is an adapter which sets the restaurant data in the MainActivity\u2019s recycler view.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class RestaurantMenuActivity : AppCompatActivity(), MenuListAdapter.MenuListClickListener {\r\n\r\n    private var itemsInTheCartList: MutableList&lt;Menus?&gt;? = null\r\n    private var totalItemInCartCount = 0\r\n    private  var menuList: List&lt;Menus?&gt;? = null\r\n    private var menuListAdapter: MenuListAdapter? = null\r\n\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_restaurant_menu)\r\n\r\n        val restaurantModel = intent?.getParcelableExtra&lt;RestaurentModel&gt;(\"RestaurantModel\")\r\n\r\n        val actionBar: ActionBar? = supportActionBar\r\n        actionBar?.setTitle(restaurantModel?.name)\r\n        actionBar?.setSubtitle(restaurantModel?.address)\r\n        actionBar?.setDisplayHomeAsUpEnabled(true)\r\n\r\n        menuList = restaurantModel?.menus\r\n\r\n        initRecyclerView(menuList)\r\n        checkoutButton.setOnClickListener {\r\n            if(itemsInTheCartList != null &amp;&amp; itemsInTheCartList!!.size &lt;= 0) {\r\n                Toast.makeText(this@RestaurantMenuActivity, \"Please add some items in cart\", Toast.LENGTH_LONG).show()\r\n            }\r\n            else {\r\n                restaurantModel?.menus = itemsInTheCartList\r\n                val intent = Intent(this@RestaurantMenuActivity, PlaceYourOrderActivity::class.java)\r\n                intent.putExtra(\"RestaurantModel\", restaurantModel)\r\n                startActivityForResult(intent, 1000)\r\n            }\r\n        }\r\n\r\n    }\r\n    private fun initRecyclerView(menus: List&lt;Menus?&gt;?) {\r\n        menuRecyclerVuew.layoutManager = GridLayoutManager(this, 2)\r\n        menuListAdapter = MenuListAdapter(menus, this)\r\n        menuRecyclerVuew.adapter =menuListAdapter\r\n    }\r\n\r\n    override fun addToCartClickListener(menu: Menus) {\r\n        if(itemsInTheCartList == null) {\r\n            itemsInTheCartList = ArrayList()\r\n        }\r\n        itemsInTheCartList?.add(menu)\r\n        totalItemInCartCount = 0\r\n        for(menu in itemsInTheCartList!!) {\r\n            totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n        }\r\n        checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n\r\n    }\r\n\r\n    override fun updateCartClickListener(menu: Menus) {\r\n        val index = itemsInTheCartList!!.indexOf(menu)\r\n        itemsInTheCartList?.removeAt(index)\r\n        itemsInTheCartList?.add(menu)\r\n        totalItemInCartCount = 0\r\n        for(menu in itemsInTheCartList!!) {\r\n            totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n        }\r\n        checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n    }\r\n\r\n    override fun removeFromCartClickListener(menu: Menus) {\r\n        if(itemsInTheCartList!!.contains(menu)) {\r\n            itemsInTheCartList?.remove(menu)\r\n            totalItemInCartCount = 0\r\n            for(menu in itemsInTheCartList!!) {\r\n                totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n            }\r\n            checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n        }\r\n    }\r\n\r\n    override fun onOptionsItemSelected(item: MenuItem): Boolean {\r\n        when(item.itemId) {\r\n            android.R.id.home -&gt; finish()\r\n            else -&gt; {}\r\n        }\r\n        return super.onOptionsItemSelected(item)\r\n    }\r\n\r\n    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {\r\n        super.onActivityResult(requestCode, resultCode, data)\r\n        if(requestCode == 1000 &amp;&amp; resultCode == RESULT_OK) {\r\n            finish()\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>10. \u201cRestaurantMenuActivity\u201d is a class which is responsible for fetching the details from json file about a particular restaurant and displaying it to the user.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class RestaurantMenuActivity : AppCompatActivity(), MenuListAdapter.MenuListClickListener {\r\n\r\n    private var itemsInTheCartList: MutableList&lt;Menus?&gt;? = null\r\n    private var totalItemInCartCount = 0\r\n    private  var menuList: List&lt;Menus?&gt;? = null\r\n    private var menuListAdapter: MenuListAdapter? = null\r\n\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_restaurant_menu)\r\n\r\n        val restaurantModel = intent?.getParcelableExtra&lt;RestaurentModel&gt;(\"RestaurantModel\")\r\n\r\n        val actionBar: ActionBar? = supportActionBar\r\n        actionBar?.setTitle(restaurantModel?.name)\r\n        actionBar?.setSubtitle(restaurantModel?.address)\r\n        actionBar?.setDisplayHomeAsUpEnabled(true)\r\n\r\n        menuList = restaurantModel?.menus\r\n\r\n        initRecyclerView(menuList)\r\n        checkoutButton.setOnClickListener {\r\n            if(itemsInTheCartList != null &amp;&amp; itemsInTheCartList!!.size &lt;= 0) {\r\n                Toast.makeText(this@RestaurantMenuActivity, \"Please add some items in cart\", Toast.LENGTH_LONG).show()\r\n            }\r\n            else {\r\n                restaurantModel?.menus = itemsInTheCartList\r\n                val intent = Intent(this@RestaurantMenuActivity, PlaceYourOrderActivity::class.java)\r\n                intent.putExtra(\"RestaurantModel\", restaurantModel)\r\n                startActivityForResult(intent, 1000)\r\n            }\r\n        }\r\n\r\n    }\r\n    private fun initRecyclerView(menus: List&lt;Menus?&gt;?) {\r\n        menuRecyclerVuew.layoutManager = GridLayoutManager(this, 2)\r\n        menuListAdapter = MenuListAdapter(menus, this)\r\n        menuRecyclerVuew.adapter =menuListAdapter\r\n    }\r\n\r\n    override fun addToCartClickListener(menu: Menus) {\r\n        if(itemsInTheCartList == null) {\r\n            itemsInTheCartList = ArrayList()\r\n        }\r\n        itemsInTheCartList?.add(menu)\r\n        totalItemInCartCount = 0\r\n        for(menu in itemsInTheCartList!!) {\r\n            totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n        }\r\n        checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n\r\n    }\r\n\r\n    override fun updateCartClickListener(menu: Menus) {\r\n        val index = itemsInTheCartList!!.indexOf(menu)\r\n        itemsInTheCartList?.removeAt(index)\r\n        itemsInTheCartList?.add(menu)\r\n        totalItemInCartCount = 0\r\n        for(menu in itemsInTheCartList!!) {\r\n            totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n        }\r\n        checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n    }\r\n\r\n    override fun removeFromCartClickListener(menu: Menus) {\r\n        if(itemsInTheCartList!!.contains(menu)) {\r\n            itemsInTheCartList?.remove(menu)\r\n            totalItemInCartCount = 0\r\n            for(menu in itemsInTheCartList!!) {\r\n                totalItemInCartCount = totalItemInCartCount + menu?.totalInCart!!\r\n            }\r\n            checkoutButton.text = \"Checkout (\" + totalItemInCartCount +\") Items\"\r\n        }\r\n    }\r\n\r\n    override fun onOptionsItemSelected(item: MenuItem): Boolean {\r\n        when(item.itemId) {\r\n            android.R.id.home -&gt; finish()\r\n            else -&gt; {}\r\n        }\r\n        return super.onOptionsItemSelected(item)\r\n    }\r\n\r\n    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {\r\n        super.onActivityResult(requestCode, resultCode, data)\r\n        if(requestCode == 1000 &amp;&amp; resultCode == RESULT_OK) {\r\n            finish()\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<p>11. \u201cMenuListAdapter\u201d is a class which is responsible for setting the food items in the recycler view of RestaurantMenuActivity.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class MenuListAdapter(val menuList: List&lt;Menus?&gt;?, val clickListener: MenuListClickListener): RecyclerView.Adapter&lt;MenuListAdapter.MyViewHolder&gt;() {\r\n\r\n    override fun onCreateViewHolder(\r\n        parent: ViewGroup,\r\n        viewType: Int\r\n    ): MenuListAdapter.MyViewHolder {\r\n        val view: View = LayoutInflater.from(parent.context).inflate(R.layout.menu_list_row, parent, false)\r\n        return MyViewHolder(view)\r\n    }\r\n\r\n    override fun onBindViewHolder(holder: MenuListAdapter.MyViewHolder, position: Int) {\r\n        holder.bind(menuList?.get(position)!!)\r\n    }\r\n\r\n    override fun getItemCount(): Int {\r\n        return if(menuList == null)return 0 else menuList.size\r\n    }\r\n\r\n    inner class MyViewHolder(view: View): RecyclerView.ViewHolder(view) {\r\n        var thumbImage: ImageView = view.thumbImage\r\n        val menuName: TextView = view.menuName\r\n        val menuPrice: TextView = view.menuPrice\r\n        val addToCartButton: TextView = view.addToCartButton\r\n        val addMoreLayout: LinearLayout = view.addMoreLayout\r\n        val imageMinus: ImageView = view.imageMinus\r\n        val imageAddOne: ImageView = view.imageAddOne\r\n        val tvCount: TextView = view.tvCount\r\n\r\n        fun bind(menus: Menus) {\r\n            menuName.text = menus?.name\r\n            menuPrice.text = \"Price: Rs. ${menus?.price}\"\r\n            addToCartButton.setOnClickListener {\r\n                menus?.totalInCart = 1\r\n                clickListener.addToCartClickListener(menus)\r\n                addMoreLayout?.visibility = View.VISIBLE\r\n                addToCartButton.visibility = View.GONE\r\n                tvCount.text = menus?.totalInCart.toString()\r\n            }\r\n            imageMinus.setOnClickListener {\r\n                var total: Int =  menus.totalInCart\r\n                total--\r\n                if(total &gt; 0) {\r\n                    menus?.totalInCart = total\r\n                    clickListener.updateCartClickListener(menus)\r\n                    tvCount.text = menus?.totalInCart.toString()\r\n                } else {\r\n                    menus.totalInCart = total\r\n                    clickListener.removeFromCartClickListener(menus)\r\n                    addMoreLayout.visibility = View.GONE\r\n                    addToCartButton.visibility = View.VISIBLE\r\n                }\r\n            }\r\n            imageAddOne.setOnClickListener {\r\n                var total: Int  = menus.totalInCart\r\n                total++\r\n                if(total &lt;= 10) {\r\n                    menus.totalInCart = total\r\n                    clickListener.updateCartClickListener(menus)\r\n                    tvCount.text = total.toString()\r\n                }\r\n            }\r\n\r\n            Glide.with(thumbImage)\r\n                .load(menus?.url)\r\n                .into(thumbImage)\r\n        }\r\n    }\r\n\r\n    interface MenuListClickListener {\r\n        fun addToCartClickListener(menu: Menus)\r\n        fun updateCartClickListener(menu: Menus)\r\n        fun removeFromCartClickListener(menu: Menus)\r\n    }\r\n}\r\n<\/pre>\n<p>12. \u2018PlaceYourOrderActivity.kt\u2019 is a class which is responsible for the functioning of the activity where the user has to fill required details for delivery and will display the preview of the order.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class PlaceYourOrderActivity : AppCompatActivity() {\r\n\r\n    var placeYourOrderAdapter: PlaceYourOrderAdapter? = null\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_place_your_order)\r\n\r\n        val restaurantModel: RestaurentModel? = intent.getParcelableExtra(\"RestaurantModel\")\r\n        val actionbar: ActionBar? = supportActionBar\r\n        actionbar?.setTitle(restaurantModel?.name)\r\n        actionbar?.setSubtitle(restaurantModel?.address)\r\n        actionbar?.setDisplayHomeAsUpEnabled(true)\r\n\r\n        buttonPlaceYourOrder.setOnClickListener {\r\n            onPlaceOrderButtonCLick(restaurantModel)\r\n        }\r\n\r\n        initRecyclerView(restaurantModel)\r\n        calculateTotalAmount(restaurantModel)\r\n    }\r\n\r\n    private fun initRecyclerView(restaurantModel: RestaurentModel?) {\r\n        cartItemsRecyclerView.layoutManager = LinearLayoutManager(this)\r\n        placeYourOrderAdapter = PlaceYourOrderAdapter(restaurantModel?.menus)\r\n        cartItemsRecyclerView.adapter =placeYourOrderAdapter\r\n    }\r\n\r\n    private fun calculateTotalAmount(restaurantModel: RestaurentModel?) {\r\n        var subTotalAmount = 0f\r\n        for(menu in restaurantModel?.menus!!) {\r\n            subTotalAmount += menu?.price!!  * menu.totalInCart\r\n\r\n        }\r\n        tvSubtotalAmount.text = \"Rs.\"+ String.format(\"%.2f\", subTotalAmount)\r\n        tvDeliveryChargeAmount.text = \"Rs.\"+String.format(\"%.2f\", restaurantModel.delivery_charge?.toFloat())\r\n        subTotalAmount += restaurantModel?.delivery_charge?.toFloat()!!\r\n        tvTotalAmount.text = \"Rs.\"+ String.format(\"%.2f\", subTotalAmount)\r\n    }\r\n\r\n    private fun onPlaceOrderButtonCLick(restaurantModel: RestaurentModel?) {\r\n        if(TextUtils.isEmpty(inputName.text.toString())) {\r\n            inputName.error =  \"Enter your name\"\r\n            return\r\n        } else if(TextUtils.isEmpty(inputAddress.text.toString())) {\r\n            inputAddress.error =  \"Enter your address\"\r\n            return\r\n        } else if(TextUtils.isEmpty(inputCity.text.toString())) {\r\n            inputCity.error =  \"Enter your City Name\"\r\n            return\r\n        } else if(TextUtils.isEmpty(inputZip.text.toString())) {\r\n            inputZip.error =  \"Enter your Zip code\"\r\n            return\r\n        } else if( TextUtils.isEmpty(inputCardNumber.text.toString())) {\r\n            inputCardNumber.error =  \"Enter your credit card number\"\r\n            return\r\n        } else if( TextUtils.isEmpty(inputCardExpiry.text.toString())) {\r\n            inputCardExpiry.error =  \"Enter your credit card expiry\"\r\n            return\r\n        } else if( TextUtils.isEmpty(inputCardPin.text.toString())) {\r\n            inputCardPin.error =  \"Enter your credit card pin\/cvv\"\r\n            return\r\n        }\r\n        val intent = Intent(this@PlaceYourOrderActivity, SuccessOrderActivity::class.java)\r\n        intent.putExtra(\"RestaurantModel\", restaurantModel)\r\n        startActivity(intent)\r\n    }\r\n\r\n    override fun onOptionsItemSelected(item: MenuItem): Boolean {\r\n        when(item.itemId) {\r\n            android.R.id.home -&gt; finish()\r\n            else -&gt; {}\r\n        }\r\n        return super.onOptionsItemSelected(item)\r\n    }\r\n\r\n    override fun onBackPressed() {\r\n        super.onBackPressed()\r\n        setResult(RESULT_CANCELED)\r\n        finish()\r\n    }\r\n}\r\n<\/pre>\n<p>13. \u2018SuccessOrderActivity\u2019 is a class which is displays the success order activity once the order has been placed.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">class SuccessOrderActivity : AppCompatActivity() {\r\n    override fun onCreate(savedInstanceState: Bundle?) {\r\n        super.onCreate(savedInstanceState)\r\n        setContentView(R.layout.activity_success_order)\r\n\r\n        val restaurantModel: RestaurentModel? = intent.getParcelableExtra(\"RestaurantModel\")\r\n        val actionbar: ActionBar? = supportActionBar\r\n        actionbar?.setTitle(restaurantModel?.name)\r\n        actionbar?.setSubtitle(restaurantModel?.address)\r\n        actionbar?.setDisplayHomeAsUpEnabled(false)\r\n\r\n        buttonDone.setOnClickListener {\r\n            startActivity(Intent(this@SuccessOrderActivity, MainActivity::class.java))\r\n            setResult(RESULT_OK)\r\n            finish()\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<h3>Android Online Food Delivery Output:<\/h3>\n<h4>1. Splash Screen:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-Splash-Screen.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-89218 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-Splash-Screen.webp\" alt=\"android kotlin Splash Screen\" width=\"400\" height=\"391\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>2. List of restaurants:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-List-of-restaurants.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-89219 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-List-of-restaurants.webp\" alt=\"android kotlin List of restaurants\" width=\"400\" height=\"389\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h4>3. Restaurant Menu Items:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Restaurant-Menu-Items-output.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88477\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Restaurant-Menu-Items-output.webp\" alt=\"Restaurant Menu Items output\" width=\"400\" height=\"832\" \/><\/a><\/p>\n<h4><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Restaurant-Menu-Items.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88476\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Restaurant-Menu-Items.webp\" alt=\"Restaurant Menu Items\" width=\"400\" height=\"836\" \/><\/a><br \/>\n4. Details form for successful delivery:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/successful-delivery.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88478\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/successful-delivery.webp\" alt=\"successful delivery\" width=\"400\" height=\"831\" \/><\/a><\/p>\n<h4>5. Order preview:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Order-preview-1.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-88480\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/08\/Order-preview-1.webp\" alt=\"Order preview\" width=\"400\" height=\"830\" \/><\/a><\/p>\n<h4>6. Order placed:<\/h4>\n<p><a href=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-order-successful.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-89220 size-full\" src=\"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/09\/android-kotlin-order-successful.webp\" alt=\"android kotlin order successful\" width=\"401\" height=\"400\" \/><\/a><\/p>\n<h3>Summary<\/h3>\n<p>So in this Android Kotlin Online Food Delivery App, we have learned how to create and develop an online food ordering application in Android Studio. This project is highly beneficial for beginners since it familiarizes users with utilizing XML to create user interfaces, switching between activities by clicking a button, using a JSON file to extract data, and displaying the fetched data on the activity. We sincerely hope you enjoyed it, and we are sure you will enjoy implementing it in reality.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hey there, Android enthusiasts, greetings from TechVidvan. Today we are going to see and learn how to implement an Android project that is an online food delivery app in Android Studio. We\u2019ll understand the&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":87953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4955],"tags":[5168,5169,5170,5171,5172,5173,5174],"class_list":["post-87763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-kotlin-tutorials","tag-android-kotlin-food-delivery-app","tag-android-kotlin-food-delivery-app-project","tag-android-kotlin-project","tag-android-kotlin-project-for-practice","tag-android-kotlin-project-ideas","tag-online-food-delivery-app","tag-online-food-delivery-app-project"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Kotlin Project - Online Food Delivery App - TechVidvan<\/title>\n<meta name=\"description\" content=\"Order food anytime, anywhere with Android Kotlin Online Food Delivery App. Get delicious meals delivered straight to your doorstep.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Kotlin Project - Online Food Delivery App - TechVidvan\" \/>\n<meta property=\"og:description\" content=\"Order food anytime, anywhere with Android Kotlin Online Food Delivery App. Get delicious meals delivered straight to your doorstep.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/\" \/>\n<meta property=\"og:site_name\" content=\"TechVidvan\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/TechVidvan\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-27T13:30:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-03T07:19:49+00:00\" \/>\n<meta name=\"author\" content=\"TechVidvan Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:site\" content=\"@vidvantech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"TechVidvan Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Kotlin Project - Online Food Delivery App - TechVidvan","description":"Order food anytime, anywhere with Android Kotlin Online Food Delivery App. Get delicious meals delivered straight to your doorstep.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/","og_locale":"en_US","og_type":"article","og_title":"Android Kotlin Project - Online Food Delivery App - TechVidvan","og_description":"Order food anytime, anywhere with Android Kotlin Online Food Delivery App. Get delicious meals delivered straight to your doorstep.","og_url":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/","og_site_name":"TechVidvan","article_publisher":"https:\/\/www.facebook.com\/TechVidvan\/","article_published_time":"2023-09-27T13:30:23+00:00","article_modified_time":"2026-06-03T07:19:49+00:00","author":"TechVidvan Team","twitter_card":"summary_large_image","twitter_creator":"@vidvantech","twitter_site":"@vidvantech","twitter_misc":{"Written by":"TechVidvan Team","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#article","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/"},"author":{"name":"TechVidvan Team","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22"},"headline":"Android Kotlin Project &#8211; Online Food Delivery App","datePublished":"2023-09-27T13:30:23+00:00","dateModified":"2026-06-03T07:19:49+00:00","mainEntityOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/"},"wordCount":1223,"commentCount":0,"publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#primaryimage"},"thumbnailUrl":"","keywords":["android kotlin food delivery app","android kotlin food delivery app project","android kotlin project","android kotlin project for practice","android kotlin project ideas","online food delivery app","online food delivery app project"],"articleSection":["Android Kotlin Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/","url":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/","name":"Android Kotlin Project - Online Food Delivery App - TechVidvan","isPartOf":{"@id":"https:\/\/techvidvan.com\/tutorials\/#website"},"primaryImageOfPage":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#primaryimage"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#primaryimage"},"thumbnailUrl":"","datePublished":"2023-09-27T13:30:23+00:00","dateModified":"2026-06-03T07:19:49+00:00","description":"Order food anytime, anywhere with Android Kotlin Online Food Delivery App. Get delicious meals delivered straight to your doorstep.","breadcrumb":{"@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/techvidvan.com\/tutorials\/android-kotlin-online-food-delivery-app\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/techvidvan.com\/tutorials\/"},{"@type":"ListItem","position":2,"name":"Android Kotlin Project &#8211; Online Food Delivery App"}]},{"@type":"WebSite","@id":"https:\/\/techvidvan.com\/tutorials\/#website","url":"https:\/\/techvidvan.com\/tutorials\/","name":"TechVidvan Blogs","description":"","publisher":{"@id":"https:\/\/techvidvan.com\/tutorials\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/techvidvan.com\/tutorials\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/techvidvan.com\/tutorials\/#organization","name":"TechVidvan","url":"https:\/\/techvidvan.com\/tutorials\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/","url":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","contentUrl":"https:\/\/techvidvan.com\/tutorials\/wp-content\/uploads\/2024\/03\/techvidvan-logo-200x50-1.webp","width":200,"height":50,"caption":"TechVidvan"},"image":{"@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/TechVidvan\/","https:\/\/x.com\/vidvantech"]},{"@type":"Person","@id":"https:\/\/techvidvan.com\/tutorials\/#\/schema\/person\/e9c26e74dd3d87421f7ada9433b8cd22","name":"TechVidvan Team","description":"The TechVidvan Team delivers practical, beginner-friendly tutorials on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our experts are here to help you upskill and excel in today\u2019s tech industry."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/87763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/comments?post=87763"}],"version-history":[{"count":1,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/87763\/revisions"}],"predecessor-version":[{"id":447987,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/posts\/87763\/revisions\/447987"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/media?parent=87763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/categories?post=87763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techvidvan.com\/tutorials\/wp-json\/wp\/v2\/tags?post=87763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}