03.02.2024, 12:27
Project- Flame Browser And Downloader For Android Smartphone
Published 6/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 37.73 GB | Duration: 70h 12m
Build the whole project in this course and learn Android App Development
What you'll learn
Basic to Advance level Android programming
Create your own multi tab browser and multi segment downloader!
Enhance your coding skills by learning useful topics
Publish your app live for the audience and start your Android App Developer journey
Requirements
Only basic programming experience is needed.
Description
I am author of GinxDroid Browser and Downloader. In this course we will build Flame Browser and Downloader for Android Smartphone. It will be multi tab browser with attached multi segment downloader. You will gain knowledge about how real world android apps are developed and published. You can refer this project for your future app development. Some highlighted features that we are going to develop are Themes, Tab Manager (by creating out custom layout manager for RecyclerView), Multi segement downloader to boost download speed, Refresh download address functionality to refresh expired links, version control system (VCS), VCS operations, animations, prorgessbars - indeterminate and determinate, using third party libraries, attributing third party libraries properly, debugging, using lint tools to perform linting to mitigate warnings and errors, speed dials, history, bookmarks, homepages, splashscreen, launcher icon, notification, services, popup window, alert dialogs, fragmens, various layouts (how to use them in real world app effectively) and lot more development stuff is waiting for you in this course. And at the end we will publish production build live on Google Play Store! All this is witihin a single course! More that 200 code along sessions. Each session will start with introduction and ends with a section wrap up and quiz.
Overview
Section 1: Introduction
Lecture 1 Course Introduction
Lecture 2 Project Introduction
Section 2: Getting Started with Android Studio IDE
Lecture 3 Installing Android Studio (Part I)
Lecture 4 Installing Android Studio (Part II)
Lecture 5 Tweaking Android Studio settings
Lecture 6 Increasing Android Studio performance
Lecture 7 Overview of various tabs of Android Studio
Section 3: Projects in Android Studio and basic concepts
Lecture 8 Creating new project in Android Studio
Lecture 9 Overview of Android Manifest file
Lecture 10 Overview of Gradle Scripts
Lecture 11 Creating device profile in AVD and launching our app in AVD
Lecture 12 Creating new activity
Lecture 13 Activity Life Cycle
Lecture 14 View in android
Section 4: Version Control System (VCS)
Lecture 15 VCS - Introduction
Lecture 16 Adding Github account and sharing project on Github
Lecture 17 gitignore file - track and untrack files in VCS
Lecture 18 commit and push
Lecture 19 revert old commit and push
Lecture 20 checkout and revert commit
Section 5: Starting development of Flame Browser & Downloader and creating Themes Module.
Lecture 21 Layouts in Android - General Introduction
Lecture 22 Creating necessary attributes and declaring resources for our application
Lecture 23 Android Material Design - Getting Started
Lecture 24 Adding Bottom App Bar and Floating Action Button
Lecture 25 Theme Module - Introduction
Lecture 26 Creating DatabaseHandler (SQLiteOpenHelper) class
Lecture 27 Database CRUD operations (DB Tables creation, first initialization)
Lecture 28 Inserting Themes in Database and Updating old Database Schema
Lecture 29 Creating Modal Bottom Sheet in Android - Themes Sheet
Lecture 30 Creating Themes Sheet Layout and understanding build types
Lecture 31 RecycleView in android - General Introduction
Lecture 32 Creating adapter class for our RecycleView
Lecture 33 Showing our theme models to user
Lecture 34 Making Bottom Sheet top corners rounded
Lecture 35 Adding Dark Themes column to existing database
Lecture 36 Creating utility database functions related to our themes module
Lecture 37 Custom alert dialogs in android (continuing development of our themes module)
Lecture 38 Creating theme resources for our app
Lecture 39 Creating application level class for making themes persistant
Lecture 40 Creating base activity and applying our themes in that base activity
Lecture 41 Creating enable night mode for web pages functionality
Lecture 42 Creating Quick Action buttons for themes module
Lecture 43 Tweaking first initialization
Lecture 44 Wrapping up our themes module
Section 6: Creating Tab Manager Skeleton
Lecture 45 Creating adapter class for Tab Manager - RecyclerView
Lecture 46 Addition of new tab in tab manager - creating some helper functions
Lecture 47 Starting creation of custom layout manager - CustomHorizontalManager
Lecture 48 Continuing creation of CustomHorizontalManager
Lecture 49 Creating functionality for minimizing expanded tab
Lecture 50 Creating functionality for maximizing minimized tab
Lecture 51 Creating tab preview screen before scrolling functionality
Lecture 52 Creating scrolling functionality
Lecture 53 Creating scrollLeft and scrollRight functions
Lecture 54 Removing tab from tab manager
Lecture 55 Creating tab removal case in CustomHorizontalManager
Lecture 56 Creating Swipe Gesture for removing tab
Lecture 57 Wrapping up tab manager skeleton section
Section 7: Creation of Screen One that is Default Home Page
Lecture 58 Glimpse of two screens and upgrading Gradle plugin to V8
Lecture 59 Adding bottom bar for tab
Lecture 60 Designing top bar
Lecture 61 Creating Default Home Page layout
Lecture 62 Adding WebView and ProgressBar in Tab layout
Lecture 63 Using RecycledViewPool and creating QuickLinksRVHomePageAdapter
Lecture 64 Creating Quick Link item related database functions
Lecture 65 Continuing development of QuickLinksRVHomePageAdapter
Lecture 66 Creating TextDrawable class
Lecture 67 Wrapping creation of default home page section
Section 8: WebView - Creating basic functionality, creating tab preview
Lecture 68 What is WebView in android?
Lecture 69 Rendering first Webpage and Tweaking WebView related settings
Lecture 70 Showing webpage URL in top bar
Lecture 71 Showing progress of webpage to user
Lecture 72 Creating tab preview and showing it
Lecture 73 Fixing tab preview glitch
Lecture 74 Section wrap up
Section 9: Building menu for app
Lecture 75 Introduction
Lecture 76 Referencing menu structure of our ready project
Lecture 77 Creating layout for menu sheet
Lecture 78 RVIndicator class development - Part I
Lecture 79 RVIndicator class development - Part II and showing MenuSheet to user
Lecture 80 Cretion of MenuHelper class for showing Menu RecyclerView
Lecture 81 Creating adapter for Menu RecyclerView
Lecture 82 Creating menu screen one layout
Lecture 83 Creating menu screen two
Lecture 84 Showing our final menu to user
Lecture 85 Creating functionality for bottom buttons of our menu
Lecture 86 Hiding bottom bar when keyboard is visible and fixing view full screen bug
Lecture 87 Creating web mode functionality
Lecture 88 Continuing creation of menu screen one buttons functionality
Lecture 89 Showing web page title and favicon to user
Lecture 90 defining case 9 and 10 in CustomLayoutManager
Lecture 91 Calling close this tab after making inner structure ready for closing tab
Lecture 92 Creating functionality for close this tab button
Lecture 93 Creating functionality for find in page button
Lecture 94 Creating functionality for share, copy and print buttons
Lecture 95 Creating text scaling functionality
Lecture 96 Creating settings activity before wrapping menu section
Lecture 97 Wrapping up menu section
Lecture 98 Important note before moving to next section
Section 10: Creation of Home Page, History, Bookmarks and Speed Dial module
Lecture 99 Creating database related functions for home page module
Lecture 100 Adding home page URL in database
Lecture 101 Different webpage as home page not rendering - bug fix
Lecture 102 Making go to home page functionality
Lecture 103 Creating layout for manage home pages
Lecture 104 Creating hiding functionality for manage home pages search box
Lecture 105 Creating home page item row for RecyclerView
Lecture 106 Creating MangeHomePagesRVAdapter
Lecture 107 Creaeting functionality for deleting home page item
Lecture 108 Creating necessary database tables and methods
Lecture 109 Finally using ManageHomePagesRVAdapter with RecyclerView
Lecture 110 Creating functionality for bookmark this button
Lecture 111 Creating manage bookmarks functionality
Lecture 112 Creating BookmarksHelper class
Lecture 113 Creating case 6 and 4 in CustomHorizontalManager
Lecture 114 Creating add to speed dial functionality
Lecture 115 Creating menu for quick link item
Lecture 116 Creating functionality for open in background button of quick link menu
Lecture 117 Changing speed dial name functionality
Lecture 118 Creating remove speed dial functionality
Lecture 119 Creating history item related database functions
Lecture 120 Storing history item in database
Lecture 121 Creating manage history activity and its layout
Lecture 122 Creating ManageHistoryRVAdapter
Lecture 123 Creating row layout for history RecyclerView
Lecture 124 Testing manage history functionality after creating adapter for RecyclerView
Lecture 125 Creating swipe gesture for removing history item
Lecture 126 Creating clear history functionality
Lecture 127 Creating history helper class
Lecture 128 Wrapping up History, Bookmarks and Speed Dial section
Section 11: Search Engines and Search History for our browser
Lecture 129 Section introduction
Lecture 130 Creating database table and necessary helper functions
Lecture 131 Popup Window in android for showing search engines
Lecture 132 Creating adapter for RecyclerView which is present in Popup Window
Lecture 133 Fixing search engine adapter errors
Lecture 134 Using search engine adapter with RecyclerView
Lecture 135 Opening search engine selector PopupWindow from default home page
Lecture 136 Creating our search widget module
Lecture 137 Showing our search widget to user
Lecture 138 Creating search history table and its helper methods in DatabaseHandler
Lecture 139 Creating item row layout for search history RecyclerView
Lecture 140 Creating adapter for search history RecyclerView
Lecture 141 Using adapter with RecyclerView of our search widget module
Lecture 142 Creating voice launcher related functions
Lecture 143 Continuing creation of voice launcher functionality
Lecture 144 Handling microphone and DRM content request
Lecture 145 Creating manage search history activity and its related database functions
Lecture 146 Creating manage search history
Lecture 147 Section wrap up
Section 12: Settings and Site settings
Lecture 148 Creating site settings table in database and its related methods
Lecture 149 Creating site settings activity
Lecture 150 Referencing site settings activity views and making them functional
Lecture 151 Using our stored site settings
Lecture 152 Using site settings in our WebView
Lecture 153 Implementing location functionality
Lecture 154 Creating tips sheet
Lecture 155 Creating layout for clear records sheet
Lecture 156 Creating clear records functionality
Lecture 157 Creating share link of this app and reset settings functionality
Lecture 158 Creating about this app activity
Lecture 159 Creating legal information activity
Lecture 160 Creating credits activity
Lecture 161 Wrapping up section
Section 13: Launcher icon and splash screen and handling new intents and other functions
Lecture 162 Creating launcher icon for app
Lecture 163 Creating splash screen for app
Lecture 164 Handling new intent in MainActivity
Lecture 165 Creating necessary database table and functions for storing recent sites
Lecture 166 Creating settings for storing recent sites
Lecture 167 Getting current URLs from tab manager
Lecture 168 Defining case 7 and 8 in CustomHorizontalManager
Lecture 169 Creating open recent sites functionality
Lecture 170 Creating incognito mode
Lecture 171 Creating incognito clear records and enabling safe browsing
Lecture 172 Imp Note: Fixing user agent string
Lecture 173 Creating functionality for showing video in fullscreen mode
Lecture 174 Creating case 5 in CustomHorizontalManager
Lecture 175 Fixing error
Lecture 176 Creating onConfigurationChanged and tweaking manifest file
Lecture 177 Section wrap up
Section 14: Creating webpage menu, back button, popup blocker and other functionality
Lecture 178 Overriding back button functionality of device for our app
Lecture 179 Pause, Resume and Destroy WebView
Lecture 180 Creating file chooser callback
Lecture 181 Creating webpage menu layout
Lecture 182 Creating webpage menu
Lecture 183 Creating CustomHorizontalManager remaining methods
Lecture 184 Creating Popup Blocker
Lecture 185 Creating QR scanner functionality
Lecture 186 IMP NOTE: for improving tab manager performance
Lecture 187 Creating show connection information functionality
Lecture 188 Showing our app tutorial to user
Lecture 189 Section wrap up
Section 15: Creating Downloader for our Browser! - Adding and showing download tasks in UI
Lecture 190 Downloader section introduction (about development process of downloader)
Lecture 191 Creating downloader related database tables
Lecture 192 Creating DownloadTask model
Lecture 193 Creating database function for adding download task
Lecture 194 Adding extra coulmns in user preferences table
Lecture 195 Creating layout for storage path not choosen dialog
Lecture 196 Creating onListenDownload
Lecture 197 Creating select download path activity result launcher
Lecture 198 Creating download task fetcher and using it
Lecture 199 Creating HumanReadableFormat helper class
Lecture 200 Starting development of DownloadTaskFetcher class
Lecture 201 Creating HelperUtil class
Lecture 202 Continuing development of DownloadTaskFetcher class
Lecture 203 Creating layout of AddNewDTaskSheet
Lecture 204 Continuing developement of AddNewDTaskSheet
Lecture 205 Designing FirstActivity layout
Lecture 206 Fixing themes related bug and creating DownloaderSettings activity
Lecture 207 Creating DownloaderSettings activity layout
Lecture 208 Making DownloaderSettings activity views functional
Lecture 209 Making save image menu button functional
Lecture 210 Creating FragmentStateAdapter
Lecture 211 Creating editLLLinearLayout in activity_first.xml file
Lecture 212 Referencing editLL and its views and passing them to adapters
Lecture 213 Creating layouts for RecyclerViewAdapter's ViewHolder item
Lecture 214 Referencing views from layout in ViewHolder of RecyclerViewAdapter
Lecture 215 Creating database functions that will return task IDs
Lecture 216 Writing onBind code for RecyclerViewAdapter
Lecture 217 Defining functions of RecyclerViewAdapter
Lecture 218 Creating layout for CompletedRecyclerViewAdapterls ViewHolder
Lecture 219 Defining CompletedRecyclerViewAdapter functions
Lecture 220 LocalBroadcastManager and BroadcastReceiver - introduction and using them
Lecture 221 Creating BatteryOptimization sheet
Lecture 222 Asking post notifications permission from user
Lecture 223 Defining methods of FirstActivity
Lecture 224 Section wrap up
Section 16: Downloading our download task and showing it in FirstActivity
Lecture 225 Creating necessary database functions for downloading DownloadTask
Lecture 226 Creating CustomNotificationGenerator class
Lecture 227 Starting development of DownloadingService
Lecture 228 Defining DownloadsExecutor class in DownloadingService
Lecture 229 Start defining run method of DownloadingService
Lecture 230 Defining DownloadsExecutor methods
Lecture 231 Defining DownloadingService methods
Lecture 232 Continuing development of DownloadsExecutor
Lecture 233 Defining exception occurred methods
Lecture 234 Defining methods related to exception occurred methods
Lecture 235 Creating remaining exception occurred related methods
Lecture 236 Creating and defining necessary classes
Lecture 237 Creating necessary classes that will download segments of download task
Lecture 238 Adding one permission in manifest file and defining onStartCommand
Lecture 239 Section wrap up
Section 17: Wiring downloader with user interface
Lecture 240 Wiring download now, pause and resume UI with downloader
Lecture 241 Fixing UI not updating glitch
Lecture 242 Fixed progress bars not updating glitch
Lecture 243 Creating layout for popup error details dialog
Lecture 244 Coding methods for showing popup error details dialog
Lecture 245 Creating start from beginning method
Lecture 246 Defining methods related to onStartCommand code
Lecture 247 Creating normal message popup dialog
Lecture 248 Creating layout for refresh download address dialog
Lecture 249 Accessing refresh download address views & creating RefreshAddress thread
Lecture 250 Defining run method of RefreshTask
Lecture 251 Reviewing todos
Lecture 252 Starting creation of multi-select-delete functionality
Lecture 253 Defining onLongClickListener for MaterialCardView
Lecture 254 Changing onCreateListener for making multi-select functional
Lecture 255 Tweaking onBind function for showing MaterialCardView as checkd or unchecked
Lecture 256 Creating methods related to multi-select and delete
Lecture 257 Creating delete dialog layout
Lecture 258 Defining create delete popup methods
Lecture 259 Defining delete tasks
Lecture 260 Creating multi-select-delete related methods in CompletedRecyclerViewAdapter
Lecture 261 Creating onLongClickListener for CompletedRecyclerView item
Lecture 262 Defining onClickListener for CompletedRecyclerView item
Lecture 263 Defining onClickListeners and testing multi-select-delete functionality
Lecture 264 Creating activity - FileDetails layout
Lecture 265 Defining code in FileDetails and fixing some warnings
Lecture 266 Overriding FirstActivity methods
Lecture 267 Fixing MainActivity todo
Lecture 268 Committing our code
Lecture 269 Creating app and ad unit in AdMob dashboard
Lecture 270 Continuing AdMob banner ad implementation process
Lecture 271 Defining methods in FirstActivity for showing banner ads
Lecture 272 Creating consent message in AdMob
Lecture 273 Testing AdMob banner ads
Section 18: Preparing our app for final release and publishing it in Google Play Store
Lecture 274 Analyzing code before preparing bundle
Lecture 275 Doing final steps before bundling our app
Lecture 276 Genererating bundle of our app
Lecture 277 Publishing our app
Beginner android devs. and advanced android devs. who are curious about Android programming fundas!