We may earn an affiliate commission when you visit our partners.
Michael Eramo
  • Have you found yourself confused, lost, or frustrated when following complicated Android Studio guides, not fully understanding what was going on?

  • Have you always wanted to make your own mobile application but never new where to start?

  • Have you done some basics in another language like Python or JavaScript and don't know where to apply your knowledge?

  • Are you looking to code in Kotlin, Google's official language for Android application development?

Read more
  • Have you found yourself confused, lost, or frustrated when following complicated Android Studio guides, not fully understanding what was going on?

  • Have you always wanted to make your own mobile application but never new where to start?

  • Have you done some basics in another language like Python or JavaScript and don't know where to apply your knowledge?

  • Are you looking to code in Kotlin, Google's official language for Android application development?

If you've answered yes to any of the above then this course is for you. The Art of Doing:  Dive Into Android Development with Kotlin is a course that takes the time to lay a foundation and build upon it.  We won't just get Android studio installed and rush through all it does for us in creating a project.  Instead, we will walk through each file created and the given starter code, so you feel like you are in control of the applications you are writing.   We'll continue on this trend of fully explaining and gaining a mastery level understanding of concepts as we explore various views, layout styles, view and data binding, fragments and navigation, and lastly MVVM architecture. 

I'm a self learner.  I know what it is like to try to teach yourself a subject and be left following code someone else wrote but not fully understanding what you've done.  I've gone through various tutorials, constantly asking myself "what does this line mean?", "Why did they do that here?", "How does this actually work?".   Those frustrations helped motivate me to create this course.  While I may be a self taught programmer, I am a Master Teacher with a depth of experience in education.  I know how to teach, how to relate high level concepts at a fundamental level, and what makes knowledge stick. 

So often, when students ask for advice they are told to, "Go build something" or "Get involved on a project" but have no idea what projects to build or get involved in.  This course will set you on your way.   In this course I will walk you though, step by step, on how to to design the layout and the functionality of unique, engaging, and purposeful apps.  By the end of this course, I promise that you will be coming up with your own app ideas and feel confident enough in your abilities to create them. 

Together, we will work through 15 sections of this course.  Each section will highlight concepts and ideas, explaining every step along the way and answering any questions you might have.  I promise that you won't experience any of the frustrations I had while learning because I know how important it is to not just introduce knowledge, but also to provide context for that knowledge to grow. 

I'm sure there are other introductory courses out there that will try to teach you more...but I would imagine that the depth of knowledge in those courses is shallow.  My goal for this course was not to expose you to every single concept or idea in android development but rather provide you with the structure and context to feel like you fully understand the fundamentals presented to you in this course. 

Anyone can follow a guide and retype what someone else has already written.   But by taking this course, I believe you will have the confidence, knowledge base, and ownership of knowledge such that you won't have to follow someone else's work, but rather create something from your own mind.  After all, I believe the highest level of knowledge is creation.   

After taking this course, based on the way I break down each topic and present the material, you will have a mastery level understanding of the fundamentals of Android Studio, Android app development, and the Kotlin programming language.  I hope to see you in the class.

Enroll now

What's inside

Learning objectives

  • How to create your own android applications using android studio and the kotlin programming language.
  • How to test and upload your applications on your own physical/emulated devices.
  • How to design app layouts using linear and constraint layouts.
  • How to use binding objects (view binding and data binding) to improve projects.
  • How to implement navigation and fragments into your applications to have dynamic apps.
  • How to implement view models and live data.
  • We will create 6 full fledge application as well as many more "learning" applications throughout the course.

Syllabus

