Android TDD Masterclass Coroutines Jetpack
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
Requirements
Basic Coding Knowledge
Basic Kotlin Knowledge or Good knowledge of another OO language
Description
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 combineKotlinCoroutinesLive DataKotlin FlowRetrofitHiltJetpack NavigationMVVMAnd complete a real Android application purely on Outside-In Test Driven DevelopmentYou 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 trainingThe internal RnD engineersThe internal professional services engineersExternal third party integratorsIn 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 engineerIn 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 codeIn 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 PrinciplesDesign patternsClean architectureSeparation of concernsLow coupling, High cohesionUnit Testingand 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 runThe 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 neverUnder-EngineerOr 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.
Overview
Section 1: Introduction
Lecture 1 Course Introduction
Lecture 2 Course Explanation
Section 2: Test Driven Development Explained
Lecture 3 Section Intro
Lecture 4 What is TDD
Lecture 5 Advantages of TDD
Lecture 6 Platform Independent
Lecture 7 TDD Lifecycle
Lecture 8 What is a Test
Lecture 9 Writing Our First Unit Test
Lecture 10 Solution: Second Unit Test
Lecture 11 Rate the Course
Lecture 12 Test Preconditions
Lecture 13 Types Of Automated Tests
Lecture 14 Google Testing Pyramid
Lecture 15 Types of TDD
Lecture 16 Classicists VS Outside-In TDD
Lecture 17 And The Winner Is..
Lecture 18 Outside-in TDD Lifecycle
Lecture 19 Our first system using TDD – Requirements
Lecture 20 Failing Acceptance Test
Lecture 21 First TDD Cycle Completed
Lecture 22 Second Failing Acceptance Test
Lecture 23 Car Inner TDD cycle
Lecture 24 Engine Inner TDD cycle
Lecture 25 Green: Acceptance Test
Lecture 26 Section Closing
Section 3: Coroutines Made Simple
Lecture 27 Section Intro
Lecture 28 What Problems Do Coroutines Solve?
Lecture 29 Suspend & Resume
Lecture 30 Examining How Coroutines Work
Lecture 31 Main Safety With Coroutines
Lecture 32 Structured Concurrency
Lecture 33 Coroutines Practical Example
Lecture 34 Testing Coroutines
Lecture 35 Kotlin Flow
Lecture 36 Advantages of Kotlin Flow
Lecture 37 Kotlin Flow in Practise
Lecture 38 Unit Testing Kotlin Flow
Lecture 39 Closing The Implementation
Section 4: Developing an Android app with TDD
Lecture 40 Section Introduction
Lecture 41 Working Agile
Lecture 42 Application Requirements
Lecture 43 Setting up our Backend
Lecture 44 Setting up our Android Application
Lecture 45 First Acceptance Test Passing
Lecture 46 Playlists failing acceptance test
Lecture 47 Minimum Viable Architecture
Lecture 48 Starting with the UI
Lecture 49 Playlist Fragment Implementation
Lecture 50 Finishing up the View Layer
Lecture 51 Red: ViewModel Unit Test
Lecture 52 Green: First VM Unit test
Lecture 53 Green: VM Emitting Playlists
Lecture 54 Refactoring Phase
Lecture 55 Testing Error Cases
Lecture 56 Implementing The Repository Layer
Lecture 57 Repository Layer (Cont)
Lecture 58 Wrapping up the Repository
Lecture 59 Exercise: Service
Lecture 60 Green: First Service Test
Lecture 61 Green: Second Service Test
Lecture 62 Green: Third Service Test
Lecture 63 Wrapping up the Playlists Feature
Section 5: Refactoring with Dependency Injection
Lecture 64 Section Intro
Lecture 65 Dependency Injection Explained
Lecture 66 Pros of using DI
Lecture 67 Introduction to Google HILT
Lecture 68 Evaluating our situation
Lecture 69 Download HILT
Lecture 70 Integrating HILT
Lecture 71 Finishing HILT Integration
Lecture 72 Testing the Application
Lecture 73 Section Closing
Section 6: Adding Business Logic
Lecture 74 Section Intro
Lecture 75 Requirements Change
Lecture 76 Failing Acceptance Test
Lecture 77 Green: Acceptance Test
Lecture 78 Loader Hiding, Failing Acceptance Test
Lecture 79 Completed Loader Feature
Lecture 80 Rock Image, Failing Acceptance Test
Lecture 81 Upfront Design
Lecture 82 Red: Failing Repository Test
Lecture 83 Green: Repository Using Mapper Test
Lecture 84 Green: Whole Repository Suite
Lecture 85 Green: First Mapper Test
Lecture 86 Green: Playlist Mapper TDD cycle
Lecture 87 Green: Acceptance Test!
Lecture 88 Bonus: Removing Thread Sleep From Espresso Tests
Section 7: Jetpack Navigation
Lecture 89 Section Intro
Lecture 90 Introduction to Jetpack Navigation
Lecture 91 Pros Of Jetpack Navigation
Lecture 92 Upfront Design
Lecture 93 Failing Acceptance Test
Lecture 94 Adding The NavHost
Lecture 95 Creating The Navigation Graph
Lecture 96 Applying the Navigation
Section 8: Adding Second Screen
Lecture 97 Section Intro
Lecture 98 Upfront Design
Lecture 99 Exercise: Failing Acceptance Test
Lecture 100 Exercise: View Layer
Lecture 101 Solution: View Layer
Lecture 102 Solution: View Layer Completed
Lecture 103 Exercise: ViewModel TDD Cycle
Lecture 104 Solution: Data Delegation Green
Lecture 105 Exercise: Test Error Case
Lecture 106 Solution: ViewModel Completed
Lecture 107 Exercise: Playlist Details Service
Lecture 108 Green:Service_First_Test
Lecture 109 Green:Service_Second_Test
Lecture 110 Green: Completed_Service_Implementation
Lecture 111 Green:Acceptance_Test
Lecture 112 Final Improvements
Lecture 113 Green:Display Loader Acceptance Test
Lecture 114 Green: Loader Improvement
Lecture 115 Green: Showing Error Message
Lecture 116 Green: MVP!
Section 9: Closing
Lecture 117 Congratulations!
Lecture 118 Let’s stay in touch
Lecture 119 Become a Mobile Architect
Lecture 120 To Stay in Touch
Android Developers who want to advance in their career and learn how to structure clean state of art Android 11 applications,Backend/Front-end/iOS developers who want to jump straight to the latest and greatest of Android development and learn how to do it right,Developers who want to learn how to develop a system purely with Test Driven Development
Course Information:
Udemy | English | 8h 54m | 3.50 GB
Created by: Petros Efthymiou
You Can See More Courses in the IT & Software >> Greetings from CourseDown.com