[READ THIS] Update May 2021 - This course will no longer be actively supported.
When I first made this course in the fall of 2018, I had no idea that it would garner such attention and success. Over the period of 2019, this course ended up enrolling 500+ students and earned the distinction of Udemy's "highest rated" course in Android Development for several months. Personally, I had the wonderful privilege to answer hundreds of questions while helping everyone get one step closer to whatever their software development goals.
Eventually, as with all things in this industry, the software continues to evolve. Over time, it became hard to continually update this course with content and fixes which adapt to the changing Kotlin and Android standards. This became especially apparent in early 2020 upon the start of COVID-19 when my course had a resurgence in sign ups, putting pressure on me to respond to new questions and make amendments with all that has changed in Android development over the past 2 years.
With all these things in mind, I have decided to publicly announce through this description, that I will no longer be actively maintaining this course. What does this mean?
It means that while all the content will remain, I will not guarantee timely responses to any Q&A
I will also not be promising to update this course with content that reflects any future changes in Kotlin / Android Development.
To former students, I hope that the skills you have learned in this course will be transferable and give you the foundation required to continue along your software development journey - this is a field that always changes. Any reference material that is even a year old is almost guaranteed to have issues or inconsistencies.
To future / prospective students, I (the literal instructor of this course) would recommend you not purchase this. It will stay published for people to preview for free and for existing students. But if you are looking for a bootcamp into Android development, I recommend searching on this site for what surely will be many newer and more relevant courses.
Why Am I Making This?
I wanted to make this course because when I was first learning mobile development, I tried going online and finding beginner videos and courses. What I found is that, they were great at teaching surface concepts as a starting point, but in and of themselves, they weren’t enough to explain how to build an app beyond a certain point of complexity. So, if you’re coming off of a beginner tutorial, you have some prior knowledge of Java and you understand some Android concepts such as the activities and lifecycles, then this is a great next step to further deepen your skillset and really stand out when applying for a job or trying to make a quality app by yourself.
What Are We Going to Make?
We’re going to be making a “Google Notes” clone with the following features:
1. Make tasks that are broken down into todos
2. Todos can be checked off as completed or incomplete and appropriately displayed
3. Notes will be displayed on a separate view from tasks and todos
4. Both notes and tasks will be stored in a SQL database
Building this app is a great way to learn good software architecture and object-oriented principles. For example, we’ll be able to reuse a lot of our code within the adapters and the view models when displaying a task list and a notes list if properly architecture.
Also, this is just the no frills version of the app. Along the way after teaching each concept, I’ll have assignments followed by solutions on how to add deeper complexity into the app such as adding coloured tags for tasks, or making a list for only active tasks. By the end of it, you’ll have a clean and material design adherent app that you can customize to your delight and use as a reference point to implementing your own app idea.
What Is Different?
Apart from learning new trends in Android such as Kotlin, Google Architecture Components, and MVVM, I’ll also introduce you to a few popular libraries and tools that are widely used in industry to allow greater team collaboration and reusability of code.
1. Dependency Injection– If you’ve ever heard of Dagger or Toothpick as a library and wondered why it’s so cool, this will teach you!
2. Coroutines– One of the biggest advancements in Kotlin is the ease of multi-threading and writing concurrent applications. Whether it’s making a database query or waiting for a network request, what used to be a very complex task in Java without the use of a third-party library is now fast and built into Kotlin. This is also one of the few courses to explain how multi-threading and concurrency works which is transferable to almost any field of programming, not just mobile development!
3. Google Architecture Components- Learning how to use pre-made templates for ViewModels will facilitate the MVVM architecture which greatly helps simplify code and speed up development time and using the Room SQL Database Library will enable developers to persist data at ease.
4. JUnit and Mockito Testing is a vital part of programming when working in the industry where apps need to be reliable and robust to serve a large number of users while keeping testing time as low as possible.