We may earn an affiliate commission when you visit our partners.
Paulo Dichone | Software Engineer, AWS Cloud Practitioner & Instructor

Android App Development will open many doors for you since AAndroidis is the most popular operating system in the world.

You may want to learn Android development for many reasons- maybe you have many app ideas but don't know where to start.  Or perhaps it's time for a career change, and Android Development picked your interest?  Or maybe you want to be more valuable at your company... whatever the reason, you're are on the right path by being here.

This is a hands-on course, meaning you will build several android apps as you learn.

Read more

Android App Development will open many doors for you since AAndroidis is the most popular operating system in the world.

You may want to learn Android development for many reasons- maybe you have many app ideas but don't know where to start.  Or perhaps it's time for a career change, and Android Development picked your interest?  Or maybe you want to be more valuable at your company... whatever the reason, you're are on the right path by being here.

This is a hands-on course, meaning you will build several android apps as you learn.

The course is structured in such a way to improve your knowledge retention - by having a lot of hands-on projects. In each section of the course, you will be practicing and building something meaningful, which will further your understanding of Android App Development. Of course, there are quizzes and challenges as well.

All you need is an open mind, willingness to work (and some patience, too).

You'll learn the Java programming language fundaments such as Java variables, variable types, relational and logical operators, loops, and methods.  Once the language basics are covered, you'll then move on to learning Java Object-Oriented Programming concepts - classes, Java Inheritance, and how to create objects from Java classes. 

Next, you'll learn the most fundamental Java Data Structures, which help programmers store and manipulate programs' data efficiently and quickly (Arrays and ArrayLists). 

Suppose you are familiar with the Java programming language. In that case, you can always fast-forward to the Android Development part of the course, which introduces the fool Bootcamp for Android App Development.  In the Android App Development part of the course, you'll focus on building an Android app from the get-go. Thus, you'll be learning Android concepts such as Android Activities, Android Basic Project Structure, Android Layouts, and XML by actually doing the work, building android apps from scratch.

The goal is to take you through the whole process of learning Android development, from zero to hero, from building simple Android apps to apps that connect to Firebase (remote realtime-database). These apps recognize faces on a photo (MLKit Face Recognition) to learn how to build Android map-driven applications.   Along the way, you'll learn how to store data in android(SQLite and Sharedpreferences).  You'll learn how to use the fundamental design pattern called MVC - Model-View-Controller to structure your Android projects. You'll learn how to use the most modern Android libraries and APIs like Android ROOM - an alternative way to save Android data. Finally, you'll master how to use Android Fragments to make your apps more versatile and run on different device sizes (phone, tablet).

Additionally, you'll learn how to play sound (Android SoundPool, Android ExoPlayer) and use Android native classes to draw shapes on the screen - by using the Android Canvas class and so much more.

As you can see, this is the course you'll need to get started in Android Development with Java - this is your Android Development Bootcamp course that will take you from zero to hero.

Start learning in this ultimate Android Development tutorial, where you'll go deep into Android development tools, such as Android Studio and Android App Development. 

Enroll today and start learning.

See you inside.

Paulo

Enroll now

What's inside

Learning objectives

  • Master java programming language
  • Build dynamic android apps from scratch
  • Master android development and mvc pattern when building android apps
  • Master modern android development with databinding
  • Build several android apps with the latest android api's: room, firebase, firestore and ml kit face recognition
  • Learn android development best practices
  • Learn android user interface design
  • Master the android studio ide and become more productive
  • Learn how to publish android apps to google play

Syllabus

Welcome
Please Watch This: Learning Path
Install Android Studio on Windows Machine
[WINDOWS USERS ONLY] Download Android Studio for Windows
Read more
[OPTIONAL - WINDOWS USERS ONLY]VTX Emulator Issues Fixes on Windows
Fix VTX Issues on BIOS - Resources
Install Android Studio on MAC Machine
[MAC USERS ONLY] Download and Install Android Studio on MAC
Download Course Source Code
Download Course Code
Android Development - First Steps
[OPTIONAL] Changing Android Studio Theme - So it looks like mine!