Students will have Android Studio installed and running on their machine with support for a virtual emulated android device or physical device to test our applications.
Read more
Course Preview
Installation and Introduction
Creating A Project
Using A Virtual Device
Using a Physical Device
Links to Resources Used
Students will gain an understanding of the files created for us by Android Studio when we start a new empty activity. In particular; the manifest, the main activity, and the layout.
Exploring Android Studio
Exploring the Manifest
Exploring the Main Activity
Exploring the Layout
Exploring Lifecycle Methods
The Linear Layout: A First Look
Linear Layout Basics: View Width, Height, Sizing, and Spacing
Linear Layout Basics: Nested Layouts and Layout Weight
A Quick Note About Minimum SDK Targets
Students will use the linear layout to make a basic UI that asks for the student's name and presents them with a motivational message.
Motivate Me App Preview
Building our Layout Part 1
Building our Layout Part 2
Writing Our Main Activity Part 1
Shortcomings of our App
Writing Our Main Activity Part 2
Writing Our Main Activity Part 3
Writing Our Main Activity Part 4
Counter App
Counter App Preview
Building Our Layout Part 1
onSaveInstanceState
Building Our Layout Part 2
Building Our Layout Part 3
Shortcomings of onSaveInstanceState and Solutions
ViewBinding
The Constraint Layout: A First Look
Constraint Layout Basics 1
Constraint Layout Basics 2
Constraint Layout Basics 3
Coin Flip App
Coin Flip App Preview
Why Use Bindings?
Motivate Me With View Binding Part 1
Motivate Me With View Binding Part 2
Diaper Tracker App
Diaper Tracker App Preview
Writing Our Kotlin Part 1
Using onSaveInstanceState
Counter App With View Binding Part 1
Counter App With View Binding Part 2
DataBinding
Coin Flip with Data Binding Part 1
Coin Flip with Data Binding Part 2
Coin Flip with Data Binding Part 3
Diaper Tracker with Data Binding Part 1
Diaper Tracker with Data Binding Part 2
Fragments and Navigation: A First Look
What is a Fragment?
Setting Up Multiple Fragments
Enabling the Navigation Library
Triggering Navigation Actions
Passing Data to Fragments With Safe Args
Score Keeper App
Score Keeper App Preview
Building Our Layout Part 4
Writing Our Kotlin Part 2
Writing Our Kotlin Part 3
View Models and Live Data: A First Look
What is a View Model?
Putting Data in a View Model
Using Live Data and Observers
Encapsulating Live Data
Data Binding Live Data
View Model Factories
Wrapping Up View Models
Click! The App
Click! The App Preview
Click! The App Part 1
Click! The App Part 2
Click! The App Part 3
Click! The App Part 4
Click! The App Part 5
Thank You!
Thank You For Completing This Course!!!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Uses Kotlin, which is Google's preferred language for Android development, making it highly relevant for building modern Android applications
Explores MVVM architecture, which is a popular design pattern for structuring Android applications and promoting maintainability
Requires students to have Android Studio installed, along with a virtual or physical Android device, which may require additional setup and resources
Covers view binding and data binding, which are modern techniques for improving project structure and reducing boilerplate code
Walks through the creation of six complete applications, providing hands-on experience and practical skills development
Requires learners to install Android Studio, which is a large and complex IDE that may be overwhelming for absolute beginners

Save this course

Save The Art of Doing: Dive Into Android Development with Kotlin 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 Art of Doing: Dive Into Android Development with Kotlin with these activities:
Review Kotlin Fundamentals
Solidify your understanding of Kotlin syntax and core concepts before diving into Android development. This will make learning Android-specific Kotlin code much easier.
Show steps
  • Review Kotlin documentation and tutorials.
  • Practice writing basic Kotlin programs.
  • Complete online Kotlin exercises.
Review 'Head First Kotlin'
Get a different perspective on Kotlin programming with a visually engaging book. This can help solidify your understanding of the language.
View Excel Cookbook on Amazon
Show steps
  • Read the chapters on Kotlin fundamentals.
  • Complete the exercises and puzzles in the book.
  • Compare the book's explanations to the course's explanations.
Review 'Android Programming: The Big Nerd Ranch Guide'
Supplement the course material with a well-regarded Android development guide. This book provides a broader and deeper understanding of Android concepts.
Show steps
  • Read the chapters relevant to the course topics.
  • Work through the examples and exercises in the book.
  • Compare the book's approach to the course's approach.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice Layout Design Challenges
