YoVDO

Android TDD Masterclass - Coroutines, Jetpack

Offered By: Udemy

Tags

Android Jetpack Courses Android Development Courses Kotlin Courses Test-Driven Development Courses Dependency Injection Courses Coroutines Courses MVVM Courses

Course Description

Overview

Master Android app development (Kotlin) with Clean Architecture, Test driven development, HILT, Espresso & Unit Testing

What you'll learn:
  • Develop a state of the art Android 11 application: Kotlin, Coroutines, DI with Hilt, Jetpack Navigation Component, Kotlin Flow, MVVM
  • Develop an application purely with Outside-In Test Driven Development. We focus on producing a real production app with business logic and common UX patterns
  • Become a senior / architect Android engineer and advance in your career
  • How to combine all the practises together instead of having to follow multiple articles and courses and spending weeks to combine the best practises together
  • Jump straight to the latest and greatest of Android Development

The TDD Masterclass by Petros Efthymiou.

Learn State of the Art Android development by building a real production app.

Are you following dozens of forums, articles and buying courses in order to move your development skills and career to your next level?

I am too, but more often than not, after completing them I realise that there is still a HUGE amount of work left to be done, to connect all the pieces together and make them work on a real application. I found that even though a course was providing comprehensive knowledge on coroutines it didn't mean that I knew how to integrate them with Retrofit, Live data or Hilt. And because another course was extensive on Test Driven Development after completing it I didn't know how to write an application with TDD using the latest Android tech stack.

After buying courses, reading articles & forums and a couple of months of hands-on practise I have finally learned how to combine Android 11 best development practises in an Android application.

I created this course to make the process easier for you! You are going to learn how to combine

  • Kotlin

  • Coroutines

  • Live Data

  • Kotlin Flow

  • Retrofit

  • Hilt

  • Jetpack Navigation

  • MVVM

And complete a real Android application purely on Outside-In Test Driven Development

You are going to learn how to write not flaky espresso tests in a real scenario with delays and HTTP calls, without using Thread.sleep(). After all we wouldn't be doing TDD without efficient & effective Espresso UI tests!

Why Me?

Even though I am new to Udemy I am not new to the industry. I have been working as an Android engineer from junior to lead positions in ambitious startups & large multinational companies for about 8 years. Being a good engineer though doesn't automatically mean that you are a good Instructor as well.

In the past 5 years I have also discovered my passion for education and worked as a Software Instructor in several colleges and companies, including New York College, Hellenic American Union and my current position now is a Mobile Trainer in a Multinational company called Backbase, where I am training

  • The internal RnD engineers

  • The internal professional services engineers

  • External third party integrators

In my lifetime I have trained thousands of developers both in classroom, web conferences and video courses.

Why is it important?

As we are advancing to more senior engineering levels we realise that how we do things is equally important to getting them done. The industry has started to realise that a serious Software Engineering company cannot anymore base the products in purely architectures and engineering practises.

I often say that there are 3 stages in the advancement of an engineer

  • In the first stage he/she is a programmer. He is learning how to make things work e.g. how to add buttons in an Android application and handle it's click. But is not aware of the importance of doing things well. He or she cannot realise that a purely structured system is certain to backfire in the long run and while everything initially seemed to be going well, "suddenly" it is impossible to work with this system anymore. New features are hard to be added, and bugs very often slip to production code

  • In the second stage having realised the past mistakes the professional starts practising and learning good engineering patterns. He or she starts exploring things like :

    • SOLID Principles

    • Design patterns

    • Clean architecture

    • Separation of concerns

    • Low coupling, High cohesion

    • Unit Testing

    and if is passionate and dedicated enough manages to reach a more senior level and is able to develop systems that can be successful not only in the short but also in the long run

  • The final stage is the Mastery. This stage is an ongoing process and doesn't ever end. After the engineer has a good understanding of the above practises he realises there is a huge room of improvement. He learns how to apply them and most importantly when they are not required and simpler-junior level approaches are more beneficial for the specific project/situation. In other words it is a constant effort to learn how to never

    • Under-Engineer

    • Or Over-Engineer.

    He or she also comes in touch with more advanced practises like Test Driven Development which takes quite a lot of effort to get a grasp and master it.

In this course I will do my best to advance you in this path. I will offer to you what I have learned on my journey and I am also very open to learn from you. I am always available on the forums to support and discuss topics that you might have a different point of view and this way we can help each other on our endless road in Software Mastery.




Taught by

Petros Efthymiou

Related Courses

Архитектура Android-приложений
Moscow Institute of Physics and Technology via Coursera
Learn ASP.NET
Codecademy
AngularJS: Framework Fundamentals
Microsoft via edX
Learn ASP.NET Core 3.1 - Full Course for Beginners [Tutorial]
freeCodeCamp
Getting Started with Blazor WASM
Coursera Project Network via Coursera