Shadowing Practice: Why 95% of Android Developers Get Use Cases Wrong - Learn English Speaking with Video

Creating lesson...
1
Hey guys and welcome back to a new video.
2
95% of Android developers use use cases wrong.
3
It's a catchy title, but I really mean that number.
4
I will tell you why.
5
Because use cases on Android and in software development in general are so often misunderstood.
6
I also myself misunderstood them when initially getting into these.
7
I'm pretty sure you can still find some super old videos on my channel where I'm also making the mistake
8
that I talk about in this video.
9
If your use case looks like this to get some user information, then you are doing it wrong.
10
Why is that?
11
In order to understand what use cases should contain and what kinds of use cases you should create, if you decide to stick to use cases,
12
we need to understand what a use case is originally meant to be in the context of software engineering.
13
And if we actually just Google for that, use cases software development, and we just click on a random picture here, then we have, for example, a library information system.
14
And then we have some use cases.
15
This is what we call a use case diagram.
16
Maybe you remember that from university or so.
17
to browse books, checkout books, return books, update the catalog, clicking here, view items, make purchase, checkout, client register.
18
If we carefully think about these use cases here, how they are named, view items, browse books, checkout books, what do all these have in common?
19
They all have in common that the user is actively aware about these things happening
20
because it is a real use case of your app.
21
And if you have a use case, then you can use it as a user.
22
Now, when we talk about email validation, is that a use case?
23
Is this something where a user would go to your app and now say, ah, now I'm going to validate my email, or now I'm going to clear my session.
24
Or hey, now I will retrieve a user by its ID.
25
No, they actually have no idea that these things happen.
26
These are rather just side effects of a real use case.
27
The user definitely knows that they are currently registering an account.
28
And email validation is just a side effect, something that happens as part of registering an account, but it's not something that the user actively has in their mind when they go through registration.
29
So if we take a look at some real use cases, the way it's really intended here on the correct, then we, for example, have this register use case.
30
And you can see suddenly it starts to contain real logic.
31
It's not just a single line of code that calls a repository or some kind of validation class, but it's a real use case that combines multiple pieces of business logic into a use case,
32
into something the user can do with your app that they are aware about.
33
So this would be a good example for a use case because the user knows that they are registering an account.
34
Of course, what's part of the use case is actually validating the email.
35
It's validating the password.
36
It is actually making the call to our remote API, for example.
37
It is then handling the errors and actually forwarding these to whatever class calls this use case.
38
That is a good example of a use case.
39
Well, let's take a look at this logout use case a user certainly knows that they are logging out.
40
But what internally happens as part of logging out, like actually making the network call, clearing the session, clearing their shopping cart, that's something they don't know and they don't have to know.
41
So the use case actually just bundles these function calls and makes sure that they are executed in the right order.
42
So we have a reusable kind of package for logging out and we just need to invoke the logout use case.
43
So other parts of our app also don't need to know what internally happens when we log out.
44
And all these other classes that act as utility for our use cases, like validating an email, this is of course still business logic.
45
This still lives in your domain layer, but it's not a use case.
46
So you really just make this a plain class, call it whatever it's responsible for, email validator, password validator, and then suddenly use cases make a lot more sense.
47
As you know, I'm usually not for using use cases a lot
48
because you will still often have these pretty much empty use cases, even when doing it the correct way.
49
So for example, if you say you want to fetch your nodes, so you actually want to see the nodes as a list, and then there's usually just a call to a REST API.
50
So you just forward this to your repository.
51
There's no error handling or so.
52
Maybe the repository already handles that, but no real business logic error handling in the use case itself.
53
But there are certainly use cases that make a lot of sense.
54
Like here, bundling these different calls here into a logout use case makes a lot of sense
55
because you will never again have to memorize what logging out really does in your app.
56
Instead, you just call this use case.
57
You never have to memorize what registration actually means and does in your app, unless you're, of course, responsible for working on that part.
58
But you can really just invoke the use case
59
and you know the use case involves the business logic to take care of that.
60
And if you stick to use cases in your app and you actually stick to them like this the right way, then I don't have a big problem with that.
61
Still, I personally lean more towards not using them at all
62
and just also bundling such business logic either in the view model or the repository, at least for small to medium-sized projects.
63
But for larger projects, this can make a lot of sense and I would also really consider having use cases there.
64
Now, if you feel like, okay, there is still a lot to learn about Android architecture, about Kotlin multi-platform architecture, then I can help you with exactly that
65
because we have our senior app developer mentoring where you get to build a real production project over multiple months
66
and have all your code reviewed by your personal mentors, including me.
67
This way we can spot issues in your app's architecture.
68
You actually have no idea about that these even exist.
69
If you're making mistakes you don't know of, then you obviously can learn from these mistakes.
70
So this is really a fast lane program here for you to grow to a senior developer level.
71
Link is below.
72
You can apply to this program.
73
We can have a chat if this could be a fit.
74
You can't just buy it on that website like a course, but we really first of all have to talk if we can help, how we can help, how it makes sense for you in order to also craft an individual learning plan for you.
75
So take a look at that.
76
Thanks for watching and I will see you back in the next video.
77
Have an amazing rest of your week.
78
Bye bye.

Why This Video Is Perfect for Learning English with YouTube

Looking for engaging English speaking practice? This video is a goldmine! Its conversational tone, clear explanations, and real-world examples make it ideal for shadowspeaks (repeating aloud to mimic pronunciation) and building fluency. Whether you’re prepping for IELTS speaking practice or just want to sound more natural, the speaker’s pace and clarity help you catch nuances like stress and intonation—key for improving English pronunciation.

Break It Down: Natural Phrases to Master

Let’s unpack 3 phrases that make the dialogue sound authentic:

  • “It's a catchy title, but I really mean that number.” The contrast “but” feels natural, like a friend sharing a secret. Notice how “really mean” adds emphasis—great for sounding sincere in conversations.
  • “If your use case looks like this to get some user information, then you are doing it wrong.” The structure “If… then…” is common in explanations. The casual “you are doing it wrong” avoids formality, making it easy to replicate in daily talk.
  • “So you just forward this to your repository.” “So” here connects ideas smoothly, a trick native speakers use to keep conversations flowing. “Forward this to” is a phrasal verb that’s practical for work or daily contexts.

Your Simple Practice Routine: Repeat, Record, Improve

Try this English speaking practice loop: 1. Watch 10 seconds of the video, pausing after each sentence. 2. Repeat the sentence aloud, focusing on matching the speaker’s rhythm and stress (e.g., “misunderstood” has stress on the second syllable). 3. Record yourself, then compare to the video. Did you catch the “uh” in “I’m pretty sure you can…”? That’s a natural filler—don’t be afraid to use it! 4. Do this daily for 5 minutes, and you’ll notice your pronunciation and fluency soar. Perfect for learn English with YouTube sessions!

Remember, every mistake is a step forward. Keep practicing, and soon you’ll sound as confident as the speaker. You’ve got this!

What is the Shadowing Technique?

Shadowing is a science-backed language learning technique originally developed for professional interpreter training and popularized by polyglot Dr. Alexander Arguelles. The method is simple but powerful: you listen to native English audio and immediately repeat it out loud — like a shadow following the speaker with just a 1–2 second delay. Unlike passive listening or grammar drills, shadowing forces your brain and mouth muscles to simultaneously process and reproduce real speech patterns. Research shows it significantly improves pronunciation accuracy, intonation, rhythm, connected speech, listening comprehension, and speaking fluency — making it one of the most effective methods for IELTS Speaking preparation and real-world English communication.

Shadowing technique: read the full step-by-step guide →