Sharpen your layout design skills by tackling various UI challenges. This will improve your ability to create visually appealing and functional Android layouts.
Show steps
  • Find UI design challenges online.
  • Recreate the layouts using Android Studio.
  • Experiment with different layout techniques.
Create a Blog Post on ViewModels
Explain the concept of ViewModels in Android development in your own words. This will solidify your understanding and help others learn.
Show steps
  • Research ViewModels and their purpose.
  • Write a clear and concise explanation of ViewModels.
  • Include code examples and diagrams.
  • Publish the blog post on a platform like Medium.
Expand the Diaper Tracker App
Extend the Diaper Tracker app to include more features and functionality. This will reinforce your understanding of data binding, view models, and UI design.
Show steps
  • Add features like tracking feeding times and amounts.
  • Implement data persistence using Room database.
  • Improve the user interface with custom views.
Contribute to an Android Open Source Project
Gain real-world experience by contributing to an open-source Android project. This will expose you to best practices and collaborative development workflows.
Show steps
  • Find an Android open-source project on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete The Art of Doing: Dive Into Android Development with Kotlin will develop knowledge and skills that may be useful to these careers:
Android Developer
An Android Developer creates applications for the Android operating system, and this course helps lay a crucial foundation for that career. This course emphasizes making students comfortable with Android Studio, the official integrated development environment for Android. It dives into how to build user interfaces with linear and constraint layouts. It also works through implementing navigation, fragments, and data binding. A student who is looking to build Android applications should take this course because it explains these fundamental concepts in depth and provides the context to apply them to projects.
Mobile Application Developer
A Mobile Application Developer designs and builds applications for mobile devices, and this course provides hands-on experience crucial to this type of career. The course explicitly teaches how to design app layouts, use binding objects, implement navigation and fragments, and implement the MVVM architecture, all of which are essential for designing a functional mobile application. The course teaches the Kotlin programming language, which is Google's official language for Android development. It also familiarizes students with Android Studio, the primary development tool used in the field. Those seeking careers in mobile application development should enroll in this course due to its comprehensive approach of teaching both the fundamentals and how to practically implement them.
Software Engineer
A Software Engineer designs, develops, and maintains software systems, and this course provides relevant project-based experience. While software engineers work on various types of software, mobile development is a key area. This course goes over essential topics for building Android apps, such as view models, live data, and navigation. The course provides many practical projects, including six full applications, that give potential software engineers a chance to practice what they learn. Those who are seeking to become software engineers in the mobile space should choose this course to gain crucial knowledge and skills.
Applications Engineer
An Applications Engineer is involved in the creation, testing and implementation of many kinds of applications, and this course offers an intensive introduction to application development. The course delves deep into the process of using Android Studio and Kotlin, essential to a career in building Android applications. The course shows students how to design layouts, use fragments and navigation, implement view models and live data, all of which are concepts that an applications engineer uses to build user-facing applications. Students who have an interest in becoming application engineers can begin building practical skills with this focused course.
User Interface Developer
A User Interface Developer creates the visual elements and interactive components of software, and this course gives a strong understanding of these elements in the context of mobile development. This course provides a rich exploration of how to design app layouts using linear and constraint layouts. It also provides in depth examples of how to use view binding and data binding. The course specifically addresses how to create engaging and purposeful applications with a mastery understanding of the fundamentals. A student who wishes to become a user interface developer in the mobile space would benefit from this course because it gives hands-on experience in how to design and implement user interfaces.
Mobile Software Developer
A Mobile Software Developer builds software applications specifically for mobile devices, and this course will be a useful starting point. The course covers fundamental concepts needed to develop Android mobile applications. It includes how to set up Android Studio, how to design layouts, and the MVVM architecture. Specifically, the course helps build a foundation for understanding Android app development and the Kotlin programming language, which are heavily used by mobile software developers. This course may be particularly useful for anyone who wants to get started in mobile software development because it provides a focused, step-by-step guide with multiple practical app projects.
Junior Software Developer
A Junior Software Developer is often tasked with entry-level coding and development tasks, and this course offers useful practical experience. This course provides a comprehensive walk-through for developing Android applications using Kotlin. The course emphasizes fundamental concepts, breaking down Android Studio, the layout process, and various binding techniques. These are common tasks that junior software developers may encounter. This course may be useful for anyone who wants to get their feet wet with Android development and start working on projects they can show an employer.
Software Development Engineer
A Software Development Engineer engages in the design, development, and testing of software, and this course may help build a foundation in the mobile space. While the role is varied, Android development is an area that would benefit from a strong familiarity with layouts, view models, and the lifecycle methods. The course will be helpful as an introductory way to understand how Android applications are built. These are important for any software development engineer looking to work on mobile platforms, and can help someone get started with this kind of engineering.
Technology Consultant
A Technology Consultant advises clients on technological solutions and strategies, and this course may be useful for understanding the process that goes into mobile application development. While a consultant may not code directly, a deep understanding of the fundamentals of Android app development can be invaluable. This course covers the development process from installation through the user interface and various binding techniques. This course may be particularly helpful for a consultant who has to advise on mobile technology, and is looking to gain a greater sense of how development works.
Web Developer
A Web Developer designs and builds websites, and this course may be useful for learning about programming concepts and layout in general. Although the course is focused on Android development rather than web development, the course explores programming fundamentals and lays a foundation for concepts that apply beyond this specific domain, including user interfaces and data binding. This course may be helpful for anyone who wants to expand their programming skills beyond the web and also learn more about how to design functional interfaces.
Quality Assurance Analyst
A Quality Assurance Analyst tests software to ensure it meets quality standards, and this course may be useful for understanding the process of how mobile applications are built. While this course does not directly cover quality assurance, understanding how an app is built can help a quality assurance analyst better prepare tests and find defects. The course covers the full range of knowledge needed to build an Android application. This course may be useful for a quality assurance analyst looking to expand their knowledge and develop a solid understanding of the development process.
Technical Project Manager
A Technical Project Manager oversees the planning and execution of technology-related projects, and this course may be useful for understanding the Android development process. The course emphasizes the step-by-step process when building Andriod apps. While a project manager may not code directly, an understanding of Android application development can help them manage mobile app projects. The course covers not just coding but also implementation, which would give a project manager an excellent view of the development process. Anyone who is looking to manage teams that develop Android apps may find this course helpful.
Technology Specialist
A Technology Specialist provides expertise in specific technological areas, and this course may be useful for understanding Android development. The course emphasizes the full development process, including building a layout and implementing logic. This course may be useful to anyone who wants to become a specialist in the Android space. This course may be useful as it covers the fundamental aspects of Android mobile applications.
Technical Writer
A Technical Writer creates documentation for software and hardware, and this course may be useful for giving context to the process of mobile development. This course goes over fundamentals of Android development and also gives practical experience, which a technical writer could reference when documenting software. The course also emphasizes concepts and ideas, which would equip a technical writer to better understand and explain technical details to others. This course may be useful to a technical writer who needs to gain greater knowledge around the process and technology surrounding mobile development.
Startup Founder
A Startup Founder manages and leads new businesses, and this course could be useful if that business is developing an Android application. Though this course is an introductory one, it goes over the entire process of creating an Android mobile application, from setting up the environment to designing layouts and implementing logic. It gives a prospective founder hands-on experience with many of the essential concepts. This course may help a startup founder who is looking to gain a better understanding of the technology that goes into the creation of Android applications.

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 Art of Doing: Dive Into Android Development with Kotlin.
Comprehensive guide to Android development, covering a wide range of topics with clear explanations and practical examples. It provides a solid foundation for understanding Android architecture and best practices. It is particularly useful for students who want to delve deeper into the underlying concepts and build more complex applications. This book is commonly used as a textbook at academic institutions.
Provides a fun and engaging introduction to Kotlin programming. It uses a visual and interactive approach to help you learn the language quickly and effectively. It is particularly useful for students who are new to programming or who prefer a more hands-on learning style. This book is more valuable as additional reading than it is as a current reference.

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