In this lecture, you'll go through a few basics of creating an android project. You'll be following these steps:

  • Open Android studio

  • Using the Android Studio Project Wizard to create your first Android App Project

  • You'll dive into Android User Interface Layout and start building the User Interface for our simple app.

  • Once the User interface layout is done, namely a button and a TextView, you'll move onto the Java code app logic.

  • Quickly, you'll be immersed in Android Java and Android-specific API's to add interactivity between the button and the TextView

  • Learn how to use Android Event Listeners to respond to the button click and show the text on the screen.

After completing this section, you will build a simple yet concise android application that will take a user input and display it on the screen with a click of a button.

Build an App - Build your First Android App - ShowMyName - User Interface
Build an App - Build your First Android App - ShowMyName - Adding EditText
Source Code
Deep Dive into Java Programming Language
What We'll Cover in This Section
Create and Run a Java Program
Java Code Structure
Java Variables And Concatenation
Java Integer Variable Type
Java Long and Double Variable Types
Java Byte and Char Variable Types
Java Boolean Variable Type
Java Operators
The Remainder
Relational Operators
Logical and Relational Operators
The AND Logical Operator
The OR Logical Operator
The NOT Logical Operator
The for-loop
The else-if Statement

In the last coding exercise, you used the else-if statements to solve branch your code. Although else-if statements enable us to chain as many of if statements as we want, you can see how we can end up with a lot of code that’s hard to follow and read. There’s a better way to deal with situations where you might have more than two possible conditions - the Switch Statement.

In the next lesson, we'll learn how to use the Switch statement.

Switch Statement Code
Quick Exercise - Switch Statements
The Do While Loop
Exercise Source Code - Solution
Methods and String Parameters
Function Parameters - Add Method
Return Types in Methods - Double Return Type
CODING EXERCISE: Game Character - CodeRunner -Relational Operators
CODING EXERCISE SOLUTION
String Return Function Type
CODING EXERCISE: Calculate Area of a Rectangle
Introduction to Java Inheritance - What is it?
You'll learn how to create functions that will divide and multiply two numbers passed as function parameters
CHALLENGE: Dividing and Multiplying Integers
CHALLENGE SOLUTION: Dividing and Multiplying Integers

Source code

Introduction to Object Oriented Programming in Java
Introduction to Classes and OOP - Object Oriented Programming
Creating your First Java Class
CODING EXERCISE: Create a Rectangle Class
Creating a Java Inheritance Structure
Adding the Description Method to the Class
CODING EXERCISE: Rectangle Area
Constructors in Java
Constructors and Inheritance
Source code - Constructors and Inheritance in Java
CODING EXERCISE: Rectangle Constructor
CODING EXERCISE: Create a Box Subclass of Rectangle Class
Access Modifier and Getters and Setters
CODING EXERCISE: Adding Access Modifiers & Getters and Setters
Overloading Constructors
Java Coding Convention Guide
The Java Class Library
Java Inheritance
Overriding Super Class Methods
CODING EXERCISE: Override the Area Method
Understanding toString Override Method
String is an Object, After all!
Java Data Structures
Introduction to Arrays
Creating and Looping through Arrays
CODING EXERCISE: Calculate the Average GPA
CODING EXERCISE: Find Multiples of Three
Pre-setting Arrays' Length
CODING EXERCISE: For loops - Count Backward
ArrayLists - and Introduction
Looping Through ArrayLists
Passing Arrays as Method Parameters
Passing Objects as Method Parameters
Java Hashmap
Sorting Arrays

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Begins with Java fundamentals, including variables, operators, loops, and methods, which provides a solid foundation for those new to programming before diving into Android-specific concepts
Covers object-oriented programming concepts like classes and inheritance, which are essential for building robust and maintainable Android applications
Includes hands-on projects throughout each section, which reinforces learning and improves knowledge retention through practical application
Explores modern Android libraries and APIs like Android ROOM, Firebase, Firestore, and ML Kit Face Recognition, which equips learners with skills relevant to current industry practices
Requires learners to install Android Studio, which may require a computer with sufficient processing power and storage, potentially posing a barrier for some learners
Teaches Java, which is still widely used in Android development, but Kotlin is now the preferred language by Google, so learners may need to learn Kotlin separately

Save this course

Save The Comprehensive Android App Development Masterclass to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Comprehensive Android App Development Masterclass with these activities:
Review Java Fundamentals
Solidify your understanding of Java fundamentals, including variables, data types, operators, loops, and methods, to prepare for the Android development concepts covered in the course.
Show steps
  • Review Java syntax and data structures.
  • Practice writing simple Java programs.
  • Complete online Java tutorials and exercises.
