Android Masterclass with Kotlin: From Zero to Expert
From zero to advanced by creating Chat, Uber Clone, Quiz and more — no experience needed, master Android development
From zero to advanced by creating Chat, Uber Clone, Quiz and more — no experience needed, master Android development
Kotlin and Android Development Masterclass
Are you ready to embark on a transformative journey into Android app development? Look no further! This course will make you a confident Android developer — guided by Dobinca Alexandru, one of the best Udemy instructors.
Reviews Speak Volumes:
• "One of the BEST Instructors on Udemy: Dobinca Alexandru."
• Uttkarsh Srivastava: "One of the best instructors seen on Udemy. The way he explains and replies to all the comments is great."
• Omar Yousif: "I recommend it for beginners. Also for those who want to add more skills to their resume."
• Aftab Lateef: "Great course! I like the way it is structured and covers a wide array of important topics that every Android developer should be aware of."
• Brian Businge: "So clear and precise."
• Hatem Alamin: "He explains every detail in a nice way, so I loved the content."
• Sultonov Dilshod: "I love it very much. The course is completed with contemporary IT knowledge."
• Jon Silva: "Accent is not difficult for me... I recommend this course to everyone."
Instructor Excellence
When you join this course, you’re not just gaining access to top-notch content — you also get direct access to Dobinca Alexandru, who goes above and beyond to ensure your success.
• Responds to literally every question
• Takes feedback seriously
• Added entire new sections, including updates on Jetpack Compose and modern Android tools
This level of engagement and commitment sets this course apart.
• Start with the fundamentals: variables, data types, control structures
• Progress to MVVM architecture and advanced concept
Advanced Concepts
• Coroutines: Write asynchronous, non-blocking code
• Generics: Create flexible and reusable code
• Databases (SQL, Firestore, Room): Handle data efficiently
• Navigation Component: Build smooth navigation flows
• Retrofit: Make network calls and handle APIs
• Notifications, Broadcast Receivers, Services: Manage background tasks
• RxJava: Build reactive, event-driven apps
• Dagger 2 & Hilt: Implement dependency injection professionally
• Kotlin Multiplatform: Explore cross-platform developmen
• Widgets: Bring interactive experiences to home screens
• Jetpack Compose: Build modern, stunning UIs
XML and Jetpack Compose Approach
• Every app is built twice:
• Once using traditional XML layouts
• Once using Jetpack Compose
Master both classic and modern ways of Android development
Hands-On Projects
• Quiz App
• Drawing App
• Weather App
• Messenger App
• Uber Clone
• 100-Episode Food App (Jetpack Compose): Build a complete modern app from start to finish
What You’ll Learn:
• Master Kotlin: Deep proficiency in the official Android language
• Build a Solid Foundation: Essentials — variables, functions, OOP, data persistence
• Advanced Android Development: MVVM, dependency injection, reactive programming, background services
• Develop Real-World Projects: Apps for your portfolio
• Understand Both XML and Compose: Smoothly transition between classic and modern UI frameworks
Conclusion:
Step into the dynamic world of Android development, guided by Dobinca Alexandru.
Perfect for beginners or those with some coding experience
Gain skills, confidence, and real-world projects to excel as an Android developer
Start your journey today — and unlock a world of possibilities!
Khu vực Câu hỏi thường gặp trống
How to stay motivated?
Xem trướcCurriculum Walkthrough
Xem trướcHow to join the Discord group?
Xem trướcHow to get most out of this course?
Xem trướcInstall Intellij IDEA
Xem trướcHello World Program
Variables
In Kotlin, what keyword is used to declare a read-only variable?
Xem trướcWhat is the default visibility modifier for variables in Kotlin?
Xem trướcHow is type inference utilized when declaring variables in Kotlin?
What is the purpose of the lateinit modifier for variables in Kotlin?
What is the scope of a variable declared inside a function in Kotlin using
If Statement
Operators: Less than or equal to operator
Logical AND operator
Logical OR operator and If Expression
New Window
When Statement-Expression
What is the purpose of the if statement in Kotlin?
What is the result of the expression 5 <= 3 in Kotlin?
What does the && operator do in Kotlin?
What is the purpose of the || operator in Kotlin?
What is the purpose of the when statement in Kotlin?
Functions
Functions: Return and Expressions
Function: Overloading
Functions: Default Values
Functions: vararg keyword
What is the purpose of a function in Kotlin?
What is the return type of a function in Kotlin?
What is function overloading in Kotlin?
How is a default argument specified in a Kotlin function?
For Loop
While, Do While and Labels
Loops Challenge
What is the purpose of the for loop in Kotlin?
How is a while loop terminated in Kotlin?
What is the purpose of the continue statement in a loop in Kotlin?
What is the purpose of the downTo keyword in a for loop in Kotlin
How can you use the break statement in a loop in Kotlin?
Arrays
Arrays Challenge
How do you declare an array of integers in Kotlin?
What is the function used to access an element at a specific index in an array?
How do you find the size of an array in Kotlin?
How can you initialize a two-dimensional array in Kotlin?
How do you iterate over elements in an array in Kotlin using a for loop?
Classes
Primary Constructor
Initializer Block
Secondary Constructors
Default Values For Constructor Parameters
Getters and Setters
Lateinit keyword
Companion Object
Singleton
Lazy Initialization
Enum Class
Inner Class
OOP Challenge
Inheritance 1
Inheritance 2
Sealed Class
Abstract Classes
Data Class
Interface 1
Interface 2
Object Expression
Delegation
What is a class in Kotlin?
What is the primary purpose of the init block in a Kotlin class?
In Kotlin, what is the keyword used for inheritance between classes?
What is the concept of allowing a subclass to provide a specific implementation
What does the super keyword refer to in Kotlin within a subclass?
What is encapsulation in Kotlin?
What is the visibility modifier private used for in Kotlin?
What is a data class in Kotlin?
How is method overriding denoted in Kotlin?
List, Set, Map.
Transformations: Mapping
Transformation: Zipping and Association
Transformations: Flatten
Transformations: String Representation
Filtering
Test predicates: any(), none(), all()
Plus and minus operators
Grouping
Retrieve collection parts
Retrieve collection single elements
Aggregate operations: sum(), average(), count(), minOrNull(), maxOrNull()
Comparable and Comparator
Binary Search
What is the primary purpose of the mutableListOf function in Kotlin?
What is the purpose of the map function on collections in Kotlin?
What does the distinct function do in Kotlin on a collection?
What is the purpose of the groupBy function on collections in Kotlin?
What is the primary difference between a List and a Set in Kotlin?
Generics: Type Parameters and Casting
Generics: Upper Bounds
Generics: Covariance and Contravariance
Generics: Type Erasure and Reified keyword
Generics: Where; 2 Upper Bounds
Access Modifiers
What is the purpose of using generics in Kotlin?
In a generic class declaration in Kotlin, what does the <T> syntax represent?
What does the out modifier in the context of generics in Kotlin signify?
What is the purpose of the reified keyword in Kotlin generics?
How do you specify multiple upper bounds for a type parameter in Kotlin generics
Lambda Function and Higher Order Functions
Lambda: it keyword
Scope Functions: let, run, apply, with, also.
What is a lambda function in Kotlin?
What is the purpose of the run scope function in Kotlin?
Which scope function is often used for initializing properties of an object conc
In a lambda expression, what does the it keyword refer to by default?
What is the primary purpose of the apply scope function in Kotlin?
Coroutines Introduction
Coroutines Implementation
Coroutines Builders: launch, async and runBlocking
Coroutines: Cancellations, Timeouts and Exceptions
Coroutines: Structured Concurrency, Exceptions
Coroutines: Sequential, Parallel, Lazy
Coroutines: withContext
What is a coroutine in Kotlin?
What is the primary benefit of using coroutines for asynchronous programming in
What is the purpose of the suspend keyword in Kotlin coroutines?
What is the purpose of the async coroutine builder in Kotlin?
Quiz App Intro
Quiz App: UI - Welcome Screen
Quiz App - Creating Question Model
Quiz App - Setting the QuizActitivty
Quiz App - Connecting UI with the Model
Quiz App - Adding the Button functionality
Quiz App - Selecting the Right and Wrong answers
Quiz App - Setting up the UI for ResultActivity
Quiz App - Improve code
Quiz App - Sending data to ResultActivity
Quiz App - Solving score bug
Drawing App Intro
Drawing App - DrawingView 1
Drawing App - DrawingView 2
Drawing App - Let The Drawing Persist
Drawing App - How to use DisplayMetrics
Drawing App - Selecting Brush Size
Drawing App - scaleType
Drawing App - Adding Buttons
Drawing App - Adding Button Alternative way
Drawing App - Fix Background of the Buttons
Drawing App - Change Brush Color
Drawing App - Undo Paths
Drawing App - Color Picker Dialog
Drawing App - Request Permissions
Drawing App - Getting Image from Gallery
Drawing App - Save Image in the Phone
Drawing App - Save Image on the Phone 2
Drawing App - Save Image on the Phone 3
Firestore Introduction
Firestore Setup and adding data to document
Firestore: Load Document Data
Firestore: Adding SnapshotListener
Firestore: Updating a single field
Firestore: Delete field and document
Firestore: Save and Retrieve Data using a custom object
Firestore: Retrieve multiple documents
Firestore: Query data
Firestore: Chain multiple queries
Firestore: Getting data using separated queries
Firestore: Pagination
Firestore: Listen to Document Changes
Firestore: Batch Writes
Firestore: Transaction
Firestore: Adding Arrays
Firestore: Nested Objects
Firestore: SubCollections
SharedPreferences
SQL 1
SQL 2
SQL 3
SQL 4
SQL 5
SQL 6
SQLlite Room Introduction
SQLite Room 1 Note App
SQLite Room 2 Note App
SQLite Room 3 Note App
SQLite Room 4 Note App
SQLite Room 5 RecyclerView Adaptor
SQLite Room 6 Adaptor 2
SQLite Room 7 AddEditNoteActivity
SQLite Room 8 Swipe to Delete
SQLite Room 9 EditNote
SQLite Room 10 Animatons
What is JSON?
Gson - Serialization and Deserialization
Gson - Nested Objects
Gson - Custom Type
Gson - Expose
Gson - Custom Exclusion Strategy
Retrofit - GET Request
Retrofit - URL Manipulation: Path, Query
Retrofit - URL Manipulation: Query Map
Retrofit - POST Request
Retrofit - FormUrlEncoded
Retrofit - PUT, PATCH and DELETE
Weather App - Preaparing The Project
Weather App - Requesting Permissions
Weather App - Requesting Permissions 2
Weather App - Preaparing the Internet Connection
Weather App - Creating Weather Response Model
Weather App - Getting the Data Using Retrofit
Weather App - Setting Up the UI
Weather App - Formatting Time
Chat App Intro
DataBinding
ChatApp UI - Sing in and Sing up
ChatApp UI - Theme
ChatApp Code - Authenticate and Create Account for the User
ChatApp UI - Pick Profile Photo
Chat App - Getting the image
ChatApp Code - Ask for permission of internal storage
ChatApp Code - Adding the image to Fireabase Storage
ChatApp Code - Creating Firestore Database
ChatApp Code - Sending user to Chat Activity
ChatApp Code - Fixing error
ChatApp Code - Solution
ChatApp Code - Setting up the ChatActivity
Chat App Code - Sending and Retrieve messages
Chat App Code - Sing out the user
Chat App Code - Fix messages
Chat App Code - Ordering the messages
ChatApp Code - ChatMessage
Chat App Code - Sending Image Message
Chat App Code - Sending Image Message 2
Uber Clone Introduction
Uber Clone - Connecting to Firebase and adding RxJava
Uber Clone - Authenticate The User
Uber Clone - Register User
Uber Clone - Driver Home Screen; Google Maps
Uber Clone - Driver System Location
Uber Clone - Driver Info
Uber Clone - Update Driver Info
Uber Clone - Update Driver Info 2
Uber Clone - Firebase Cloud Messaging
Uber Rider Clone - Initialize the project
Uber Rider Clone - Register the User
Uber Rider Clone - Google Maps
Uber Clone - Limit Driver to a particular city
Uber Rider - Show Available Drivers
Uber Rider - Show Available Drivers Part 2
Uber Rider - Car Animation
Uber Rider - Multiple Cars Moving
Uber Rider - Integrate Google Places
Uber Rider - Estimate Routes
Uber Rider - Confirm Uber
Uber Rider - Confirm Pickup Spot
Uber Rider - Find Nearby Driver
Uber Rider - Send Request From Rider to Driver
Uber Rider - Design Request Driver Layout
Driver Uber - Display Request Driver
Driver Uber - Display Request Driver Part 2
Driver Uber Clone - Driver App Process Decline Request
Uber Clone - Driver Location
Rider Uber Clone - Decline Request
No programming experience needed; you will learn everything you need in this course.
This course will teach you the Kotlin programming language from the ground up, covering its syntax, data types, and control structures.
You will learn how to use Kotlin to build Android apps, including how to design UI layouts, handle user input, and connect to web services.
By the end of the course, you'll be able to create fully-functional Android apps that can be deployed to the Google Play Store.
Along the way, you'll gain valuable skills in problem-solving, debugging, and software development that will serve you well in any programming-related career
You will learn and master Jetpack Compose
You'll be able to work as an Android freelancer and work from anywere in the world.
You will build Apps for your portfolio to apply for developer Jobs.
1.2
1 Học viên
275 Khóa học
1253 Đánh giá
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
Xem chi tiết