Course Overview
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!
FAQ
FAQ area empty
Course curriculum
-
How to stay motivated?
Xem trước -
Curriculum Walkthrough
Xem trước -
How to join the Discord group?
Xem trước -
How to get most out of this course?
Xem trước -
Install Intellij IDEA
Xem trước -
Hello World Program
-
Variables
-
In Kotlin, what keyword is used to declare a read-only variable?
Xem trước -
What is the default visibility modifier for variables in Kotlin?
Xem trước -
How 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
Requirment
-
No programming experience needed; you will learn everything you need in this course.
Outcomes
-
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.
Instructor
Nguyễn Đình Cường
1.2
-
1 Student
-
330 Courses
-
1253 reviews
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!
View Details