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

Ders oluşturuluyor...
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.

Bu dersin kelimeleri ve konuşma notları

Bu C1 seviyesindeki konuşma dersi “Why 95% of Android Developers Get Use Cases Wrong” videosuna dayanıyor. En çok tekrarlanan kelimeler: user, app, logic, email, example. Bu videoda gölgeleme çalışması için 78 cümle ve 1240 kelime var. Konuşma bölümü 5:29 sürüyor. Konuşmacı hızlı konuşuyor, dakikada yaklaşık 226 kelime; bu yüzden birbirine bağlanan ve zayıflayan sesler duyacaksınız. Kelimelerin %87’i İngilizcede en sık kullanılan 3.000 kelime arasında; geri kalanına başlamadan önce bakmakta fayda var.

Bu videodaki önemli kelimeler

Videodaki en ileri düzey 14 kelime, telaffuzu ve anlamıyla:

KelimeTelaffuzAnlam
checkout isim/ˈt͡ʃɛkˌaʊt/kasa
bundle isim/ˈbʌn.dl̩/bohça, demet
memorize fiil/ˈmɛm.əˌɹaɪ̯z/ezberlemek
misunderstand fiil/mɪs.ʌn.də(ɹ)ˈstænd/yanlış anlamak
validator isimonaylayan, tasdik eden
browse fiil/bɹaʊz/gözden geçirmek
mentor isim/ˈmɛn.tɔː/hoca
password isim/ˈpæs.wɜɹd/parola, şifre
retrieve fiil/ɹɪˈtɹiːv/geri almak
diagram isim/ˈdaɪ.ə.ɡɹæm/şema
catalogue isim/ˈkæt.əˌlɔɡ/katalog
execute fiil/ˈɛksɪˌkjuːt/idam etmek
cart isim/kɑɹt/alışveriş arabası, kağnı
intend fiil/ɪnˈtɛnd/niyet etmek

Duyacağınız deyimsel fiiller

KelimeAnlam
log out fiilçıkış yapmak

Dikkat edilecek telaffuzlar

Konuşmacı don't, I'm, you're gibi kısaltılmış biçimleri 13 kez kullanıyor. Bunları duyduğunuz gibi kısa söyleyin.

  • Uzun kelimeler — vurguyu doğru yere koyun: repository /ɹɪˈpɒz.ɪ.t(ə.)ɹɪ/, validation /ˌvæl.əˈdeɪ.ʃən/, misunderstand /mɪs.ʌn.də(ɹ)ˈstænd/, internally /ɪnˈtɜːnəli/

Türkçe konuşanların zorlandığı sesler:

  • /æ/ — “e”den daha açık: validate /ˈvæl.ɪ.deɪt/, validation /ˌvæl.əˈdeɪ.ʃən/, misunderstand /mɪs.ʌn.də(ɹ)ˈstænd/, password /ˈpæs.wɜɹd/, catchy /ˈkæt͡ʃi/

Bu videoyla nasıl çalışılır

  1. Videonun tamamını konuşmadan bir kez dinleyin ve bilmediğiniz kelimeleri not edin.
  2. 0,75× hızla başlayın, cümle cümle tekrar edin ve kolaylaşınca normal hıza dönün.
  3. Kendinizi kaydedin ve orijinaliyle karşılaştırın; checkout, bundle, memorize gibi kelimelere özellikle dikkat edin.

Gölgeleme Tekniği Nedir?

Gölgeleme, başlangıçta profesyonel tercüman eğitimi için geliştirilen ve çok dilli Dr. Alexander Arguelles tarafından popüler hale getirilen, bilim destekli bir dil öğrenme tekniğidir. Yöntem basit ama güçlüdür: ana dili İngilizce olan bir sesi dinler ve hemen yüksek sesle tekrar edersiniz — konuşmacıyı 1-2 saniye gecikmeyle takip eden bir gölge gibi. Pasif dinleme veya dilbilgisi alıştırmalarının aksine, gölgeleme beyninizi ve ağız kaslarınızı gerçek konuşma kalıplarını eşzamanlı olarak işlemeye ve yeniden üretmeye zorlar. Araştırmalar, telaffuz doğruluğu, tonlama, ritim, bağlı konuşma, dinleme anlama ve konuşma akıcılığını önemli ölçüde geliştirdiğini göstermektedir — bu da onu IELTS Konuşma hazırlığı ve gerçek dünya İngilizce iletişimi için en etkili yöntemlerden biri yapar.

Shadowing tekniği: adım adım eksiksiz rehberi okuyun →