Review 'Android Programming: The Big Nerd Ranch Guide'
Gain a comprehensive understanding of Android development concepts and best practices.
Show steps
  • Read chapters relevant to the course topics.
  • Work through the code examples in the book.
  • Try the end-of-chapter exercises.
Review 'Effective Java' by Joshua Bloch
Gain a deeper understanding of Java best practices and design patterns to write cleaner and more efficient Android code.
Show steps
  • Read selected chapters focusing on core Java concepts.
  • Implement examples from the book in your own projects.
  • Discuss key takeaways with peers in online forums.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple Calculator App
Practice applying Android UI components, event handling, and basic Java logic by building a simple calculator application.
Show steps
  • Design the user interface with buttons and a display.
  • Implement event listeners for button clicks.
  • Write Java code to perform calculations.
  • Test the app thoroughly on different devices.
Create a Blog Post on Android Layouts
Solidify your understanding of Android layouts by writing a blog post explaining different layout types and their use cases.
Show steps
  • Research different Android layout types (LinearLayout, RelativeLayout, ConstraintLayout).
  • Write a clear and concise explanation of each layout type.
  • Include code examples and screenshots.
  • Publish the blog post on a platform like Medium or your own website.
Contribute to an Open Source Android Project
Deepen your understanding of Android development by contributing to an open-source project on GitHub.
Show steps
  • Find an open-source Android project on GitHub.
  • Identify a bug or feature to work on.
  • Fork the repository and create a branch for your changes.
  • Implement the fix or feature and submit a pull request.
Practice LeetCode Problems in Java
Improve your problem-solving skills and Java proficiency by solving LeetCode problems related to data structures and algorithms.
Show steps
  • Select LeetCode problems tagged with 'Java' and relevant data structures.
  • Solve the problems independently.
  • Review solutions and discuss with peers.

Career center

