Tags
Language
Tags
December 2024
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Modern Food Recipes App - Android Development With Kotlin

Posted By: ELK1nG
Modern Food Recipes App - Android Development With Kotlin

Modern Food Recipes App - Android Development With Kotlin
Last updated 12/2021
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.44 GB | Duration: 15h 54m

Develop beautiful and fully functional Android App in Android Studio using the power of Kotlin programming language.

What you'll learn
Develop a fully functional Android App
Food Recipes Android app
ROOM Database
Dependency Injection - Dagger-Hilt
Retrofit
Offline Cache
Local & Remote Data Sources
Kotlin
Kotlin Coroutines
Android Architecture Component
Navigation Component
DataStore Preferences
Data Binding
ViewModel
AndroidViewModel
LiveData
Flow
DiffUtil
RecyclerView
Search Recyclerview
REST API
Client - Server Communication
Send HTTP Request
Parse HTTP Response
Dark and Light Theme
Night Mode
Motion Layout
Material Components
Material Design
Create Shimmer Effect
Database Inspector
ViewPager
ViewPager2
Create Contextual Action Mode
Share Data with Other Apps
Create Modal Bottom Sheet
Nice looking UI Design
Migration from kotlin-android-extensions plugin
And more…
Requirements
Basic knowledge of Kotlin programming langauge
Basic knowledge of Android Architecture Components
Knowledge about Adobe XD is a plus (but not necessary)
Description
Hello there and welcome to my course, in this course I'm going to teach you how to create a fully functional Android application using the power of Kotlin programming language. We are going to develop Food Recipes application, where we can browse recipes from various different kind of meal and diet types. This App Design will be a lot similar to the one from my Material UI Design course which I made a while ago.Our application will work with both Remote and local data sources. And for Remote data source we will use a third party API for food recipes, called Spoonacular. I'm going to teach you how to establish connection between your app and the server. So basically we will send GET Request to our API and receive a list of food recipes as a Response. Also our app will be able to handle no internet connection, and store or cache the data localy to our database when it's needed.Also from our application we will be able to search recipes from our API directly. So if you have your favorite flavor you can search it here and probably you'll find many amazing recipes. Next our app will have Favorites Fragment where we can save our favorite recipes for later use when we need them. And finally our app will have it's fun side, and that is food joke fragment.However this course is not for Absolute Beginners in Android Development, at least you need to have a basic knowledge about most popular Android Architecture components, and Kotlin programming language in general. This is not going to be easy task especially if you haven't worked before simultaneously with API and local database. Still don't get discouraged everything is learnable here, if you are motivated enough of course.One more thing, so this course will be an ongoing project which means that I will post updates on a regular basis, whenever we find a new bug, or whenever some code cleanup is required. Which is why I want to involve all of you who watch this course to work together with me in making this  app even better. I'm going to give me you more details about that at the end of this course of course.So what are you waiting for, let's get started developers!Source code: Visit my Github profile (stevdza-san)

Overview

Section 1: Introduction

Lecture 1 Introduction

Lecture 2 Application Design

Lecture 3 Application Preview

Lecture 4 Project Structure Overview

Lecture 5 Introducing with API

Lecture 6 API Response Example

Lecture 7 Github Repository

Section 2: Navigation Component Setup

Lecture 8 Project Setup

Lecture 9 Navigation Component Setup

Section 3: Design RecipesFragment Layout

Lecture 10 Design RecipesFragment Layout

Lecture 11 Design RecipesRowLayout

Lecture 12 Design Recyclerview Placeholder Layout

Section 4: Start with Retrofit

Lecture 13 Introducing with Retrofit

Lecture 14 Generate Model classes for API

Lecture 15 Create Constants class

Lecture 16 Create RecipesApi interface

Lecture 17 Project Structure Overview & RemoteDataSource class

Section 5: Introducing with Dependency Injection

Lecture 18 Dependency Injection Overview

Lecture 19 Manual Dependency Injection

Lecture 20 Dagger Basics

Lecture 21 Hilt - Dependency Injection Library | Part 1

Lecture 22 Hilt - Dependency Injection Library | Part 2

Lecture 23 Component Scoping

Section 6: Dagger-Hilt Setup - NetworkModule

Lecture 24 Create MyApplication class

Lecture 25 Create NetworkModule

Lecture 26 Inject RemoteDataSource class

Lecture 27 Create and Inject Repository class

Lecture 28 Create NetworkResult class

Lecture 29 Create and Inject MainViewModel class

Section 7: Introducing with Data Binding

Lecture 30 Introducing with Data Binding

Lecture 31 Binding Adapters

Section 8: Display API Data in Recyclerview

Lecture 32 Create RecipesAdapter class

Lecture 33 DiffUtil - Create RecipesDiffUtil class

Lecture 34 Create RecipesRowBinding class

Lecture 35 RecipesFragment - Connect the Dots

Lecture 36 Create RecipesViewModel class

Lecture 37 Let's Recap

Section 9: Introducing with ROOM Library

Lecture 38 Introducing with ROOM Library

Section 10: ROOM Database

Lecture 39 Offline Caching

Lecture 40 Introducing with Kotlin Flow

Lecture 41 Create Entity (RecipesEntity)

Lecture 42 Create DAO (RecipesDao)

Lecture 43 Create Type Converter (RecipesTypeConverter)

Lecture 44 Create Database (RecipesDatabase)

Section 11: Dagger-Hilt Setup - DatabaseModule

Lecture 45 Create DatabaseModule

Lecture 46 Create and Inject LocalDataSource

Lecture 47 MainViewModel - Offline Cache

Lecture 48 RecipesFragment - Read from Database

Lecture 49 ObserveOnce - Extension Function

Lecture 50 Database Inspector

Lecture 51 Placeholder Image - Error

Lecture 52 Create RecipesBinding class

Section 12: Introducing with DataStore Preferences

Lecture 53 Introducing with DataStore Preferences

Section 13: Add Bottom Sheet

Lecture 54 About BottomSheet

Lecture 55 Design RecipesBottomSheet

Lecture 56 Navigate to RecipesBottomSheet

Lecture 57 Customize Chip Style

Lecture 58 Create and Inject DataStoreRepository class

Lecture 59 Modify and Inject RecipesViewModel

Lecture 60 RecipesBottomSheet - Persist Selected Chips

Lecture 61 Handle Return from BottomSheet - Safe Args

Lecture 62 Bottom Sheet - Recap

Section 14: Handle Internet Connection

Lecture 63 Introducing with StateFlow

Lecture 64 Create NetworkListener class

Lecture 65 RecipesFragment - Listen for Internet Connection

Lecture 66 Back Online - Persist data with DataStore

Section 15: Search Recipes

Lecture 67 Design RecipesFragment Menu

Lecture 68 FoodRecipesApi - searchRecipes()

Lecture 69 RemoteDataSource - searchRecipes()

Lecture 70 MainViewModel - Handle Search Response

Lecture 71 RecipesFragment - searchApiData()

Section 16: DetailsActivity & OverviewFragment

Lecture 72 Design activity_details Layout

Lecture 73 Send Result to DetailsActivity - Safe Args

Lecture 74 Create PagerAdapter class

Lecture 75 Design fragment_overview Layout

Lecture 76 OverviewFragment - Display Recipe Data

Lecture 77 Parse HTML Text - Jsoup

Section 17: IngredientsFragment

Lecture 78 Design fragment_ingredients Layout

Lecture 79 Design ingredients_row_layout

Lecture 80 Modify RecipesDiffUtil class

Lecture 81 Create IngredientsAdapter class

Lecture 82 IngredientsFragment - Display Ingredients Data

Section 18: InstructionsFragment

Lecture 83 Modify InstructionsFragment

Lecture 84 Modify OverviewFragment & recipes_row_layout

Section 19: ROOM Database - Favorite Recipes

Lecture 85 Create FavoritesEntity class

Lecture 86 Modify RecipesTypeConverter class

Lecture 87 Modify RecipesDao interface

Lecture 88 Modify LocalDataSource class

Lecture 89 Modify MainViewModel class

Lecture 90 Modify RecipesDatabase class

Section 20: Add to Favorites - Details Activity

Lecture 91 Create details_menu

Lecture 92 Save Recipe to Favorites

Lecture 93 Check if Recipe is Saved

Lecture 94 Remove Recipe from Favorites

Section 21: FavoriteRecipesFragment

Lecture 95 Design fragment_favorite_recipes Layout

Lecture 96 Design favorite_recipes_row_layout

Lecture 97 Create FavoriteRecipesAdapter class

Lecture 98 Display Favorite Recipes

Lecture 99 Create FavoriteRecipesBinding class

Section 22: Contextual Action Mode

Lecture 100 FavoriteRecipesFragment - Single Click Listener

Lecture 101 FavoriteRecipesFragment - Long Click Listener

Lecture 102 Apply Contextual Action Mode Style

Lecture 103 Recipe Selection Style - onLongClick

Lecture 104 Apply Contextual Action Mode Title

Lecture 105 Delete Selected Favorite Recipes

Lecture 106 Close Contextual Action Mode

Lecture 107 FavoriteRecipesFragment - ParseHTML

Lecture 108 Recap - Contextual Action Mode

Lecture 109 Create favorite_recipes_menu

Section 23: FoodJokeFragment

Lecture 110 Design fragment_food_joke

Lecture 111 Create FoodJoke model class

Lecture 112 Create FoodJoke GET Request

Lecture 113 Modify RemoteDataSource - FoodJoke

Lecture 114 Modify MainViewModel - FoodJoke

Lecture 115 Offline Cache - FoodJoke

Lecture 116 FoodJokeFragment - Let's Start

Lecture 117 FoodJokeBinding class - Part 1

Lecture 118 FoodJokeBinding class - Part 2

Lecture 119 Add Share Menu

Lecture 120 Recap - FoodJokeFragment

Section 24: Splash Screen

Lecture 121 Add Splash Screen

Section 25: Dark Theme

Lecture 122 RecipesFragment - Dark Theme

Lecture 123 FavoriteRecipesFragment - Dark Theme

Lecture 124 FoodJokeFragment - Dark Theme

Lecture 125 RecipesBottomSheet - Dark Theme

Lecture 126 Placeholder Row Layout - Dark Theme

Lecture 127 DetailsActivity - Dark Theme

Lecture 128 OverviewFragment - Dark Theme

Lecture 129 IngredientsFragment - Dark Theme

Section 26: Motion Layout

Lecture 130 Add Motion Layout - OverviewFragment

Section 27: App Icon

Lecture 131 Add App Icon

Section 28: Final Word

Lecture 132 Final Word

Section 29: Course Updates - Bug Hunt & Code Cleanup

Lecture 133 DataStore 1.0.0-alpha04 - Package Issue Fixed

Lecture 134 Internet Connection Bug - Fixed

Lecture 135 Migrate from 'kotlin-android-extensions' plugin

Lecture 136 Migrate to ViewPager2

Lecture 137 Code Cleanup - RecipesBinding & RecipesRowBinding

Lecture 138 Fix a Memory Leak - RecipesBottomSheet

Lecture 139 FavoriteRecipesBinding - Code Cleanup

Lecture 140 Yellow Star Issue - Fixed

Lecture 141 Multi Selection Mode - Fixed

Lecture 142 RecyclerView - Item Selection State - Fixed

Lecture 143 Dependency Update - Dagger-Hilt and Data Store

Lecture 144 Dependency Update - DataStore-Alpha07

Lecture 145 OverviewFragment - Code Cleanup

Lecture 146 Jcenter Migration + Code Cleanup & Bug Fix

Lecture 147 RecipesBottomSheet bug fixed & Updated updateChip() fun

Lecture 148 Motion Layout & View Pager gestures conflict - Fixed

Lecture 149 NetworkListener's class function Updated

Android Developers,Mobile App Developers,Software Developers,Kotlin Programmers