Learners who complete The Comprehensive Android App Development Masterclass will develop knowledge and skills that may be useful to these careers:
Android Developer
An Android Developer creates applications for the Android operating system, often working on all stages of the app lifecycle, from initial design to deployment and maintenance. This course provides hands-on experience in building various Android apps, which is essential for a successful Android Developer. It covers fundamental concepts like Android Activities, layouts, and XML, along with essential tools such as Android Studio. Furthermore, a learner will learn to connect to databases, implement machine learning features, and use Android design patterns. Taking this course will help an aspiring Android Developer build a strong foundation.
Mobile Application Developer
A Mobile Application Developer creates applications for mobile devices, often specializing in either Android or iOS. This course is essential for aspiring Mobile Application Developers focusing on Android, providing a comprehensive education in building Android applications from the ground up. The course covers fundamental Java programming and object oriented programming concepts, as well as the most important Android tools, such as Android Studio. In particular, this course helps a mobile developer master Android design patterns and data storage, which are vital to creating robust mobile apps.
Software Engineer
A Software Engineer designs, develops, and maintains software applications. While software engineering is a broad field, those who specialize in mobile app development will find this course especially valuable. This course provides an introduction to building Android applications from the ground up, with an emphasis on Java programming, data structure, and object oriented programming. Software Engineers who work on mobile applications must be adept at using specific tools like Android Studio, which are covered in this course. The course also addresses important parts of app development, such as interacting with databases and APIs.
Application Architect
An Application Architect designs the structure and components of software applications, and this course is particularly useful for those focusing on Android applications. The course provides a deep dive into key architectural concepts, such as the Model-View-Controller design pattern, that are needed to make an app versatile and scalable. Further, the learner will learn about Android Fragments, which are essential for optimizing app performance across different device sizes. A learner of this course will find it beneficial to their grasp of Java basics in order to make well informed architectural decisions. Application Architects will find this course beneficial for mobile app design.
App Development Instructor
An App Development Instructor educates students on how to build software applications. This course is a strong foundation for aspiring instructors, particularly those focused on Android development. The course can help an instructor better understand how an app is developed from start to finish, and what specific concepts or steps are essential. This course emphasizes hands-on experience, therefore the learning-by-doing focus would help to better understand the practical side of app development, which is key to instruct others. An App Development Instructor will benefit from this course.
Technical Project Manager
A Technical Project Manager is responsible for planning, executing, and closing projects, often in software development. This course provides valuable insight into the Android app development process, which can help a Technical Project Manager better understand the challenges and nuances of such projects. A Technical Project Manager is not expected to code, but understanding the steps to build a mobile app helps them better manage the resources and timelines of app projects. This course gives an insider's look into the world of Android, and may prove insightful. The Technical Project Manager may find this course useful to inform resource allocation and project timelines.
Mobile Systems Analyst
A Mobile Systems Analyst evaluates and improves mobile technology systems. This course may help a Mobile Systems Analyst better grasp the technical details and best practices in Android app creation. The hands-on approach in this course may provide practical exposure, useful in making good recommendations. A Mobile Systems Analyst would benefit from understanding the stages of Android app development, including UI design, database management, and API use. While this course is not directly related to systems analysis, it may offer helpful insights.
Quality Assurance Analyst
A Quality Assurance Analyst ensures software quality through testing and analysis. This course will give a Quality Assurance Analyst vital insights into the Android app development process, particularly in regard to testing the application. A crucial part of this course is building a variety of Android projects, which can help a quality assurance professional better understand the challenges in development. The Quality Assurance Analyst may find it useful to understand the Android development lifecycle, but it is not essential.
Technology Consultant
A Technology Consultant provides expert advice on technology matters to businesses and organizations. This course may help a Technology Consultant gain insight into Android application development. The course provides practical experience in building mobile applications, which gives a consultant a better understanding of the nuances of the process. A Technology Consultant can use the information they learn through the course to better advise clients. A Technology Consultant may find this course useful, but it is likely not essential to their profession.
User Interface Designer
A User Interface Designer creates the visual elements of applications. This course is helpful as it involves working with Android layouts and UI components, which are important for a user interface designer. Although the course focuses more on the coding aspects of app creation, the practical approach of building applications helps a user interface designer better understand what is possible. The course gives insight into Android design considerations. A User Interface Designer may find the course helpful, but it is not essential to their role.
Data Scientist
A Data Scientist analyzes data to extract meaningful insights. This course introduces machine learning concepts, specifically face recognition, which may align with the work that a Data Scientist may do. However this course focuses less on analysis and more on implementation. A Data Scientist may find the practical application of machine learning that this course provides to be valuable. However, since the focus is on mobile development, the Data Scientist work may not be strongly aligned with the topics covered in this course.
Database Administrator
A Database Administrator manages and maintains databases. This course introduces how to store data in Android applications using SQLite and other tools. While this is an important part of database management, this course focuses more on how to use them from a mobile app perspective instead of a database management perspective. A Database Administrator might find the course useful in better managing data in mobile applications, although this is not their primary focus.
Embedded Systems Engineer
An Embedded Systems Engineer develops software for embedded systems, such as those found in appliances and other devices. This course, on the other hand, is focused on mobile application development. Although elements of this course may be tangentially related to the work of an Embedded Systems Engineer, the course may not be the best source for an Embedded Systems Engineer. The Embedded Systems Engineer might not find this course useful, as the course is not focused on embedded systems.
Network Engineer
A Network Engineer designs and maintains computer networks. This course does not deal with networking, instead focuses on the creation of mobile apps on the Android platform. While some apps require network communication, this course does not go into depth on the subject of networking. Because this course does not focus on networking, a Network Engineer might find it to be not particularly helpful to their role.
Hardware Engineer
A Hardware Engineer designs the physical components of computers and devices. This course focuses on the creation of mobile apps on the Android platform, and does not deal with hardware manufacturing or design. As such, there is little relevance between this course and the role that a Hardware Engineer plays. Because this course is not focused on hardware concepts, a Hardware Engineer will not find the course to be relevant to their work.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Comprehensive Android App Development Masterclass.
Comprehensive guide to Android development, covering a wide range of topics from basic UI design to advanced concepts like background processing and data persistence. It great resource for both beginners and experienced developers. This book is commonly used as a textbook at academic institutions.
Provides invaluable insights into Java best practices and design patterns. It is highly recommended for understanding how to write robust, maintainable, and efficient Java code. While not strictly required, it will significantly enhance your understanding of the underlying principles used in Android development. It is commonly used by industry professionals.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser