Basic plan and some typical questions and code samples for Android interview.
Latest update: 2024.10.22
- Tell us about yourself and your previous experience.
- What was the project you worked on your previous job?
- What was your role in the project?
- Which part of the project you worked on?
- Is there anything you are particularly proud of?
- Who was in the team?
- How collaboration inside the team was organized? Who set tasks?
- ΠΠ°ΠΌ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΡΡ ΠΈ ΡΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π Π΅ΡΠΈΡΡ Π·Π°Π΄Π°ΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊ Π² ΡΠ΅ΡΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ. ΠΠ°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ?
- ΠΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ Π½Π° ΠΊΠΎΠ΄-ΡΠ΅Π²ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ. ΠΠ°ΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ?
- ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈ Π²Π°ΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π² Π½Π΅ΠΉ
- ΠΠ°ΠΊΠ°Ρ ΡΠ°ΠΌΠ°Ρ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ΅ΡΠ°Π»ΠΈ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠΏΡΠΈΠ½Ρ?
- ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠ΅Π±Π΅ ΡΡΠ°Π²ΠΈΠ»ΠΈ
- Give an example of the situation, when you disagreed with the management
- Tell us about an example, when you and your colleague have completely different styles of work
- ΠΠ°ΠΊΠ°Ρ Π²Π°ΡΠ° ΡΠ°ΠΌΠ°Ρ Π±ΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°/Π½Π΅ΡΠ΄Π°ΡΠ°?
- ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ. Π§ΡΠΎ Π±Ρ Π²Ρ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΠ½Π°ΡΠ΅?
- ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π±ΡΠ»ΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½Ρ Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠΌ
- ΠΠ°Π·ΠΎΠ²ΠΈΡΠ΅ Π²Π°ΡΠΈ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ
- Whatβs the most challenging project youβve worked on? What technical challenges did you face? How did you overcome them?
- Tell me about a time when something went wrong in your project. What did you do?
- Whatβs the most interesting project youβve worked on? What tools did you use?
- Why did you choose this technology or programming language for the project?
- What user problem did you solve?
- How did this choice affect the business?
- What other technologies could help you solve this problem?
- Would you like to take any on-the-job courses?
- So you mentioned that you have a lot of experience building applications. What is one piece of advice you would give to a junior developer in this respect?
- Most software engineers work for a few years before taking on this role. How did you manage to do that in a year?
- Could you give me an example of technology that inspires you?
- Whatβs your favorite part about bringing a new product to the market?
- Tell me about the project youβre proud of
- Tell me about the time when you had to deal with an unexpected issue
- Why did you choose this technology or programming language for the project?
Use STAR framework
ΠΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ 3 ΠΏΡΠΎΠ΅ΠΊΡΠ°ΠΌ (3 ΠΌΠ΅ΡΡΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ)
- OOP: abstraction, encapsulation, inheritance, polymorphism - https://tproger.ru/translations/oop-principles-cheatsheet/
- ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (override vs overload)
- Overload - ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ, Override - Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ - https://javarush.ru/groups/posts/2025-polimorfizm-i-ego-druzjhja
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ? - ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ - Π΄Π°, ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ - Π½Π΅Ρ - https://stackoverflow.com/questions/2475259/can-i-override-and-overload-static-methods-in-java/5436790#:~:text=Static%20methods%20cannot%20be%20overridden,decides%20which%20method%20gets%20called.&text=Static%20methods%20can%20be%20overloaded%20(meaning%20that%20you%20can%20have,they%20have%20different%20parameter%20types).
- SOLID
- ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ SOLID
- ΠΡΠΈΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ SOLID Π² Android SDK - https://www.youtube.com/watch?v=1Mx-Sw4z9MY
- ΠΡΠΈΠΌΠ΅Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ SOLID Π² Kotlin - MutableList
- Π Π°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ ΠΊΠ»Π°ΡΡ Context Π² ΡΠ°ΠΌΠΊΠ°Ρ SOLID. - https://medium.com/android-news/single-responsibility-principle-and-context-60e39a28e5bd
- GRASP
https://bool.dev/blog/detail/grasp-printsipy
https://habr.com/ru/company/otus/blog/491636/
https://habr.com/ru/company/otus/blog/505618/
https://habr.com/ru/company/otus/blog/505852/
https://habr.com/ru/company/otus/blog/507600/
https://habr.com/ru/company/otus/blog/521476/
- ΠΠΎΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ Π»ΡΡΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ? - https://stackoverflow.com/questions/49002/prefer-composition-over-inheritance
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠΈΠ½ΡΡΡ Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ?
- Π§Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ? - ΠΡΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΊΠ»Π°ΡΡΠ°, Π° ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΊΠ»Π°ΡΡΠ°, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠ°ΠΌ ΠΊΠ»Π°ΡΡ.
- Clean code
- ΠΠ°ΠΊ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ? - Π’ΠΎΠΆΠ΅ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ O(), ΠΊΠ°ΠΊ ΠΈ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ - https://www.geeksforgeeks.org/analysis-algorithms-big-o-analysis/
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ - ΠΏΠΎΡΠ΅ΠΌΡ Π² Java ΠΎΡ Π½Π΅Π³ΠΎ ΠΎΡΠΊΠ°Π·Π°Π»ΠΈΡΡ?
- Π§Π΅ΠΌ ΠΠΠ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ?
- ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΡΠΎΠΌΠ΅ ΠΠΠ?
- ΠΠ³ΡΠ΅Π³Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ, ΠΎΡΠ»ΠΈΡΠΈΡ
https://habr.com/ru/post/354046/
- ΠΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ, Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌΠ°
- KISS, DRY, YAGNI
- ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΠΠ
https://tproger.ru/articles/pljusy-minusy-i-perspektivy-oop-v-sovremennoj-razrabotke/
https://tproger.ru/translations/oop-the-trillion-dollar-disaster/?utm_referrer=recommendation-banner
- ΠΠ°ΠΊ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Dependency Injection, Dependency Inversion, Inversion of Control? - https://medium.com/ssense-tech/dependency-injection-vs-dependency-inversion-vs-inversion-of-control-lets-set-the-record-straight-5dc818dc32d1
- Design Patterns: creational, behavioral, structural
https://habr.com/ru/company/vk/blog/325492/
https://habr.com/ru/post/210288/
- Which Design Patterns did you use in your projects?
- RecyclerView Adapter ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° ΠΠ΄Π°ΠΏΡΠ΅Ρ? - Π½Π΅Ρ - https://stackoverflow.com/questions/41626980/are-android-adapters-an-example-of-adapter-design-pattern
- ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ singleton - https://stackoverflow.com/questions/137975/what-are-drawbacks-or-disadvantages-of-singleton-pattern
- ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Android SDK, Dagger, RxJava
- ΠΠΎΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΈ Π€Π°ΡΠ°Π΄ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΌΠΈ? - Π€Π°ΡΠ°Π΄ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
https://learngitbranching.js.org/
- Gitflow
- Git merge vs rebase
https://github.com/enhorse/java-interview
- ΠΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ final? - ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΊΠ»Π°ΡΡΡ, ΠΌΠ΅ΡΠΎΠ΄Ρ
- ΠΠ°ΠΊ Π·Π°ΠΏΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ ? - ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊ final
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π² Java - public, protected, private, package private (ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°) - https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html
- ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π² ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ ? - ΠΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΡΡΡ, Π½ΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΡΠΆΠ°ΡΡ - https://docs.oracle.com/javase/tutorial/java/IandI/override.html
- What is an interface? - https://www.baeldung.com/java-interfaces
- Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (extends) Π² Java? ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ ΠΊ ΡΠ΅ΠΌΡ ΠΎΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ? - ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΊΠ»Π°ΡΡΠ°Ρ , Π½ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΡΠ΅Π½Π΄ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ²) - https://javarush.ru/groups/posts/731-mnozhestvennoe-nasledovanie-v-java-kompozicija-v-sravnenii-s-nasledovaniem
- ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Ρ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ - https://panditaarchit98.medium.com/multiple-inheritance-conflict-resolution-rules-java-8-82fb9fec0270
- ΠΡΠ»ΠΈΡΠΈΠ΅ interface ΠΎΡ abstract class - Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ public, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ private, Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
- ClassLoader, getClass
https://javarush.ru/groups/posts/646-kak-proiskhodit-zagruzka-klassov-v-jvm
https://www.baeldung.com/java-classloaders
- ΠΠΎΠ³Π΄Π° ClassLoader Π³ΡΡΠ·ΠΈΡ ΠΊΠ»Π°ΡΡ - ΠΏΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠ»Π°ΡΡΡ
- Java Memory Model - Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΠ°ΠΌΡΡΠΈ Π² JVM
http://tutorials.jenkov.com/java-concurrency/java-memory-model.html
https://habr.com/ru/post/510454/
https://habr.com/ru/post/510618/
- ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Java Memory Model Π² Android - https://proandroiddev.com/collecting-the-garbage-a-brief-history-of-gc-over-android-versions-f7f5583e433c
- ΠΠ΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΡ ΡΠΈΠΏΠΎΠ², Π° Π³Π΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ? - ΠΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΡΡΠ΅ΠΊΠ΅, Π° ΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π² ΠΊΡΡΠ΅ - https://ru.stackoverflow.com/questions/980439/%D0%92-%D0%BA%D0%B0%D0%BA%D0%BE%D0%B9-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%B8-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8-%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D1%82%D1%81%D1%8F-%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B2-java#:~:text=%D0%92%20Java%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B8%D1%82%D0%B8%D0%B2%D1%8B%20%D0%B8%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8,%D1%81%D1%82%D1%8D%D0%BA%D0%B5%2C%20%D0%B0%20%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B%20%D0%B2%20%D0%BA%D1%83%D1%87%D0%B5.
- ΠΠ΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΠ»Π΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°? - Π ΠΊΡΡΠ΅
- ΠΠ΄Π΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²Π½ΡΡΡΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°? - Π‘Π°ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ Π² ΠΊΡΡΠ΅, Π½ΠΎ ΡΡΡΠ»ΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ - Π² ΡΡΠ΅ΠΊΠ΅
- Garbage collection
https://java-online.ru/garbage-collection.xhtml
https://habr.com/ru/post/269621/
https://habr.com/ru/post/269707/
https://habr.com/ru/post/269863/
https://habr.com/ru/post/680038/
https://habr.com/ru/post/681116/
https://habr.com/ru/post/681256/
https://www.geeksforgeeks.org/garbage-collection-java/
- Π ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Garbage Collector ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ?
- ΠΠ°ΠΊ GC ΠΏΠΎΠΉΠΌΠ΅Ρ, ΡΡΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΡΡΠ»Π°Π΅ΡΡΡ
https://www.dynatrace.com/resources/ebooks/javabook/how-garbage-collection-works/
https://stackoverflow.com/questions/27186799/what-are-gc-roots-for-classes
https://www.yourkit.com/docs/java/help/gc_roots.jsp
- Π§ΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ root Π΄Π»Ρ Garbage Collection? - https://www.baeldung.com/java-gc-roots
- Π‘ΡΡΠ»ΠΎΡΠ½ΡΠΉ Π³ΡΠ°Ρ
- ΠΠ°ΠΊ GC ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΡΡΠ»ΠΎΡΠ½ΠΎΠΌΡ Π³ΡΠ°ΡΡ? - ΠΡ Π»ΠΈΡΡΡΠ΅Π² ΠΊ ΠΊΠΎΡΠ½Ρ. ΠΡΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠΉΡΠΈ Π΄ΠΎ ΠΊΠΎΡΠ½Ρ, ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ ΠΏΡΡΠΈ ΠΊ ΠΊΠΎΡΠ½Ρ, ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ.
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ g1, serial, parallel
- Π ΠΏΠ°ΠΌΡΡΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈ ΡΡΡΠ»Π°ΡΡΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π°, Π±ΠΎΠ»ΡΡΠ΅ Π½Π° Π½ΠΈΡ Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΡΡΠ»Π°Π΅ΡΡΡ. Π‘ΠΎΠ±Π΅ΡΠ΅Ρ Π»ΠΈ ΠΈΡ GC? - Π΄Π°, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ island of isolation
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ Object? - ΠΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΡΠ΄ Π±Π°Π·ΠΎΠ²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ garbage collector ΠΌΠΎΠ³ ΡΠΎΠ±ΡΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ
- Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ? - OutOfMemory Exception
- Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΠΌΡΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ? - StackOverflow
- ΠΠ΅ΡΠΎΠ΄Ρ Object - https://www.geeksforgeeks.org/object-class-in-java/
- Object.clone() ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠ·Π²Π°ΡΡ? - ΠΠ΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΠΈΡΡ Cloneable ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ - https://en.wikipedia.org/wiki/Clone_(Java_method)
- Object.finalize()
https://www.baeldung.com/java-finalize
- ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ equals ΠΈ hashcode
- ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» equals, ΡΠΎ Π½Π°Π΄ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ hashcode? - Π½Π°Π΄ΠΎ
- ΠΠΎΠ½ΡΡΠ°ΠΊΡ ΠΌΠ΅ΠΆΠ΄Ρ equals ΠΈ hashcode - Π΅ΡΠ»ΠΈ equals true, ΡΠΎ Ρ Π΅ΡΠΊΠΎΠ΄Ρ ΡΠ°Π²Π½Ρ. ΠΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ - Π΅ΡΠ»ΠΈ Ρ Π΅ΡΠΊΠΎΠ΄Ρ ΡΠ°Π²Π½Ρ, ΡΠΎ equals Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ true, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ Ρ Π΅ΡΠΊΠΎΠ΄ (ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ) - https://www.baeldung.com/java-equals-hashcode-contracts
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ equals ΠΈ hashcode? - Π½Π΅Ρ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² Ρ Π΅ΡΡΠ°Π±Π»ΠΈΡΠ΅
https://dzone.com/articles/java-hashing
https://jqno.nl/equalsverifier/errormessages/mutability-equals-depends-on-mutable-field/
- ΠΠ°ΠΊΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Ρ Π΅ΡΠΊΠΎΠ΄? - Π‘ΠΊΠΎΡΠΎΡΡΡ, ΡΠ°Π·Π±ΡΠΎΡ, ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ (ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»Π΅ΠΉ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Ρ Π΅ΡΠΊΠΎΠ΄)
- ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ hashcode ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (Π΅ΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ)? - Π ΡΠ°Π·Π½ΡΡ JVM ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ: ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈΠ»ΠΈ Π°Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°
- ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ hashcode Π² Dalvik (Android 4.4) - ΠΠ΄ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° >> 3 Π±ΠΈΡΠ°
- Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΠ½ΡΡΡ x.equals(null) - ΠΡΠ»ΠΈ x == null, ΡΠΎ NPE, ΠΈΠ½Π°ΡΠ΅ false
- ΠΡΡΡ ΠΊΠ»Π°ΡΡ A Ρ ΠΏΠΎΠ»ΡΠΌΠΈ x, y ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ equals. ΠΡ Π½Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΊΠ»Π°ΡΡ B Ρ ΠΏΠΎΠ»Π΅ΠΌ z ΠΈ ΠΊΠ»Π°ΡΡ C Ρ ΠΏΠΎΠ»Π΅ΠΌ m. ΠΠ°Π΄ΠΎ Π»ΠΈ Π² B ΠΈ C ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ equals? - ΠΠ°Π΄ΠΎ
http://www.angelikalanger.com/Articles/JavaSolutions/SecretsOfEquals/Equals.html
http://www.angelikalanger.com/Articles/JavaSolutions/SecretsOfEquals/Equals-2.html
- ΠΠΎΡΠ΅ΠΌΡ Π² equals Π²ΠΌΠ΅ΡΡΠΎ instanceOf Π΄Π΅Π»Π°ΡΡ getClass? - ΡΡΠΎΠ±Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΠΎΠΌΠΊΠ°ΠΌΠΈ Π½Π΅ Π²Π΅ΡΠ½ΡΠ»ΠΎ true
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ equals Π΄Π»Ρ Π΄Π²ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²? - Arrays.deepEquals()
https://www.baeldung.com/java-arrays-deepequals
https://www.geeksforgeeks.org/equals-and-deepequals-method-to-compare-two-arrays-in-java/
https://www.geeksforgeeks.org/java-util-arrays-deepequals-java/
- ΠΠ΅ΡΠΎΠ΄Ρ wait() (ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ), notify(), notifyAll()
https://jenkov.com/tutorials/java-concurrency/thread-signaling.html
https://www.baeldung.com/java-wait-notify
- Types of references in Java (Strong, Weak, Soft, Phantom)
https://www.geeksforgeeks.org/types-references-java/
https://www.baeldung.com/java-weak-reference
https://www.baeldung.com/java-phantom-reference
https://www.baeldung.com/java-soft-references
https://javarush.ru/quests/lectures/questcollections.level04.lecture03
https://javarush.ru/quests/lectures/questcollections.level04.lecture05
https://javarush.ru/groups/posts/2291-osobennosti-phantomreference
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SoftReference
https://habr.com/ru/post/169883/
- ΠΠ°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ WeakReference, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ SoftReference? - https://www.logicbig.com/tutorials/core-java-tutorial/gc/soft-vs-weak-ref.html
- ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ SoftReference Π² Android - ΠΠ°ΡΠΈΠ½Π°Ρ Ρ Android 2.3, GC Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ SoftReference Π² ΠΠ½Π΄ΡΠΎΠΈΠ΄Π΅ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΠ°. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΡΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ LruCache - https://stackoverflow.com/questions/5757969/softreference-gets-garbage-collected-too-early
- ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Π° PhantomReference, ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
https://javarush.ru/groups/posts/2291-osobennosti-phantomreference
https://stackoverflow.com/questions/53822132/java-phantomreference-vs-finalize
https://o7planning.org/13697/java-phantomreference
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PhantomReference Π² Android? - Leak Canary
- ΠΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ - O(n^2) - https://dzone.com/articles/string-concatenation-performacne-improvement-in-ja === https://overcoder.net/q/186163/%D1%81%D0%BB%D0%BE%D0%B6%D0%BD%D0%BE%D1%81%D1%82%D1%8C-%D0%BA%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%86%D0%B8%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA-%D0%B2-c-%D0%B8-java
- StringBuilder - ΡΠ΅ΠΌ ΠΎΠ½ Π»ΡΡΡΠ΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ - https://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java === https://www.baeldung.com/java-strings-concatenation
- ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Ρ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΡΡΠΎΠΊ (+) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ StringBuilder - https://www.baeldung.com/java-strings-concatenation
- ΠΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΡΠΎΠΊ - https://www.baeldung.com/java-string-immutable
- ΠΠΎΠ³Π΄Π° ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΡΡΠΎΠΊΠΈ? - ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΊΠΎΠ½ΠΊΠ°ΡΠ΅Π½Π°ΡΠΈΠΈ Π² ΡΠΈΠΊΠ»Π΅
- StringPool - https://www.baeldung.com/java-string-pool
- ΠΠΎΡΠ΅ΠΌΡ ΠΏΠ°ΡΠΎΠ»Ρ Π»ΡΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΡΠ΅ΠΌ Π² ΡΡΡΠΎΠΊΠ΅? - ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΡΠΎΠΊΠ° Ρ ΡΠ°Π½ΠΈΡΡΡ Π² StringPool, ΠΈ ΡΠ°ΠΌ Π΅Π΅ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ
- ΠΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΎΡ final
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΡ? - https://www.baeldung.com/java-immutable-object
- Java reflection - https://www.baeldung.com/java-reflection
- ΠΠ΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ
http://www.quizful.net/post/Java-Collections
https://habr.com/ru/post/162017/
- ΠΠΎΡΠ΅ΠΌΡ Map Π½Π΅ Collection - Ρ Collection Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π½ΡΠΆΠ½Ρ Π² Map
- int i - ΡΡΠΎ value ΠΈΠ»ΠΈ reference? - value
- What is boxing, unboxing (Integer, Double, ...)
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ ΠΊΠ»Π°ΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (int, double, ...) - Π½Π΅Ρ
- ArrayList vs LinkedList. Which one takes less time to add an item in the middle? Which one takes less time to get n-th element?
- ΠΠ°ΠΊΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π²ΡΡΠ²ΡΠ·Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°? - ΠΠ° ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΠ΄Ρ: ΠΈΠ½ΡΡΠ°Π½Ρ ΡΠ°ΠΌΠΎΠΉ Π½ΠΎΠ΄Ρ, ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ.
- ArrayList ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ - ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 10
- List vs Set - https://www.geeksforgeeks.org/difference-between-list-and-set-in-java/
- ArrayList vs Vector - https://www.geeksforgeeks.org/vector-vs-arraylist-java/
- SparseArray
https://developer.android.com/reference/android/util/SparseArray
- Binary search - https://www.baeldung.com/java-binary-search
- ΠΠ°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π΄Π»Ρ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
- ΠΠ°ΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π² ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ°ΡΡΠΈΠ²Π΅? - ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ. ΠΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ - O(logn)
- ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΠ΅ Π±ΡΠ²Π°ΡΡ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΊΡΠΎΠΌΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ O?
-
ΠΌΠ°Π»ΠΎΠ΅ O ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π²Π΅ΡΡ Π½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΡΠΎΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ
-
ΠΎΠΌΠ΅Π³Π° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
-
ΡΠ΅ΡΠ° ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ HashMap?
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π² Map ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ? - ΠΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅e
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΡ?
- HashMap - Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ - ΠΠ°ΠΏΠΈΡΡ Π² LinkedList Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ
- What will Hashmap become, if all the elements will have the same hashcode? - HashMap will become a LinkedList
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² HashMap ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Ρ ΠΊΠ»ΡΡΠΎΠΌ null? - ΠΌΠΎΠΆΠ½ΠΎ - https://stackoverflow.com/questions/25932730/hashmap-with-null-key-and-null-value#:~:text=HashMap%20puts%20null%20key%20in,linked%20list%20data%20structure%20internally.&text=In%20Entry%20class%20the%20K,value%20passed%20in%20put%20method.
- ΠΡΡΡ Π»ΠΈ Π² HashMap LinkedList ΠΏΠΎ ΠΊΠ»ΡΡΡ null - ΠΠ΅Ρ, ΡΠ°ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ null Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ equals
- HashMap - ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π±Π°ΠΊΠ΅ΡΡ? - ΠΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π΄ΡΠ΅ΡΡΡΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Ρ Π΅ΡΠΊΠΎΠ΄Π° (Π±Π°ΠΊΠ΅ΡΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΏΠΈΡΠΊΠΈ ΠΈΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ) - https://www.baeldung.com/java-hashmap
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² HashMap, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Java 8 - ΠΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΠΌΠ΅ΡΡΠΎ LinkedList ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π΅ΡΠ΅Π²ΠΎ (ΡΠΌ. ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΎΠΏΡΠΎΡ) - https://habr.com/ru/post/421179/
- ΠΡΠ΅Π³Π΄Π° Π»ΠΈ Π² Π±Π°ΠΊΠ΅ΡΠ°Ρ Π² HashMap ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ LinkedList? - ΠΠ΅Ρ. ΠΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π±Π°ΠΊΠ΅ΡΠ΅ LinkedList Π·Π°ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° binary tree. Π’ΠΎΠ³Π΄Π° Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ O(logn) Π²ΠΌΠ΅ΡΡΠΎ O(n) ΠΡΠΈΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅: log ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ 2
- ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² HashMap
- ΠΠΎΡΠ΅ΠΌΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° Π² HashMap Π²ΡΠ±ΡΠ°Π½ 16
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ°? - ΠΠ°, ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ Ρ Π΅ΡΠΊΠΎΠ΄ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ
- ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ HashSet ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ? - ΡΡΠΎ HashMap, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°
https://javarush.ru/groups/posts/2147-hashset-v-java
https://habr.com/ru/company/otus/blog/495032/
- Π§ΡΠΎ Π·Π° ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² HashSet? - "PRESENT" - https://www.geeksforgeeks.org/internal-working-of-sethashset-in-java/
- TreeMap under the hood
https://javarush.ru/groups/posts/2584-osobennosti-treemap
https://www.geeksforgeeks.org/treemap-in-java/
https://www.baeldung.com/java-treemap
- ΠΠ΅Π²ΠΎΠ°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΡ (Π, ΠΠΠ) - https://ru.wikipedia.org/wiki/%D0%9E%D1%87%D0%B5%D1%80%D1%91%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B9
- ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ - ΡΡΠΎ ΡΡΠΎ? - https://www.baeldung.com/java-custom-annotation
- RetentionPolicy Π² Π°Π½Π½ΠΎΡΠ°ΡΠΈΡΡ - https://www.java2novice.com/java-annotations/retention-policy/#:~:text=Description%3A,point%20annotation%20should%20be%20discarded.&text=Annotation%20with%20retention%20policy%20RUNTIME,pass%20the%20retention%20policy%20type.
- RetentionPolicy SOURCE, CLASS, RUNTIME - https://www.geeksforgeeks.org/java-retention-annotations/
- ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ NotNull/Nullable - https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html
- ΠΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ?
- Java Throwable Hierarchy (Errors and Exceptions) - https://rollbar.com/blog/java-exceptions-hierarchy-explained/
- Java checked and unchecked exceptions - ΠΡΠΎ ΠΊΠΎΠ³Π΄Π° Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π΅ΡΡΡ throws Exception ΠΈ ΡΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠΏΡΠΎΡΠΈΡ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² try-catch - https://www.geeksforgeeks.org/checked-vs-unchecked-exceptions-in-java/#:~:text=In%20Java%2C%20there%20are%20two,the%20exception%20using%20throws%20keyword.
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠΉΠΌΠ°ΡΡ OutOfMemoryException Π² try-catch Π±Π»ΠΎΠΊ? - ΠΠ°, Π½ΠΎ Π² ΡΡΠΎΠΌ Π½Π΅Ρ ΡΠΌΡΡΠ»Π°
- What is "finally" block used for in try-catch? ΠΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² finally Π±Π»ΠΎΠΊΠ΅?
- ΠΠ°ΡΠ΅ΠΌ Π·Π°ΠΊΡΡΠ²Π°ΡΡ OutputStream? - https://www.geeksforgeeks.org/correct-ways-to-close-inputstream-and-outputstream-in-java-with-examples/ - https://ru.stackoverflow.com/questions/605255/%D0%9D%D1%83%D0%B6%D0%BD%D0%BE-%D0%BB%D0%B8-%D0%B7%D0%B0%D0%BA%D1%80%D1%8B%D0%B2%D0%B0%D1%82%D1%8C-%D0%BF%D0%BE%D1%82%D0%BE%D0%BA%D0%B8-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B2-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B
- Static classes vs inner (nested) classes - https://stackoverflow.com/questions/70324/java-inner-class-and-static-nested-class
- ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² - https://www.techartifact.com/blogs/2009/08/anonymous-classes-in-java.html
- Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Singleton
https://www.journaldev.com/1377/java-singleton-design-pattern-best-practices-examples
https://habr.com/ru/post/129494/
https://www.baeldung.com/java-singleton
- ΠΠΈΠ΄Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΎΠΊ - ΠΏΡΠ·ΡΡΡΠΊΠΎΠΌ O(n^2), ΡΠ»ΠΈΡΠ½ΠΈΠ΅ΠΌ O(nlogn), Π±ΡΡΡΡΠ°Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° O(nlogn), ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΏΠΎΠ΄ΡΡΠ΅ΡΠΎΠΌ (ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ) O(n+k) Π³Π΄Π΅ k - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
- IntegerCache - https://www.geeksforgeeks.org/java-integer-cache/
- Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
- ΠΠΈΡΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠ΅ ΡΠ΄Π²ΠΈΠ³ΠΈ
- Big endian, little endian
https://www.geeksforgeeks.org/little-and-big-endian-mystery/
https://howtodoinjava.com/java/basics/little-endian-big-endian/
- ΠΠ°ΠΊ ΡΡΠ°Π²Π½ΠΈΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ? - https://www.baeldung.com/java-comparing-objects
- ΠΠ΄Π΅ Ρ ΡΠ°Π½ΡΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ/ΠΊΠ»Π°ΡΡΡ? - Π ΠΊΡΡΠ΅
- ΠΠ°ΠΊ Π² Java ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠ½Π³Π»ΡΠΎΠ½? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Java?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Generics - https://habr.com/ru/company/sberbank/blog/416413/
- Π‘ ΠΊΠ°ΠΊΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Java ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ? - Java 5
- Π‘ΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² - https://javarush.ru/groups/posts/2315-stiranie-tipov
- PECS - https://stackoverflow.com/questions/2723397/what-is-pecs-producer-extends-consumer-super
- ΠΠΎΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ (extends T), ΠΊΠΎΠ½ΡΡΠ²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ (super T), ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ (ΠΏΡΠΎΡΡΠΎ T)
- ΠΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ: instanceOf List - Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·-Π·Π° ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²
- ΠΠΎΡΠ΅ΠΌΡ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ Π² Object? - Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Java
- Wildcards - https://jenkov.com/tutorials/java-generics/wildcards.html
https://github.com/gpetuhov/MultithreadingTutorial
https://habr.com/ru/companies/otus/articles/353414/
- ΠΡΠΎΡΠ΅ΡΡΡ ΠΈ ΠΏΠΎΡΠΎΠΊΠΈ
https://developer.android.com/guide/components/processes-and-threads
https://techdifferences.com/difference-between-process-and-thread-in-java.html
- Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ, ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ?
https://www.baeldung.com/cs/async-vs-multi-threading
- Thread vs Runnable - https://medium.com/@bharatkulratan/difference-between-runnable-and-thread-in-java-aacced9dca44
- Which means of organizing multithreading do you know? (Java Thread, ExecutorService, Handler, AsyncTask, RxJava, Kotlin coroutines)
- ExecutorService
https://www.baeldung.com/java-executor-service-tutorial
- ΠΠ°ΠΊΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡΠΎΠΊ ΠΈ ΠΊΠ°ΠΊΠΎΠ² ΡΠΌΡΡΠ» ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Thread.getState()
https://www.baeldung.com/java-thread-lifecycle
https://www.geeksforgeeks.org/lifecycle-and-states-of-a-thread-in-java/
- Race condition - ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
- synchronized vs volatile
https://jenkov.com/tutorials/java-concurrency/synchronized.html
https://jenkov.com/tutorials/java-concurrency/volatile.html
https://www.baeldung.com/java-synchronized
https://stackoverflow.com/questions/3519664/difference-between-volatile-and-synchronized-in-java
- ΠΠΎΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ volatile ΠΎΡ Π³ΠΎΠ½ΠΊΠΈ? - Π½Π΅Ρ - ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ?
https://www.javatpoint.com/volatile-keyword-in-java
https://www.baeldung.com/java-volatile-variables-thread-safety
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ volatile? - Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° volatile ΠΌΠΎΠΆΠ΅Ρ Π΄Π°ΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·-Π·Π° ΡΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΈΠ· ΠΊΡΡΠ° ΡΠ΄ΡΠ°, Π° ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ - https://stackoverflow.com/questions/4633866/is-volatile-expensive
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π΄Π΅Π»Π°ΡΡ volatile? - Π΄Π°
- Volatile - ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
- synchronized vs static synchronized - https://stackoverflow.com/questions/6367885/difference-between-synchronizing-a-static-method-and-a-non-static-method
- Deadlock - ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ Π±ΠΎΡΠΎΡΡΡΡ? Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Livelock?
https://jenkov.com/tutorials/java-concurrency/deadlock.html
https://jenkov.com/tutorials/java-concurrency/deadlock-prevention.html
https://www.baeldung.com/java-deadlock-livelock
https://www.baeldung.com/java-dining-philoshophers
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ
- ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ tryLock, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ deadlock? - https://www.baeldung.com/java-deadlock-livelock
- Synchronized vs Lock - https://www.geeksforgeeks.org/lock-framework-vs-thread-synchronization-in-java/
- Π§Π΅ΡΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° (ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ)
https://jenkov.com/tutorials/java-concurrency/starvation-and-fairness.html
https://blog.katastros.com/a?ID=01750-09f35317-998a-46e0-898f-90568ca53cdc
- Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ synchronized ΡΠ΅ΡΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ? - Π½Π΅Ρ - https://senior.ua/articles/mnogopotochnost-v-java-lekciya-3-blokirovki-i-klassy-sinhronizacii-potokov
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ? - Ρ ReentrantLock ΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π°Π³ fair true - https://stackoverflow.com/questions/7962312/how-to-understand-the-non-fair-mode-of-reentrantreadwritelock
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ?
- ΠΠΎΡΠ΅ΠΌΡ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ Π½Π΅ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΉ? - http://java.msk.ru/%D0%BD%D0%B5-%D0%B0%D1%82%D0%BE%D0%BC%D0%B0%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C-i-volatile-%D0%B8-synchronized/
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΡ Atomic (CAS/FAA) - https://habr.com/ru/post/319036/
- ΠΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. CompareAndSet
https://www.baeldung.com/java-atomic-variables
- CompareAndSwap - https://jenkov.com/tutorials/java-concurrency/compare-and-swap.html
- AtomicInteger - https://jenkov.com/tutorials/java-util-concurrent/atomicinteger.html
- AtimicReference - https://jenkov.com/tutorials/java-util-concurrent/atomicreference.html
- Π§ΡΠΎ Π²ΡΠ΄Π°ΡΡ Future.get(), Π΅ΡΠ»ΠΈ Callable Π·Π°Π²Π΅ΡΡΠΈΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ - ΠΡΠ΄Π΅Ρ ExecutionException
- CompletableFuture
- Java concurrent list - CopyOnWriteArrayList - https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/CopyOnWriteArrayList.html
- Java ConcurrentHashMap
https://www.baeldung.com/java-concurrent-map
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html
- ThreadLocal
https://jenkov.com/tutorials/java-concurrency/threadlocal.html
https://www.baeldung.com/java-threadlocal
https://habr.com/ru/post/108016/
https://javarush.ru/quests/lectures/jru.module2.lecture26
- Π‘ΡΠ΅Π΄ΡΡΠ²Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ² (ΡΠ΅ΠΌΠ°ΡΠΎΡ, ΡΠ°Π·Π΅Ρ)
https://jenkov.com/tutorials/java-concurrency/semaphores.html
https://habr.com/ru/post/277669/
- ReentrantLock
- ReadWriteLock
- Π‘Π΅ΠΌΠ°ΡΠΎΡΡ - CountDownLatch, CyclicBarrier, Phaser
https://www.baeldung.com/java-semaphore
https://www.baeldung.com/java-countdown-latch
https://www.baeldung.com/java-cyclic-barrier
https://www.baeldung.com/java-phaser
- CountDownLatch vs CyclicBarrier - https://www.baeldung.com/java-cyclicbarrier-countdownlatch
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Phaser? - https://habr.com/ru/post/117185/
- Π‘Π΅ΠΌΠ°ΡΠΎΡΡ, ΠΌΠΎΠ½ΠΈΡΠΎΡΡ - https://www.baeldung.com/cs/monitor
- Mutex
https://javarush.ru/groups/posts/2174-v-chem-raznica-mezhdu-mjhjuteksom-monitorom-i-semaforom
https://www.baeldung.com/java-mutex
- Object wait(), notify(), notifyAll() - https://howtodoinjava.com/java/multi-threading/wait-notify-and-notifyall-methods/
- notify vs notifyAll
https://stackoverflow.com/questions/37026/java-notify-vs-notifyall-all-over-again
https://www.geeksforgeeks.org/difference-between-notify-and-notifyall-in-java/
- ΠΠ°ΠΊΠΈΠ΅ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ° Object ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ producer / consumer?
https://www.baeldung.com/java-producer-consumer-problem
https://www.geeksforgeeks.org/inter-thread-communication-java/
- ΠΠΎΡΠ΅ΠΌΡ ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π΄ΠΎΠ»Π³ΠΎ (ΡΡΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ)? - https://stackoverflow.com/questions/5483047/why-is-creating-a-thread-said-to-be-expensive
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ synchronized ΠΈ concurrent collections - https://javarevisited.blogspot.com/2016/05/what-is-difference-between-synchronized.html#axzz7ZSljBC9o
- Synchronized collections - https://www.baeldung.com/java-synchronized-collections
- Concurrent collections (ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Π² Java 5) - https://www.developer.com/design/an-introduction-to-concurrent-collection-apis-in-java/
- ΠΠΎΡΠ΅ΠΌΡ Thread.stop() deprecated - https://docs.oracle.com/javase/8/docs/technotes/guides/concurrency/threadPrimitiveDeprecation.html#:~:text=stop%20deprecated%3F,monitors%20that%20it%20has%20locked.&text=Unlike%20other%20unchecked%20exceptions%2C%20ThreadDeath,his%20program%20may%20be%20corrupted.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡΡ Π»ΠΈ Π±Π»ΠΎΠΊ finally (Π² try-catch-finally) Π²Π½ΡΡΡΠΈ ΠΏΠΎΡΠΎΠΊΠ°, Π΅ΡΠ»ΠΈ Π²ΡΠ·Π²Π°ΡΡ Thread.stop()? - Π½Π΅Ρ, ΠΏΠΎΡΡΠΎΠΌΡ Thread.stop() deprecated
- Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠΎΠΊΠ° - https://www.baeldung.com/java-thread-stop
- ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π² Java, Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Thread.stop(), ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ deprecated? - https://stackoverflow.com/questions/10961714/how-to-properly-stop-the-thread-in-java
- ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ InterruptedException? - https://www.baeldung.com/java-interrupted-exception
- ΠΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Thread.interrupt() ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉΡΡ ΠΏΠΎΡΠΎΠΊ ΠΊΠΎΡΠΎΡΡΠΉ ΠΠ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ sleep ΠΈΠ»ΠΈ wait? - Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ»Π°Π³Π° Thread.interrupted() - https://www.tutorialspoint.com/how-to-interrupt-a-running-thread-in-java
- ΠΡΡΡ Π»ΠΈ Ρ enum ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠΊΠ΅? - Π½Π΅Ρ - https://www.geeksforgeeks.org/advantages-and-disadvantages-of-using-enum-as-singleton-in-java/#:~:text=Creation%20of%20Enum%20instance%20is,some%20line%20of%20code%20enum.
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Happens Before?
https://jenkov.com/tutorials/java-concurrency/java-happens-before-guarantee.html
- ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Π² Java ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ Linux
https://www.baeldung.com/java-thread-priority
https://medium.com/@vikas.singh_67409/deep-dive-into-thread-priority-in-java-be1a5da30a34
- Starvation ΠΈ LiveLock - https://www.baeldung.com/cs/deadlock-livelock-starvation
- sleep vs wait - https://www.geeksforgeeks.org/difference-between-wait-and-sleep-in-java/
- Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π² run() Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅? - https://aozturk.medium.com/how-to-handle-uncaught-exceptions-in-java-abf819347906
- Java Util Concurrent (JUC) - https://habr.com/ru/company/luxoft/blog/157273/
- Π‘Π²ΠΎΠΉΡΡΠ²Π° ordering, visibility, atomicity, happens-before, mutual exclusion Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ volatile - http://www.duct-tape-architect.ru/?p=294#14__ordering_visibility_atomicity_happens-before_mutual_exclusion___volatile_AtomicInteger_synchronize
- BlockingQueue - https://www.baeldung.com/java-blocking-queue
- ΠΡΠΆΠ½ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ 3 ΡΠ΅ΡΠ΅Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠ°, Π΄ΠΎΠΆΠ΄Π°ΡΡΡΡ ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ±ΡΠ°Π² Π²ΡΠ΅ 3 ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° (Π°Π½Π°Π»ΠΎΠ³ RxJava zip). ΠΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ RxJava ΠΈ ΠΊΠΎΡΡΡΠΈΠ½? (ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°: ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΌΠ°ΡΠΎΡΡ)
- What are the advantages of Kotlin?
- ΠΡΡΡ Π»ΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π² ΠΠΎΡΠ»ΠΈΠ½Π΅? - Π½Π΅Ρ, Π½ΠΎ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² jvm ΠΊΠΎΠ΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π²Π΅Π·Π΄Π΅, Π³Π΄Π΅ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ - https://stackoverflow.com/questions/57408327/does-kotlin-have-primitive-types
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ val property Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π» ΡΠ°Π·Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ? - ΠΠΎΠΆΠ½ΠΎ Π²ΠΎΡ ΡΠ°ΠΊ val isWorthReading get() = this.rating > 5 - https://www.baeldung.com/kotlin/getters-setters
- ΠΠ°ΠΊ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΠΏΠΎΡΠΎΠΌΠΊΠ°Ρ ? - ΠΠΎΠΌΠ΅ΡΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊ open
- Any, Unit, Nothing - https://gb.ru/posts/razbiraemsya-v-tipah-kotlin-unit-nothing-any-i-null
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Any, Nothing, Unit ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ? - Any - ΠΌΠ½ΠΎΠ³ΠΎ, Nothing - Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Unit - ΠΎΠ΄ΠΈΠ½
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΡΠ°Π½ΡΠΎΠ² Unit ΠΈ Nothing ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ? - Unit - ΠΎΠ΄ΠΈΠ½, Π° Ρ Nothing - ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ
- ΠΠ»Π°ΡΡ Any - Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° (equals, hashCode, toString) - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/
- ΠΠ°ΠΊ ΡΠ²ΡΠ·Π°Π½Ρ Kotlin Any ΠΈ Java Object? - https://stackoverflow.com/questions/38761021/does-any-object
- ΠΠ°ΠΊ Π²ΡΠ·Π²Π°ΡΡ Ρ Any ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Object (wait, notify)? - ΠΡΡΠ΅ΠΌ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠ° (myAny as Object).wait()
- ΠΠ°ΠΊ Any ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² nullability ΠΈ multiplatform?
- ΠΠ°ΠΊ nullability Π² Kotlin ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Java? - https://kotlinlang.org/docs/java-to-kotlin-nullability-guide.html - https://kotlinlang.org/docs/java-to-kotlin-interop.html#null-safety - https://kotlinlang.org/docs/java-interop.html#null-safety-and-platform-types
- ΠΠ»Π°ΡΡ Nothing - ΡΡΠΎ null Π½Π΅Ρ? - Π½Π΅Ρ, Nothing - ΡΡΠΎ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ Π²ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π² Kotlin, ΠΎΠ½ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²Π΅ΡΠ½ΡΡΡ (Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΈΠ΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Nothing). Π Nothing? ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ null. - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-nothing.html
- ΠΠ°ΠΊ Nothing ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π±ΠΊΠ»Π°ΡΡΠΎΠΌ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°? - https://the-cogitator.com/posts/blog/2018/06/29/the-nature-of-nothing-in-kotlin.html
- ΠΠ»Π°ΡΡ Unit - ΡΡΠΎ Π°Π½Π°Π»ΠΎΠ³ void Π² Java - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/
- Unit vs Nothing - https://stackoverflow.com/questions/55953052/kotlin-void-vs-unit-vs-nothing
- ΠΠ°ΠΊΠΎΠΉ ΡΠΈΠΏ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Java ΠΈΠ· Kotlin - nullable ΠΈΠ»ΠΈ Π½Π΅Ρ? ΠΠ°ΠΊ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ Nullable, NonNull? - https://kotlinlang.org/docs/java-interop.html
- ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ finalize? - https://kotlinlang.org/docs/java-interop.html#finalize
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° Π² Kotlin
- ΠΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ internal? - Π² public - https://4comprehension.com/kotlins-internal-visibility-modifier-and-java-interoperability/
- Companion object, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, private property, init - Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ? - Companion object -> property initializer -> init -> constructor - https://medium.com/keepsafe-engineering/an-in-depth-look-at-kotlins-initializers-a0420fcbf546
- Π ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ object Π² Kotlin?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ companion object?
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ ΠΎΠ±ΡΡΠ²ΠΈΡΡ object ΠΈ companion object? - ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² Java ΡΠ°Π·Π½ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ
- ΠΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ hashCode ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ?
- ΠΡΠ»ΠΈ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ equals(), ΡΠΎ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ == ? - ΠΡΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ JVM, Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ JVM ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π°. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ»ΠΎΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ.
- Kotlin default and named arguments
- How to create a singleton in Kotlin? - object
- ΠΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ object? - Π ΡΠΈΠ½Π³Π»ΡΠΎΠ½ - final class with static instance initialization - https://stackoverflow.com/questions/30179793/are-kotlins-singletons-thread-safe === https://jonnyzzz.com/blog/2019/02/04/companion-and-object/
- Π―Π²Π»ΡΠ΅ΡΡΡ Π»ΠΈ object ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΌ? - Π΄Π°
- Companion objects - https://www.baeldung.com/kotlin/companion-object
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ GC ΠΏΠΎΡΠΈΡΡΠΈΡΡ object ΠΈΠ»ΠΈ companion object? - Π½Π΅Ρ - https://stackoverflow.com/questions/54052761/does-object-in-kotlin-get-garbage-collected
- Difference between val and const val?
- ΠΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°? - Π² Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ Java
- Can enums contain values? (Yes: enum class Action(val value: Int) { WALK(0), RUN(1), ... }
- Π ΡΠ΅ΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ sealed class ΠΏΠ΅ΡΠ΅Π΄ enum? - Sealed class ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. Enum Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² sealed classes Π² Kotlin 1.7 - when (ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ sealed ΠΊΠ»Π°ΡΡΠ° (exhaustive when) - https://kotlinlang.org/docs/compatibility-guide-17.html#make-when-statements-with-enum-sealed-and-boolean-subjects-exhaustive-by-default
- Sealed interface
https://kotlinlang.org/docs/sealed-classes.html
https://jorgecastillo.dev/sealed-interfaces-kotlin
- lateinit vs lazy
- Lazy ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠΉ? - ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΄Π°
- Π’ΠΈΠΏΡ Π΄Π΅Π»Π΅Π³Π°ΡΠΎΠ² - property, interface
- Property delegates
https://kotlinlang.org/docs/delegated-properties.html#property-delegate-requirements
- Delegates - ΠΊΠ°ΠΊ ΡΠ°ΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ?
https://www.codementor.io/@packt/delegated-properties-in-kotlin-kqda9rze4
https://medium.com/androiddevelopers/built-in-delegates-4811947e781f
- Interface delegates - https://medium.com/@Joseph82/interface-delegation-in-kotlin-1404dfcd9167
- inline functions - https://habr.com/ru/articles/775120/
- Inline ΡΡΠ½ΠΊΡΠΈΡ Ρ Π»ΡΠΌΠ±Π΄ΠΎΠΉ ΠΈ Π±Π΅Π· Π»ΡΠΌΠ±Π΄Ρ
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠ·Π²Π°ΡΡ inline ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ· Java? - Π±Π΅Π· reified ΠΌΠΎΠΆΠ½ΠΎ, Ρ reified Π½Π΅Π»ΡΠ·Ρ
- crossinline
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ·Π½Π°ΡΡ ΡΠΈΠΏ Π΄ΠΆΠ΅Π½Π΅ΡΠΈΠΊΠ° Π² inline ΡΡΠ½ΠΊΡΠΈΠΈ? - ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ reified parameters - https://stackoverflow.com/questions/33146160/how-to-check-generic-type-in-kotlin
- reified type parameters (ΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠ»Π°ΡΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ reified ΠΏΠΎΠ»Π΅ΠΉ) - https://kotlinlang.org/docs/inline-functions.html#reified-type-parameters
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Ρ reified Π² Java? - Π½Π΅Ρ - https://stackoverflow.com/questions/42741780/how-can-i-call-kotlin-methods-with-reified-generics-from-java
- ΠΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ inline? - ΠΠΎΠ³Π΄Π° Π»ΡΠΌΠ±Π΄Π° Π±ΠΎΠ»ΡΡΠ°Ρ (ΡΠΎΠ³Π΄Π° ΠΊΠΎΠ΄Π° ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ)
- noinline - https://kotlinlang.org/docs/inline-functions.html
- ΠΠ°ΠΉΡΠΊΠΎΠ΄ inline, crossinline, noinline
https://www.baeldung.com/kotlin/inline-functions
https://www.baeldung.com/kotlin/crossinline-vs-noinline
- tailrec - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ tail recursion ΠΌΠ΅ΡΠΎΠ΄ Π² ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠΈΠΊΠ»ΠΎΠΌ - https://kotlinlang.org/docs/functions.html#tail-recursive-functions
- infix functions - https://kotlinlang.org/docs/functions.html#infix-notation
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ infix ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ - Π½Π΅Ρ
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°Π½Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ extension functions - ΡΡΠΎ static ΠΌΠ΅ΡΠΎΠ΄Ρ - https://moshenskyi.medium.com/kotlin-under-the-hood-extension-functions-1d61fabdf631
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² extension function? - Π½Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π³Π΄Π΅ Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ ΠΈΠ·Π²Π½Π΅
- Extension functions - ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΈΠΌ Π»Π΅Π³ΠΊΠΎ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»ΡΡΡ ΠΈ ΡΡΠΆΠ΅Π»ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ
- ΠΡΠ΅Π³Π΄Π° Π»ΠΈ extension functions ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅?
- Extension functions Π²ΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ· Java - https://stackoverflow.com/questions/28294509/accessing-kotlin-extension-functions-from-java
- Nested functions, Π²ΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ - https://discuss.kotlinlang.org/t/how-are-functions-inside-functions-translated/2785
- ΠΠΈΡΠ΅ΡΠ°Π»Ρ - https://kotlinlang.org/docs/basic-types.html#literal-constants
- Data classes - https://kotlinlang.org/docs/data-classes.html#properties-declared-in-the-class-body
- ΠΠ΅ΡΠΎΠ΄Ρ data ΠΊΠ»Π°ΡΡΠ°
- ΠΠ΅ΡΠΎΠ΄ copy() - ΡΠ°ΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ? - ΠΠ΅Ρ, ΡΡΠΎ shallow copy - https://stackoverflow.com/questions/47359496/kotlin-data-class-copy-method-not-deep-copying-all-members
- Π data class ΠΌΠΎΠΆΠ½ΠΎ override ΡΠΎΠ»ΡΠΊΠΎ equal Π±Π΅Π· hashcode? - Π½Π΅Ρ - https://petamind.com/why-do-we-need-to-override-equals-and-hashcode-methods-in-java-kotlin/
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ data classes? - Π½Π΅Ρ - https://discuss.kotlinlang.org/t/data-class-inheritance/4107
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠ°ΠΌ data class Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° - Π΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ seales ΠΊΠ»Π°ΡΡΠ°)
- ΠΠ°ΠΊ Π² Kotlin ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ property Π½Π΅ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π» Π² Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ hashCode Π² data class? - ΠΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π² ΡΠ΅Π»Π΅ ΠΊΠ»Π°ΡΡΠ°, Π° Π½Π΅ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ - https://kotlinlang.org/docs/data-classes.html#properties-declared-in-the-class-body
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Ρ data ΠΊΠ»Π°ΡΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ²? - ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΡΠ΄ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ primary ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°
- ΠΡΡΡ Π»ΠΈ equals ΠΈ hashcode Ρ Π»ΡΠΌΠ±Π΄Ρ Π² Kotlin? - Π΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ - https://stackoverflow.com/questions/24095875/is-there-a-way-to-compare-lambdas
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π»ΡΠΌΠ±Π΄Ρ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ data class? - ΠΌΠΎΠΆΠ½ΠΎ - https://iamjonfry.com/posts/lambdas-in-data-classes/
- Π£Π΄Π°Π»ΠΎΡΡ Π»ΠΈ Π² Kotlin ΡΠΉΡΠΈ ΠΎΡ null? - ΠΠ΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ lateinit ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null
- ΠΠΈΠ½ΡΡΡ null safety - Π ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π·Π±ΡΠΎΡΠ°Π½Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° null ΠΈ Π²ΡΠ·ΠΎΠ² Kotlin NPE. Π’Π°ΠΊ Π±ΡΠ»ΠΎ ΡΠ°Π½ΡΡΠ΅. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ 1.4 ΡΡΠ°Π»ΠΎ Π»ΡΡΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ°Π»ΠΈ ΠΊΠΈΠ΄Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΉ Java NPE
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ·-Π·Π° ΠΈΠ½ΡΠ΅ΡΠΎΠΏΠ΅ΡΠ°Π±Π΅Π»ΡΠ½ΠΎΡΡΠΈ Kotlin ΠΈ Java? - ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ·-Π·Π° null safety ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ Java ΠΊΠΎΠ΄Π° ΠΈΠ· Kotlin - https://kotlinlang.org/docs/null-safety.html#nullable-types-and-non-null-types
- Kotlin !! operator - ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΈΠ΄Π°Π΅Ρ exception: Java ΠΈΠ»ΠΈ Kotlin? - KotlinNullPointerException
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ sealed classes?
- enum vs sealed classes - enum Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ sealed ΠΊΠ»Π°ΡΡΠΎΠ² - https://blog.kotlin-academy.com/enum-vs-sealed-class-which-one-to-choose-dc92ce7a4df5
- ΠΡΡΡ Π»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ data classes ΠΈ sealed classes Π² Java? - ΠΡΡΡ. Π Π½ΠΎΠ²ΠΎΠΉ Java Π΅ΡΡΡ sealed classes ΠΈ record classes (Π°Π½Π°Π»ΠΎΠ³ data)
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ == ΠΈ === Π² Kotlin? - ΠΠ΅ΡΠ²ΡΠΉ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π²ΡΠΎΡΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ (reference)
- Generics Codelab - https://developer.android.com/codelabs/basic-android-kotlin-compose-generics?hl=en#0
- Generics Π² Kotlin - ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ in, out? - https://kotlinlang.org/docs/generics.html#declaration-site-variance === https://betulnecanli.medium.com/kotlin-generics-in-out-where-terms-with-examples-445dc0bb45d6 === https://thegraduateguy.medium.com/kotlin-in-and-out-b76f0be30dca
- Java stream, Kotlin sequence - Π² ΡΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΏΠΈΡΠΊΠ° - ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ lazy, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠΆΠ΅ Π½ΡΠΆΠ΅Π½, ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π±Π΅Π· Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ - https://kotlinlang.org/docs/sequences.html
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Java stream ΠΈ Kotlin sequence - https://stackoverflow.com/questions/71222815/kotlin-stream-vs-sequence-why-multiple-ways-to-do-the-same-thing
- ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ sequence - Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π³ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π»ΡΠΌΠ±Π΄Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΌΠ°Π»ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ³ΠΎΠ΄Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ - https://typealias.com/guides/when-to-use-sequences/
- Kotlin SAM - https://kotlinlang.org/docs/fun-interfaces.html#sam-conversions
- ΠΡΡΡ Π»ΠΈ Π² Kotlin checked exceptions, ΠΊΠ°ΠΊ Π² Java? - ΠΠ΅Ρ. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ @Throws Π½ΡΠΆΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΈΠ· Java ΠΊΠΎΠ΄Π°
- Kotlin scope functions (let, run, apply, also, with) - https://kotlinlang.org/docs/scope-functions.html
- ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ Π² Kotlin
- ΠΠ΅ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Kotlin ΠΈ Java - Π² Kotlin ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π½Π΅ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π»Π΅ΠΆΠΈΡ ΠΌΡΡΠ°Π±Π΅Π»ΡΠ½Π°Ρ, ΠΏΠΎΡΡΠΎΠΌΡ list.toMutableList() += 5 ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π° Π² Java - Π½Π΅Ρ (ΡΠΌ. Collection.unModifiableList())
- Kotlin @Synchronized
- typealias, ΡΡΠΎ ΡΡΠΎ, Π²ΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ - https://www.baeldung.com/kotlin/type-aliases
- @JvmStatic - https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.jvm/-jvm-static/
- Kotlin nested class vs Java nested class - The nested class in Kotlin is similar to static nested class in Java. In Java, when you declare a class inside another class, it becomes an inner class by default. However in Kotlin, you need to use inner modifier to create an inner class which we will discuss next. - https://www.programiz.com/kotlin-programming/inner-nested-class - https://kotlinlang.org/docs/nested-classes.html
- Kotlin serialization - https://kotlinlang.org/docs/serialization.html
- Lambda Ρ ΡΠ΅ΡΠΈΠ²Π΅ΡΠΎΠΌ - https://www.baeldung.com/kotlin/lambda-receiver
- @DslMarker - https://medium.com/kotlin-and-kotlin-for-android/kotlin-dsl-coding-a-dsl-6-ee355be81106
- Collections Codelabs
https://developer.android.com/codelabs/basic-android-kotlin-training-collections?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-collections?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-compose-collections?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-compose-higher-order-functions?hl=en#0
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ == Π² Java ΠΈ Kotlin? - Π Java - ΡΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ, Π² Kotlin - equals. Π§ΡΠΎΠ±Ρ Π² Kotlin ΡΡΠ°Π²Π½ΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ, Π½Π°Π΄ΠΎ ===
- Π Π°Π·Π½ΠΈΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java ΠΈ Kotlin? - Π Java Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΡΠ³Π°ΡΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. Π Kotlin ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅Ρ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅.
https://github.com/gpetuhov/RxJavaTutorial
- What design pattern does RxJava implement? (Observer Pattern)
- Π’ΠΈΠΏΡ Observable - https://medium.com/mindorks/rxjava-types-of-observables-404d75605e35
- Difference between cold and hot observables.
- ConnectableObservable - ΡΡΠΎ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ observable, Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠΌΠΈΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° connect() - http://reactivex.io/RxJava/javadoc/rx/observables/ConnectableObservable.html
- ΠΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·Π²Π°ΡΡ Π΄Π»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΌΠΈΡΠ° Ρ Π³ΠΎΡΡΡΠ΅Π³ΠΎ Observable - ΠΌΠ΅ΡΠΎΠ΄ ConnectableObservable.connect() - https://medium.com/tompee/rxjava-ninja-hot-and-cold-observables-19b30d6cc2fa
- ΠΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ Observable Π² Π³ΠΎΡΡΡΠΈΠΉ - ΠΡΠ·Π²Π°ΡΡ publish() - https://medium.com/tompee/rxjava-ninja-hot-and-cold-observables-19b30d6cc2fa
- ΠΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π³ΠΎΡΡΡΠΈΠΉ Observable Π² Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ - ΠΡΠ·Π²Π°ΡΡ defer() - https://stackoverflow.com/questions/34030793/transform-a-hot-observable-to-a-cold-observable
- ΠΡΠ»ΠΈΡΠΈΠ΅ just ΠΎΡ from - from ΡΠΌΠΈΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Π° just ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π²ΡΠ΅ ΡΡΠ°Π·Ρ - https://stackoverflow.com/questions/30819349/rxjava-just-vs-from#:~:text=from%20works%20mostly%20with%20data,array%20item%20or%20integer%20item.
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ RxJava defer - https://blog.mindorks.com/understanding-rxjava-defer-operator
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ RxJava share - https://medium.com/mindorks/how-to-use-rxjava-share-operator-26b08973771a
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ RxJava PublishProcessor - http://reactivex.io/RxJava/javadoc/io/reactivex/processors/PublishProcessor.html
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Subject?
- Π’ΠΈΠΏΡ Subject ΠΈ ΠΈΡ ΠΎΡΠ»ΠΈΡΠΈΠ΅ - https://medium.com/@nazarivanchuk/types-of-subjects-in-rxjava-96f3a0c068e4
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ backpressure
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ backpressure - https://www.baeldung.com/rxjava-backpressure
- What is the purpose of buffer()?
- Backpressure Π² RxJava 1 - https://eng.uber.com/rxjava-backpressure/
- ΠΡΠ»ΠΈΡΠΈΠ΅ Observable ΠΈ Flowable
- Π‘ΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Flowable Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ backpressure
- How to change threads? (subscribeOn, observeOn) - subscribeOn works upstream, observeOn works downstream - https://proandroiddev.com/rx-java-subscribeon-and-observeon-a7d95041ce96
- ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ½Π°ΡΠ°Π»Π° Π±ΡΠ΄Π΅Ρ observeOn, ΠΏΠΎΡΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ², ΠΏΠΎΡΠΎΠΌ subscribeOn, ΡΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ observeOn ΠΈ subscribeOn?
- Difference between Schedulers.io() and Schedulers.computation()
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ subscribeOn() Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅? - Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄Π°ΡΡ ΠΆΠ΅Π»Π°Π΅ΠΌΡΠΉ ΡΡΡΠ΅ΠΊΡ. ΠΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠ° Π½Π΅ Π΄Π°Π΄ΡΡ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠ°ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ²
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π· Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ observeOn() Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅? - ΠΠ°ΠΆΠ΄ΡΠΉ observeOn() Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ (ΠΏΠΎΡΠΎΠΊ), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ RxJava ΠΌΠΎΠ³ΡΡ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² observeOn()
- Difference between scan() and reduce()
- Difference between merge() and concat()
- Difference between zip() and combineLatest()
- Zip ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
- Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π΅ΡΠ»ΠΈ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° zip ΡΠΏΠ°Π΄Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡΠΎΠΊ Π΄Π°Π½Π½ΡΡ Ρ , Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠΎΡΠΎΠΉ? - ΠΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ exception, ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° onError Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π±ΠΎΡΠ°Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π·
- Difference between flatMap(), concatMap() and switchMap() - https://medium.com/appunite-edu-collection/rxjava-flatmap-switchmap-and-concatmap-differences-examples-6d1f3ff88ee0
- ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ switchMap - ΠΏΠΎΠΈΡΠΊΠΎΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° (ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΎΡΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ Π·Π°ΠΏΡΠΎΡ Π² ΡΠ΅ΡΡ)
- Difference between throttleFirst() and debounce() (aka throttleWithTimeout())
- Custom operator - https://www.baeldung.com/rxjava-custom-operators
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ rx ΡΠ΅ΠΏΠΎΡΠ΅ΠΊ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠ°, TestSubscriber, TestObserver
https://www.baeldung.com/rxjava-testing
https://medium.com/@vanniktech/testing-rxjava-code-made-easy-4cc32450fc9a
- ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π΄ΡΠ»Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ RxJavaPlugins ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π°Π΄ ΡΠ΅Π΄ΡΠ»Π΅ΡΠ°ΠΌΠΈ - https://stackoverflow.com/questions/43285064/rxjava-2-overriding-io-scheduler-in-unit-test
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΈΠ±ΠΊΠΈ? - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ retryWhen - https://habr.com/ru/post/326890/
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ observable Ρ ΠΏΠΎΠΌΠΎΡΡΡ Observable.create(). Emitter.setCancellable, emitter.tryOnError, emitter.onError
- Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ backpressure? - https://www.baeldung.com/rxjava-backpressure
Marcin Moskala - Kotlin Coroutines: Deep Dive
https://developer.android.com/kotlin/coroutines
https://developer.android.com/kotlin/flow
https://developer.android.com/courses/pathways/android-coroutines
https://github.com/Kotlin/kotlinx.coroutines/blob/master/docs/topics/coroutines-guide.md
- RxJava vs Coroutines - https://stackoverflow.com/questions/42066066/how-kotlin-coroutines-are-better-than-rxkotlin
- ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΏΡΠ»ΠΎΠ² ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² RxJava ΠΈ Coroutines - https://medium.com/capital-one-tech/coroutines-and-rxjava-an-asynchronicity-comparison-part-6-threading-2aa5e9c52c94
- Coroutine Scope, Coroutine Context - https://elizarov.medium.com/coroutine-context-and-scope-c8b255d59055
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ - Uncaught exceptions in a coroutine are similar to uncaught exceptions in non-coroutine code. By default, they'll cancel the coroutine's Job, and notify parent coroutines that they should cancel themselves. If no coroutine handles the exception, it will eventually be passed to an uncaught exception handler on the CoroutineScope. By default, uncaught exceptions will be sent to the thread's uncaught exception handler on the JVM. You can customize this behavior by providing a CoroutineExceptionHandler. - https://developer.android.com/codelabs/kotlin-coroutines?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-coroutines%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fkotlin-coroutines#6
- CoroutineExceptionHandler
https://kotlinlang.org/docs/exception-handling.html
https://victorbrandalise.com/coroutines-part-iii-structured-concurrency-and-cancellation/
- launch vs async - https://stackoverflow.com/questions/46226518/what-is-the-difference-between-launch-join-and-async-await-in-kotlin-coroutines
- ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² launch ΠΈ async - When creating a coroutine from a non-coroutine, start with launch. That way, if they throw an uncaught exception it'll automatically be propagated to uncaught exception handlers (which by default crash the app). A coroutine started with async won't throw an exception to its caller until you call await. However, you can only call await from inside a coroutine, since it is a suspend function. Once inside a coroutine, you can use launch or async to start child coroutines. Use launch for when you don't have a result to return, and async when you do. - https://developer.android.com/codelabs/kotlin-coroutines?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-coroutines%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fkotlin-coroutines#6
- runBlocking - https://habr.com/ru/company/dododev/blog/541650/
- ΠΠΎΡΡΡΠΈΠ½Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ - https://rohit.fyi/blog/kotlin-coroutines-under-the-hood-part-1/
- ΠΡΠΆΠ½Π° Π»ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΡΡΠΈΠ½? - ΠΡΠΆΠ½Π° - https://kotlinlang.org/docs/shared-mutable-state-and-concurrency.html
- ΠΠΎ ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ suspend ΡΡΠ½ΠΊΡΠΈΡ? - https://medium.com/androiddevelopers/the-suspend-modifier-under-the-hood-b7ce46af624f
- ΠΡΠ·ΠΎΠ² suspend ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Java - Π½Π°ΠΏΡΡΠΌΡΡ Π½Π΅Π»ΡΠ·Ρ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠ½ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² RxJava
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ
https://kotlinlang.org/docs/shared-mutable-state-and-concurrency.html
https://kt.academy/article/cc-state
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ synchronized Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ ? - ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization-dont-mix/
https://jacquessmuts.github.io/post/coroutine_sync_mutex/
- Π§ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ synchronized Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ ? - Mutex - https://medium.com/mobile-app-development-publication/mutex-for-coroutines-5f4a4ca60763
- ΠΡΡΡ ΠΊΠ»Π°ΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ synchronized ΠΌΠ΅ΡΠΎΠ΄. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΈΠ· ΠΊΠΎΡΡΡΠΈΠ½Ρ? - https://blog.danlew.net/2020/01/28/coroutines-and-java-synchronization-dont-mix/
- Flow - ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π°, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²
https://www.javaadvent.com/2021/12/are-kotlin-coroutines-enough-to-replace-rxjava.html
https://proandroiddev.com/from-rxjava-2-to-kotlin-flow-threading-8618867e1955
https://habr.com/ru/company/simbirsoft/blog/534706/
https://developer.android.com/kotlin/flow
https://developer.android.com/codelabs/advanced-kotlin-coroutines?hl=en#0
- ΠΠΈΠ΄Ρ Flow - https://kotlinlang.org/docs/flow.html
- ΠΠΎΡΡΡΠΈΠΉ ΠΈ Ρ ΠΎΠ»ΠΎΠ΄Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ - https://stackoverflow.com/questions/69297362/what-is-the-hot-flow-and-cold-flow-in-coroutines-and-the-difference-between-them
- flowOn - https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/flow-on.html
- SubscribeOn (Rx) vs flowOn (Flow) - ΠΎΠ±Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡ upstream, Π½ΠΎ subscribeOn Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ, Π° flowOn ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅
- ΠΡΡΡ Π»ΠΈ Π°Π½Π°Π»ΠΎΠ³ observeOn Π²ΠΎ Flow? - Π½Π΅Ρ
- ΠΠ½Π°Π»ΠΎΠ³ ThreadLocal Π΄Π»Ρ ΠΊΠΎΡΡΡΠΈΠ½
https://kotlinlang.org/docs/coroutine-context-and-dispatchers.html#thread-local-data
- ΠΠ°ΠΊΠΎΠΉ ΡΠΊΠΎΡΠΏ Π²ΠΎ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ (ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ viewModelScope)? - https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471
- CoroutineContext - ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ 4 ΡΠ΄Π»Π΅ΠΌΠ΅Π½ΡΠ°: Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Job, Dispatcher, Exception handler - https://kotlinlang.org/docs/coroutine-context-and-dispatchers.html
- CoroutineContext vs CoroutineScope - ΡΠΊΠΎΡΠΏ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΊΠΎΡΡΡΠΈΠ½ - https://elizarov.medium.com/coroutine-context-and-scope-c8b255d59055
- ΠΠΈΠ΄Ρ Jobs
https://kt.academy/article/cc-job
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/
https://proandroiddev.com/kotlin-coroutine-job-hierarchy-finish-cancel-and-fail-2d3d42a768a9
- Supervisor Job
https://victorbrandalise.com/coroutines-part-ii-job-supervisorjob-launch-and-async/
https://codingwithmohit.com/coroutines/coroutines-job-structure/
https://habr.com/ru/post/432942/
- async Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π»ΠΈ ΡΡΠ°Π·Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ? - ΠΠ°. ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π»Π΅Π½ΠΈΠ²ΡΠΉ Π·Π°ΠΏΡΡΠΊ, ΡΠΎ async(start = CoroutineStart.LAZY)
https://medium.com/@sampsonjoliver/achieving-async-await-in-the-android-wasteland-a6fe30dbaaa1
https://medium.com/@sampsonjoliver/promises-in-android-and-java-d6b1c418ea6c
https://medium.com/@sampsonjoliver/lazy-evaluated-coroutines-in-kotlin-bf5be004233
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΊΠΎΡΡΡΠΈΠ½Π°Ρ ? ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ launch ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π² try-catch?
https://kt.academy/article/cc-exception-handling
https://kotlinlang.org/docs/exception-handling.html
https://medium.com/androiddevelopers/exceptions-in-coroutines-ce8da1ec060c
- ΠΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π»ΠΈ Exception Handler Ρ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΡΡΡΠΈΠ½? - Π½Π΅Ρ, ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΊΠΎΡΡΡΠΈΠ½Ρ - https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-exception-handler/
- ΠΠ°ΠΊ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Flow? - ΡΠ°ΠΌ Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ catch (ΠΎΠ½ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ CancellationException - Π½Π΅ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π½Π° Π½Π΅Π³ΠΎ), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ try-catch - https://elizarov.medium.com/exceptions-in-kotlin-flows-b59643c940fb
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΠΎΠΉΠΌΠ°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ catch ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ) CancellationException? - Π½Π΅Ρ, ΠΈΠ½Π°ΡΠ΅ ΠΊΠΎΡΡΡΠΈΠ½Π° Π½Π΅ ΠΎΡΠΌΠ΅Π½ΠΈΡΡΡ - https://kotlinlang.org/docs/cancellation-and-timeouts.html
- SuspendCancellableCoroutine
https://medium.com/swlh/kotlin-coroutines-in-android-suspending-functions-8a2f980811f8
- MainScope vs CoroutineScope - https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/ === https://medium.com/@pramahalqavi/several-types-of-kotlin-coroutine-scope-difference-coroutinescope-globalscope-etc-9f086cd40173 === https://stackoverflow.com/questions/70208380/mainscope-vs-globalscope
- Lifecycle aware coroutine scope - LifecycleCoroutineScope - https://developer.android.com/topic/libraries/architecture/coroutines
- Π§Π΅ΠΌ StateFlow Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ LiveData? - First, it has full support for coroutines. Second, it has an initial value, so it does not need to be nullable.
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ Flow: flatMapConcat, flatMapMerge, flatMapLatest - https://kt.academy/article/cc-flatmap
- StateFlow vs SharedFlow
- StateFlow hot or cold?
- Backpressure in Flow - https://medium.com/google-developer-experts/backpressure-in-your-kotlin-flows-3eec980869c7
- JVM vs Dalvik vs ART
https://habr.com/ru/post/471772/
https://habr.com/ru/post/513928/
https://medium.com/programming-lite/android-core-jvm-dvm-art-jit-aot-855039a9a8fa
https://russianblogs.com/article/1180831184/
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ hotspot jvm, dalvik ΠΈ art - https://chowdera.com/2022/04/202204110617280331.html
- DEX format - https://stackoverflow.com/questions/36356330/difference-between-bytecode-in-class-file-and-that-of-dex-file
- What is a compiler?
https://habr.com/ru/company/mailru/blog/451894/
https://habr.com/ru/post/99162/
- JIT, AOT
https://source.android.com/devices/tech/dalvik/jit-compiler
https://stackoverflow.com/questions/40336455/difference-between-aot-and-jit-compiler-in-the-art
https://itsobes.ru/JavaSobes/v-chyom-raznica-mezhdu-interpretatorom-aot-i-jit-kompilyatorom/
- ΠΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ JIT ΠΈ AOT ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ? - ΠΈΠ· java bytecode Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ
https://habr.com/ru/company/skillbox/blog/441798/
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΏΠΎΠ΄ ΠΠ½Π΄ΡΠΎΠΈΠ΄ Π½Π° Python, Scala ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ? - ΠΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ·ΡΠΊΠ° Π² Java Π±Π°ΠΉΡ-ΠΊΠΎΠ΄
https://tproger.ru/translations/python-development-on-android/
https://habr.com/ru/post/327782/
- ΠΠ°ΠΊ R8 ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² DEX?
- OOM Killer (Out of memory killer)
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² Android Π·Π°ΠΏΡΡΡΠΈΡΡ jar? - Android uses the Dalvik VM, whereas you need the Java VM to run a jar-file. So no, you can't run a jar-file on android - https://stackoverflow.com/questions/12905012/running-an-executable-jar-in-android - Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ jar-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ - https://stackoverflow.com/questions/25660166/how-to-add-a-jar-in-external-libraries-in-android-studio
- ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ Π²ΡΠ΅ runtime ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ? - https://stackoverflow.com/questions/32229170/catch-all-possible-android-exception-globally-and-reload-application === https://stackoverflow.com/questions/3171394/using-global-exception-handling-with-setuncaughtexceptionhandler-and-toast
- ΠΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ cold ΠΏΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
https://habr.com/ru/post/521522/
https://habr.com/ru/post/522670/
https://proandroiddev.com/android-internals-101-how-android-os-starts-you-application-e1c98a014c05
- Zygote
- ActivityTaskManager
- Π£ΡΠΎΠ²Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Android
Application - ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
Application Framework - ΡΡΠΎΠ²Π΅Π½Ρ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΠΊ ΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΡΠΊΠ°Ρ): View, ContentProviders, ResourceManager, ActivityManager ΠΈ Ρ.Π΄.
Library - ΡΡΠΎΠ²Π΅Π½Ρ Ρ/Ρ++ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ System C Library (libc Π΄Π»Ρ linux), MediaLibraries, SurfaceManager, SQLite, SGL, SSL ΠΈ Ρ.Π΄.
Android Runtime - ΡΡΠ΅Π΄Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π½Π°Π±ΠΎΡ ΡΡΠΈΠ»ΠΈΡ Π΄Π»Ρ ΡΠ΄ΡΠ° ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° (Dalvik, Art)
Linux Kernel - ΡΡΠΎΠ²Π΅Π½Ρ ΡΠ΄ΡΠ° Linux, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ»ΡΠΆΠ±Ρ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ IPC Driver, Power Manager ΠΈ Π΄ΡΡΠ³ΠΈΠ΅
https://developer.android.com/guide/platform
https://www.guru99.com/android-architecture.html
- ΠΠ΅ΡΠ°Π»ΠΈ ΠΠ‘ Android:
https://habr.com/ru/company/solarsecurity/blog/334796/
https://habr.com/ru/company/solarsecurity/blog/338292/
https://habr.com/ru/company/solarsecurity/blog/338494/
https://habr.com/ru/company/solarsecurity/blog/427431/
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅? - Π΄Π°, ΡΡΠΎ Π΄Π΅ΡΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΠ»ΡΡΠ°Π΅ Intent.ACTION_VIEW), Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ - https://stackoverflow.com/questions/17664090/can-multiple-android-applications-share-a-single-process-and-application-context
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ ? - Π΄Π°
- AIDL
https://habr.com/ru/post/537660/
https://developer.android.com/guide/components/aidl
- RenderThread
https://medium.com/@workingkills/understanding-the-renderthread-4dc17bcaf979
https://habr.com/ru/company/edison/blog/271811/
https://russianblogs.com/article/58471210856/
- ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° (application sandbox) - https://source.android.com/security/app-sandbox?hl=en
- ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° vs ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ - ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ
- ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠ°ΠΌΡΡΡ, ΠΊΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ°ΠΌΡΡΡ (ΠΏΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎ)
- Π‘Π²ΠΎΠΏ-ΡΠ°ΠΉΠ»
- ΠΠΎΡΠ΅ΠΌΡ ΡΠΎΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π±ΡΡΡΡΠΎ? - ΠΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡ ΠΆΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΡΠΊΠ° Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ copy on write - ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ.
- Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ? - Π‘ΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ΅Π±ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ - https://acm.bsu.by/wiki/Unix2019b/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D1%8B#:~:text=39%20syscall%20ret-,%D0%9F%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C,%D1%81%20%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%BC%20%D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B9%20C%2D%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8. === https://habr.com/ru/company/vk/blog/324466/
- ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Java Native Interface (JNI)
- ΠΠ΄Π΅ ΠΆΠΈΠ²Π΅Ρ Activity Manager Service? - Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅
- IPC - ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π±ΡΡΡΡΡΠΌΠΈ, Ρ ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Bundle?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Bundle ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ? - ΠΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±Π°Π½Π΄Π»ΠΎΠ² Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ? - Π‘ΡΠΎΠ»ΡΠΊΠΎ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΡΡΠ΅Π½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ
- ΠΡΠΎ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±Π°Π½Π΄Π»ΠΎΠ²? - Binder
- ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Binder Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΠ½Π΄ΡΠΎΠΈΠ΄Π°?
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ?
- ΠΠ°ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ? - ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ AndroidKeyStoreProvider ΠΈ Trusted Execution Environment - https://source.android.com/docs/security/features/trusty === https://emteria.com/blog/android-tee
- Android components and what are they used for (Activity, Service, Content Provider, Broadcast Receiver)
- ΠΠΎΡΠ΅ΠΌΡ Application Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ? - ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΡΠΎΡΠΊΠ° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- ΠΠ°ΠΊ ΠΠ½Π΄ΡΠΎΠΈΠ΄ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°
https://developer.android.com/guide/components/activities/process-lifecycle
- Project structure of an Android application (modules, manifest, source, res, assets, Gradle scripts)
- What is AndroidManifest.xml?
- Π‘ΠΎΡΡΠ°Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ°: permissions, intent filters, features, meta
- ΠΠ°Π½ΠΈΡΠ΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°, manifest merge - https://android-doc.github.io/tools/building/manifest-merge.html
- ΠΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ flavors ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΡΠΌΠ΅ΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π³ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ permissions) ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ»Π΅ΠΉΠ²ΠΎΡΠ΅
https://developer.android.com/studio/build/manage-manifests
- Context - https://developer.android.com/reference/android/content/Context
- Context types. Difference between Application Context and Activity Context
https://medium.com/@ali.muzaffar/which-context-should-i-use-in-android-e3133d00772c
https://medium.com/@banmarkovic/what-is-context-in-android-and-which-one-should-you-use-e1a8c6529652
- ΠΡΠ»ΠΈΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈ Π°ΠΏΠΏ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°? - ΠΡΠ»ΠΈΡΠ°ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ. ΠΠΏΠΏ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½, Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ. ΠΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΡΠ·ΠΊΡ Ρ Window ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°Π΅Ρ ΠΏΡΠΎ ΡΠ΅ΠΌΡ ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ. ΠΠΎΠ³Π΄Π° LayoutInflater ΡΠΎΠ·Π΄Π°Π΅Ρ Π²ΡΡΡΠΊΡ ΠΈΠ· Π»Π΅ΠΉΠ°ΡΡΠ°, ΡΠΎ ΠΎΠ½ Π±Π΅ΡΠ΅Ρ ΡΠ΅ΠΌΡ ΠΈΠ· parent ViewGroup ΠΈ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΠΎΠ³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π²ΡΡΡΠΊΠ°. Π’Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π² Π°ΠΏΠΏ ΠΈ Π² Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ. Π LayoutInflater Π² ΠΈΠ΄Π΅Π°Π»Π΅ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΌΡ Π²ΡΡΠ³ΡΡΠΏΠΏΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Ρ Ρ Android 5.0 Π΅ΡΡΡ theme overlay ΠΈ ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π³ΡΡΠΏΠΏΡ
- Π ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Context ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ? - Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π³Π΄Π΅-ΡΠΎ Activity Context. ΠΡΠ»ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Application Context, ΡΠΎ ΡΡΠ΅ΡΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Application Context Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°ΠΏΡΡΠ΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ AlertDialog ΠΈΠ· app context - https://nhancv.medium.com/android-show-dialog-without-activity-context-94661d48400f
- Π‘ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΡΠ΅ΠΌΠ° Ρ Π΄ΠΈΠ°Π»ΠΎΠ³Π°, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· app context, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ΅ΠΌΡ Π½Π° ΡΠ΅ΠΌΠ½ΡΡ? - Π½Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, Π½ΠΎ Π½Π΅ Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- Π‘ΠΌΠ΅Π½ΠΈΡΡΡ Π»ΠΈ ΡΠ·ΡΠΊ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ·ΡΠΊΠ° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ app context? - Π½Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ·ΡΠΊΠ°
- Π‘ΡΠ°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΠ΅ΡΠ²ΠΈΡΠ° - Π½Π΅Π»ΡΠ·Ρ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Android 10 - https://stackoverflow.com/questions/3606596/start-activity-from-service-in-android === https://developer.android.com/guide/components/activities/background-starts
- BaseContext
- ContextThemeWrapper - https://ataulm.com/2019/11/20/using-context-theme-wrapper.html
- raw vs assets - ΡΡΠΎ Π³Π΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡ, ΠΎΡΠ»ΠΈΡΠΈΡ? (Π² raw Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· R.raw.id, Π² assets ΡΠ΅ΡΠ΅Π· asset manager) - https://stackoverflow.com/questions/5583608/difference-between-res-and-assets-directories
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΈΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ (ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ, Leak Canary)?
https://www.raywenderlich.com/4690472-memory-leaks-in-android
https://dropbox.tech/mobile/detecting-memory-leaks-in-android-applications
https://proandroiddev.com/everything-you-need-to-know-about-memory-leaks-in-android-d7a59faaf46a
- Π ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ? - ΠΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΡΠ΅ΠΊΠ°Π΅Ρ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ²ΠΎΠΈΠΌΠΈ Π²ΡΡΡ Π°ΠΌΠΈ. ΠΡΡΡ Π° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ (bitmap) ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° Π±ΡΠ΄Π΅Ρ ΡΠ΅ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ. ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²ΡΡΡ ΠΈ - ΡΡΠΎ ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ ΡΡΠ΅ΠΊΠ°Π΅Ρ Π²ΡΡΡ Π°, ΡΠΎ ΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ.
- ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Leak Canary? - ΠΠ·ΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΡΠΎΠ·Π΄Π°ΡΡ Π½Π° Π½Π΅Π΅ PhantomReference, ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΊΡΠ°Π½Π° ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π΅ ΠΏΠΎΠ»Π΅ mDestroyed. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ true ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π½Π΅Ρ Π² ReferenceQueue, ΡΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅ΠΊΠ°Π΅Ρ. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠ°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, ΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΡΡΠ΅ΡΠΊΠ° Π΅ΡΡΡ
http://developer.alexanderklimov.ru/android/debug/leakcanary.php
https://russianblogs.com/article/80601561279/
https://developpaper.com/android-leakcanary-memory-leak-detection-principle/
- Π‘ΠΏΠΎΡΠΎΠ±Ρ ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π²ΡΡ Π±Π΅Π· Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ/ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°? - Π΄Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ WindowManager - https://levelup.gitconnected.com/add-view-outside-activity-through-windowmanager-1a70590bad40
- ΠΠ°ΠΊΠΎΠΉ callback ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°ΠΌΡΡΠΈ? - Application.onLowMemory() - https://stackoverflow.com/questions/18119929/callback-from-framework-for-out-of-memory-in-android
- ΠΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΡ Π² Android 13
ΠΏΠΎΠ»ΡΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΡΡΡΡ foreground service ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ
ΡΡΠ΅Π±ΡΡΡΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠΊΠ°Π· ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ foreground service ΠΈΠ· ΡΠΎΠ½Π°
- ΠΠ΄Π΅ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΡΠΎ ΡΡΠ°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? - ContentProvider ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠ°Π½ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΡΠ΅ΠΌΡ Π² Application Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ onCreate, Π½ΠΎ Π½Π΅Ρ onDestroy? - Π² ΠΠ½Π΄ΡΠΎΠΈΠ΄Π΅ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ "Π·Π°ΠΊΡΡΡΡ" ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΎΡΡΠΎ ΡΡ ΠΎΠ΄ΠΈΡ - https://stackoverflow.com/questions/17278201/android-ondestroy-or-similar-method-in-application-class
- ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΡΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊ, ΡΠΎ Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π±Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ?
- ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅? - BroadcastReceiver
- ΠΠ°ΠΊ ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» ΡΡΡΡΠΎΠΉΡΡΠ²Π°? - Π ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ Ρ Π½ΡΠΆΠ½ΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π½Π°Π΄ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ intent filter Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ΅ΠΉ launcher
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ launcher ΡΠΊΠ°ΠΆΠ΅ΠΌ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ? - Π’ΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΊΠΎΠ½ΠΎΠΊ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅ - ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ
- Single Activity vs Multiple Activity
- ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, Π° Π½Π΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ? - ΠΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅ΠΊ Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΊΡΠ°Π½Ρ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠ°Π·Π½ΡΠ΅ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΡ)
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ MainActivity? - Π΄Π°, ΡΠΎΠ³Π΄Π° Π½Π° HomeScreen Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ - ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ LeakCanary
- Activity lifecycle
https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iv-49946659b094
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Ρ onStart() ΠΈ onResume() - ΠΠ½ΠΈ Π½ΡΠΆΠ½Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ UI, ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ/ΠΎΡΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅Π½ΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΌΠΎΡΡΠΈΡ Π½Π° ΡΠΊΡΠ°Π½, ΡΠΎ Π½Π΅Ρ ΡΠΌΡΡΠ»Π° Π΅ΠΌΡ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² onPause ΠΈ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ onStop Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ»Π° ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°ΡΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΡ
- Why do we need to setContentView() in onCreate(), not in onStart()? (Because onCreate() is triggered only once)
- How to prevent activity from being destroyed on orientation change via manifest? - Use configChanges attribute - https://developer.android.com/guide/topics/manifest/activity-element#config
- Activity.onDestroy() - Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈ Π²ΡΠ·ΠΎΠ²? - ΠΠ΅Ρ. ΠΡΠ»ΠΈ ΠΠ‘ ΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ, ΡΠΎ onDestroy Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ - https://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29
- ΠΡΠ·ΠΎΠ²Π΅ΡΡΡ Π»ΠΈ onPause() ΠΏΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°? - ΠΡΠΎ ΡΠΎΠΆΠ΅ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ, Π½ΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Resumed ΠΌΠ°Π»Π° (ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΡΡ Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅)
- When only onDestroy is called for an activity without onPause() and onStop()? (If finish() is called in the onCreate method of an activity, the system will call onDestroy() method directly.)
- ΠΠ΅ΡΠΎΠ΄Ρ Activity onContentChanged, onPostCreate, onPostResume, onAttachedToWindow, onUserInteraction, onWindowFocusChanged, onDetachedFromWindow
- ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» Activity Ρ retain ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠΌ - https://habr.com/ru/post/280586/
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Window?
https://developer.android.com/reference/android/view/Window
https://stackoverflow.com/questions/9451755/what-is-an-android-window
- ΠΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Window - Activity.getWindow() - https://stackoverflow.com/questions/7378644/how-to-call-getwindow-outside-an-activity-in-android
- Window DecorView - https://stackoverflow.com/questions/23276847/what-is-an-android-decorview
- Activity launch modes
https://developer.android.com/guide/components/activities/tasks-and-back-stack
https://habr.com/ru/company/otus/blog/493802/
- ΠΠ²Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΡ launch mode? - ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ ΠΈ intent flags
- ΠΠ±ΡΠ°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ singleTask ΠΈ singleInstance - ΡΡΠΈ ΡΠ΅ΠΆΠΈΠΌΡ ΠΎΡΠΈΡΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΡΠΎΡΡΠΈΠ΅ ΡΠ²Π΅ΡΡ Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ
- ΠΠ°ΠΏΡΡΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ 4 Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ABCD. ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π»ΠΈΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ AB - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ launch mode ΠΈΠ»ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ· Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ (startActivityForResult)
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΠΊΠ°Ρ ?
https://developer.android.com/guide/components/activities/tasks-and-back-stack
https://medium.com/androiddevelopers/tasks-and-the-back-stack-dbb7c3b0f6d4
https://habr.com/ru/company/otus/blog/493802/
https://iammert.medium.com/android-launchmode-visualized-8843fc833dbe
- Task Affinity
https://stackoverflow.com/questions/17872989/android-task-affinity-explanation
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? - ΠΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ task, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
- What are the means of data transfer between activities? (Intents, Shared preferences, DB, file, Eventbus, Singleton class)
- How to transfer a class between activities inside an Intent? (it must be Serializable or Parcelable)
- ΠΠΊΡΠΈΠ²ΠΈΡΠΈ A Π²ΡΠ·Π²Π°Π»Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ B. ΠΠ°ΠΊ ΠΈΠ· B Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² A - B.setResult(), A.onActivityResult()
- ΠΡΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ onActivityResult? - ActivityManager
- Activity Result API
https://developer.android.com/training/basics/intents/result
https://habr.com/ru/company/e-legion/blog/545934/
- Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π°? - Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ
- ΠΡΠΈ ΠΊΠ°ΠΊΠΈΡ Π΅ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ? - ΠΏΠΎΠ²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π°, ΡΠΌΠ΅Π½Π° ΡΠ·ΡΠΊΠ°, ΡΠΌΠ΅Π½Π° ΡΠ΅ΠΌΡ, Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π° Π² Π±ΡΠΊΡΡΠ΅ΠΊΠ΅, Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ
- How to save screen state on screen rotation (saveInstanceState, Presenter, ViewModel)?
- How to save state of an EditText? (provide an id, but it uses Bundle under the hood)
- ΠΠΎΡΠ΅ΠΌΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° Π² Bundle, Π° Π½Π΅ Π² SharedPreferences? - Bundle Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π±ΡΡΡΡΠ΅Π΅ === https://stackoverflow.com/questions/24822101/when-to-use-getsharedpreferences-vs-savedinstancestate
- ActivityLifecycleCallbacks - https://habr.com/ru/company/yoomoney/blog/482476/
- ΠΡΠΊΡΡΡΡ ΡΠΊΡΠ°Π½Ρ ABCD. ΠΠ°ΠΊ Π·Π°ΠΊΡΡΡΡ ΡΠΊΡΠ°Π½Ρ C ΠΈ D, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈ Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ?
- ΠΡΡΡ Activity ΠΈ Π² Π½Π΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ. Π ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ? - ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ (inner class) Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅ΡΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π³Π΄Π΅-ΡΠΎ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΡΡΠ΅ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ (GC Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ±ΡΠ°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ). Π§ΡΠΎΠ±Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ, Π½Π°Π΄ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΉ ΠΊΠ»Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ½Π΅ΡΡΠΈ Π΅Π³ΠΎ ΠΈΠ· Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ.
- ΠΠ°ΠΊ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ? - ΠΠ°Π΄ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π· WeakReference
- onRetainNonConfigurationInstance - https://developer.android.com/reference/android/app/Activity#onRetainNonConfigurationInstance()
- Window insets
https://developer.android.com/develop/ui/views/layout/insets
https://habr.com/ru/companies/oleg-bunin/articles/488196/
- Π ΡΡΠ΅ΠΊΠ΅ 4 Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ A, B, C, D. ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΈΠ· D Π² A, ΠΎΡΠΈΡΡΠΈΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅ΠΊ?
- Π§ΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ Π² Activity.onCreate() ?
- What is Intent used for? (to start activities, services and send broadcasts)
- ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΈΠ½ΡΠ΅Π½Ρ? - Bundle
- Π§ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π² Bundle? - ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠΈΠΏΡ, Serializable, Parcelable
- ΠΠΎΡΠ΅ΠΌΡ Π² Bundle ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ?
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Bundle - Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π½ΠΎ ΡΠ°ΠΌΠΎΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1 ΠΠ - https://stackoverflow.com/questions/8552514/is-there-any-limit-of-bundle-in-android
- Π‘ ΡΠ΅ΠΌ ΡΠ²ΡΠ·Π°Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ Bundle? - https://stackoverflow.com/questions/8552514/is-there-any-limit-of-bundle-in-android#:~:text=It%20depends%20on%20the%20purpose,save%20the%20state%20of%20activities.
- Serializable vs Parcelable
https://stackoverflow.com/questions/3323074/android-difference-between-parcelable-and-serializable
https://medium.com/android-news/parcelable-vs-serializable-6a2556d51538
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ Serializable - 1. Π Π΅ΡΠ»Π΅ΠΊΡΠΈΡ, 2. ΠΡΠ»ΠΈ ΠΏΠΎΠ»Π΅ Π² Serializable ΠΊΠ»Π°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ Π½Π΅ Serializable, ΡΠΎ ΠΏΡΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ null (Π° Π² ΡΠ»ΡΡΠ°Π΅ Parcelable ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΡΠ°Π·Ρ ΡΡΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°Π΅Ρ)
- ΠΠΎΡΠ΅ΠΌΡ Parcelable Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Serializable? - Serializable ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ
- ΠΠ°ΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΡΡΡΠΎΠ΅Π½ Serializable? - https://www.infoworld.com/article/2072752/the-java-serialization-algorithm-revealed.html
- ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Serializable? - https://proandroiddev.com/serializable-or-parcelable-why-and-which-one-17b274f3d3bb
- ΠΡΠ΅Π³Π΄Π° Π»ΠΈ ΠΎΠΏΡΠ°Π²Π΄Π°Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Parcelable? - Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π² Π΅Π΄ΠΈΠ½ΠΈΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (1000 ΠΈ Π±ΠΎΠ»ΡΡΠ΅), Π° ΡΠ°ΠΊΠΆΠ΅ Π² IPC (Binder, AIDL), ΠΈ ΠΊΠΎΠ³Π΄Π° Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Parcelable Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π΄ΠΈΡΠΊ? - Π½Π΅Ρ - https://guides.codepath.com/android/using-parcelable
- ΠΠ°ΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΡΡΡΠΎΠ΅Π½ Parcelable?
- ΠΡΡΡΡΠ΅Π΅ Serializable ΠΈΠ»ΠΈ Parcelable? - ΠΡΠ»ΠΈ Π² Serializable ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΡΡΠ½ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ, ΡΠΎ Π±ΡΡΡΡΠ΅Π΅ Π±ΡΠ΄Π΅Ρ Serializable
- ΠΠ° Π΄ΠΈΡΠΊΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ Π»Π΅ΠΆΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° Π² ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π² ΠΊΠ»Π°ΡΡ ΠΈ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ. Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ? - ΠΡΠ΄Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ serialVersionUID - https://www.baeldung.com/java-serial-version-uid
- Difference between implicit and explicit intents.
- How to open url in browser?
val uri = Uri.parse(websiteUrl)
val intent = Intent(Intent.ACTION_VIEW, uri)
- Pending intent
- How to make an activity start on some intent from other apps? (Add intent filter in the manifest)
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ΅Π·ΠΎΠ»ΡΡΠ½Π° ΠΈΠ½ΡΠ΅Π½Ρ-ΡΠΈΠ»ΡΡΡΠ° (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΡΠΎ Ρ ΡΠ΅ΠΌ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ) - https://www.androidcookbook.info/application-development/how-android-resolves-intent-filters.html
- ΠΠ°ΠΊ Π² ΠΈΠ½ΡΠ΅Π½Ρ-ΡΠΈΠ»ΡΡΡΠ΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅Π½ΡΡ? - Action, category, data (scheme, mimetype) - https://developer.android.com/guide/components/intents-filters
- Can I access data in another application's content provider via intent? (No, use ContentResolver instead)
- What is the purpose of Fragments? Limitations (2-3 fragments per activity)
- Π‘ΠΏΠΎΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π² Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ - ΠΡΡΡΠ½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ FragmentManager, ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΆΠ΅ΡΡΠΊΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅ (Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ FragmentManager), Jetpack Navigation, Cicerone
- FragmentManager - https://developer.android.com/guide/fragments/fragmentmanager
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌ? Π§ΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ?
- ΠΠ°ΠΊ FragmentManager ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°? - https://developer.android.com/guide/fragments/lifecycle
- FragmentTransaction ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² add() ΠΈ replace()
https://stackoverflow.com/questions/18634207/difference-between-add-replace-and-addtobackstack
- getSupportFragmentManager() vs getChildFragmentManager() - https://stackoverflow.com/questions/14740445/what-is-difference-between-getsupportfragmentmanager-and-getchildfragmentmanag/14775322
- How to create UI with BottomNavigationView where root fragments have child fragments and root fragments are not destroyed?
- ΠΠΎΠ΄Π²ΠΎΠ΄Π½ΡΠ΅ ΠΊΠ°ΠΌΠ½ΠΈ FragmentManager.commit() ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° - commit() Π½Π΅Π»ΡΠ·Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠ°Π±ΠΎΡΠ°Π» onSaveInstanceState(), ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ commitAllowingStateLoss(), Π½ΠΎ ΡΠΎΠ³Π΄Π° Π΅ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, ΡΡΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ° ΡΠΊΡΠ°Π½Π° - https://medium.com/inloopx/demystifying-androids-commitallowingstateloss-cb9011a544cc
- FragmentManager commit, commitNow, commitAllowingStateLoss - Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°?
https://developer.android.com/reference/android/app/FragmentTransaction#commit()
https://medium.com/@bherbst/the-many-flavors-of-commit-186608a015b1
- ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π² back stack ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ commitNow? - Π½Π΅Ρ - https://stackoverflow.com/questions/38566628/how-is-the-new-fragmenttransaction-commitnow-working-internally
- FragmentLifecycleCallbacks - https://habr.com/ru/company/yoomoney/blog/492272/
- ΠΡΡΡ Π»ΠΈ Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΌΠ΅ΡΠΎΠ΄ onRestoreInstanceState - Π½Π΅Ρ - https://stackoverflow.com/questions/5412746/android-fragment-onrestoreinstancestate
- How to share data between fragments? - https://developer.android.com/guide/fragments/communicate
- Fragment Result API - https://developer.android.com/guide/fragments/communicate#fragment-result
- Shared ViewModel - https://blog.mindorks.com/shared-viewmodel-in-android-shared-between-fragments
- How to pass data into Fragments? (Via arguments)
- ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅? - ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² - https://stackoverflow.com/questions/9245408/best-practice-for-instantiating-a-new-android-fragment
- Fragment.onDestroy() Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π»ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ FragmentManager.remove() ΠΈΠ»ΠΈ replace() - Π΄Π° - https://stackoverflow.com/questions/62498487/fragmenttransaction-add-fragment-after-replace-old-fragment-but-ondestroyview-ca
- ΠΠ°ΡΠ΅ΠΌ AlertDialog ΠΏΠΈΡ Π°ΡΡ Π² DialogFragment? - Π§ΡΠΎΠ±Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ» FragmentManger ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π» ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° - https://developer.android.com/guide/fragments/dialogs
- BottomSheetDialogFragment - https://medium.com/@kosta.palash/using-bottomsheetdialogfragment-with-material-design-guideline-f9814c39b9fc
- ΠΡΠ»ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ Π² xml, ΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ FragmentManager
- What can go wrong when calling activity.startActivityForResult() inside fragment? (The result will be delivered to onActivityResult() of the activity, not the fragment)
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² onCreateView Π²Π΅ΡΠ½ΡΡΡ null? - ΠΠ°, ΡΠΎΠ³Π΄Π° ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ UI
- ΠΠ°ΡΠ΅ΠΌ Π² onCreateView Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ null? - ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π±Π΅Π· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ setRetainInstance(true) ΠΈ ΡΠΎΠ³Π΄Π° ΡΠ°ΠΊΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΡΡΠ½ΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΆΠΈΠ²Π΅Ρ Π΄ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄Π°Π½Π½ΡΡ ). ΠΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠ°Π½ΡΡΠ΅ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π°Π½ ViewModelStore, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΈ - https://medium.com/android-news/dive-deep-into-androids-viewmodel-android-architecture-components-e0a7ded26f70 - https://habr.com/ru/post/439926/
- ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ setRetainInstance(true)?
- ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» retained ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° - https://medium.com/androiddevelopers/the-android-lifecycle-cheat-sheet-part-iii-fragments-afc87d4f37fd
- Headless fragments
https://luboganev.dev/blog/headless-fragments/
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°? - Π΄Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ FragmentFactory - https://medium.com/@diousk507/using-fragmentfactory-with-dagger-2-c3ec136c860d
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°? - ΠΡΠ΄Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onDestroyView?
https://developer.android.com/guide/fragments/lifecycle
https://medium.com/androiddevelopers/fragments-rebuilding-the-internals-61913f8bf48e
- Fragment Result API - https://developer.android.com/guide/fragments/communicate#fragment-result
- Π ΡΡΠ΅ΠΊΠ΅ 4 ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° A, B, C, D. ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΈΠ· D Π² A, ΠΎΡΠΈΡΡΠΈΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅ΠΊ? - popBackStack() - https://ru.stackoverflow.com/questions/475859/android-ΡΡΠ΅ΠΊ-ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² === https://stackoverflow.com/questions/73269652/how-can-i-skip-fragments-when-going-d-to-a-on-backpressed
- What is the purpose of Services? - https://developer.android.com/guide/components/services
- I am starting a network request from the Service. What problem can this cause? (Service runs on the main thread by default)
- ΠΠ°ΠΊ ΡΡΠ°ΡΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π² Π±ΡΠΊΠ³ΡΠ°ΡΠ½Π΄Π΅, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π²ΡΠ·ΠΎΠ² startService Π² Π±ΡΠΊΠ³ΡΠ°ΡΠ½Π΄ ΠΏΠΎΡΠΎΠΊΠ΅? - Π½Π΅Ρ - https://stackoverflow.com/questions/18526131/how-to-run-service-not-on-main-thread
- Difference between Service and IntentService.
- ΠΠ°ΠΊ Π²Π΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΈΠ· IntentService? - Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ResultReceiver
https://proandroiddev.com/intentservice-and-resultreceiver-70de71e5e40a
- When onStartCommand() gets triggered? (Every time when startService() is called, even if Service is already started)
- Π’ΠΈΠΏΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² - background, foreground, bound
- Bound services lifecycle - https://developer.android.com/guide/components/bound-services
- Started (unbound) Service lifecycle
- ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΠ½Π΄ΡΠΎΠΈΠ΄ 8, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ
- Android 12 - ΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΎΡΡ Π² ΠΏΠ»Π°Π½Π΅ startForegroundService? - You can't start foreground service, when the app is in background (ForegroundServiceStartNotAllowedException will be thrown)
- ΠΡΠ΅ΠΌΡ, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π°Π΄ΠΎ ΡΡΠΏΠ΅ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΈΠ· foreground Service - 5 ΡΠ΅ΠΊΡΠ½Π΄ - https://stackoverflow.com/questions/57272203/context-startforegroundservice-did-not-then-call-service-startforeground-s
- Doze mode
- Interprocess communication (IPC) - https://habr.com/ru/post/139432/
- ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅? - https://stackoverflow.com/questions/22514373/start-a-service-in-a-separate-process-android
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅?
https://habr.com/ru/post/139432/
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈΠ· ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²? - ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΠ½Π΄ΡΠΎΠΈΠ΄ 10 - ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ - https://developer.android.com/guide/components/activities/background-starts
- ΠΠ°ΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΡΠΎΠΊ Π² ΡΠ΅ΡΠ²ΠΈΡΠ΅? - ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² onDestroy()
- ΠΠ°ΡΠ΅ΠΌ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΡΠΆΠ΅Π½ ΡΠ΅ΡΠ²ΠΈΡ, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ Thread? - https://stackoverflow.com/questions/22933762/service-vs-thread-in-android
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ ΡΠ΅ΡΠ²ΠΈΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠ΄ Π² Application?
- Broadcast Receivers
https://developer.android.com/guide/components/broadcasts
http://developer.alexanderklimov.ru/android/broadcast.php
- Sticky Broadcast - https://stackoverflow.com/questions/3490913/what-is-a-sticky-broadcast
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° BroadcastReceiver, Π½Π°ΡΠΈΠ½Π°Ρ Ρ Android 8 - https://itsobes.ru/AndroidSobes/kakie-ogranicheniia-na-broadcastreceiver-byli-vvedeny-v-android-8-0/
- ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ? - Main thread
- ΠΠ°ΠΊ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΏΠΎΡΠΎΠΊ? - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Handler ΠΏΡΠΈ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΡΠ΅ΡΠΈΠ²Π΅ΡΠ° - https://stackoverflow.com/questions/28186923/running-broadcast-receiver-on-a-separate-thread
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π±Π°ΡΠ°ΡΠ΅ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠΈΠ²Π΅ΡΠ°? - ΠΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ sticky intent (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π΅ΡΠ½Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅)
- Content Providers - https://developer.android.com/guide/topics/providers/content-provider-basics?hl=ru
- ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onCreate()? - ΠΠ΅ΡΠ΅Π΄ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ onCreate() Ρ Application. ΠΠΎΡΡΠΎΠΌΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΅ΡΠ΅ Π΄ΠΎ Π²ΡΠ·ΠΎΠ²Π° Application.onCreate(). ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΠΈΠ· ΡΠΌΠ΅ΡΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ authority, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΆΠ΅ Π΅ΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅? - ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ
- ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ? - ΠΡΠ»ΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ ΠΈΠ· ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅. ΠΡΠ»ΠΈ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ContentProvider Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π° BinderThread, Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π½ΠΈΠΌ ΠΈΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ IPC
https://stackoverflow.com/questions/3491747/which-thread-runs-contentprovider
https://stackoverflow.com/questions/15222041/android-what-is-binder-thread
https://medium.com/swlh/binder-threading-model-79077b7c892c
- ΠΠ°ΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΡΡΡΠΎΠ΅Π½ FileProvider?
- Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ContentProvider?
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ? - Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ²ΠΎΠΈΡ ΠΏΠ΅ΡΠΌΠΈΡΠ½ΠΎΠ²: ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠΌΠΈΡΠ½ ΠΈ Π·Π°Π΄Π°ΡΡ Π΅ΠΌΡ Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ protection level - signature - ΡΠΎΠ³Π΄Π° Π·Π°ΠΏΡΠΎΡΠΈΡΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
https://developer.android.com/codelabs/basic-android-kotlin-training-viewmodel?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-training-livedata?hl=en#0
https://developer.android.com/codelabs/android-lifecycles?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-training-shared-viewmodel?hl=en#0
- Google ViewModel - ΡΡΠΎ Π²ΡΡΠΌΠΎΠ΄Π΅Π» Π² ΠΏΠ°ΡΡΠ΅ΡΠ½Π΅ MVVM? - ΠΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ. Π§ΡΠΎΠ±Ρ ViewModel ΡΡΠ°Π»Π° Π²ΡΡΠΌΠΎΠ΄Π΅Π»ΠΎΠΌ ΠΈΠ· MVVM, Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°ΡΡ Π²ΡΡ Π½Π° Π²ΡΡΠΌΠΎΠ΄Π΅Π» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ LiveData)
- Π§ΡΠΎ Π±ΡΠ΄Π΅Ρ, Π΅ΡΠ»ΠΈ Π²ΠΎ ViewModel ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ - Π±ΡΠ΄Π΅Ρ RuntimeException ΠΏΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π°
- ΠΠ°ΠΊ ΡΡΠΎΠ³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ - ΡΠ΄Π΅Π»Π°ΡΡ ViewModel Factory
- ViewModelFactory - https://developer.android.com/codelabs/kotlin-android-training-view-model#7
- ΠΠ°ΠΊΠΈΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ViewModel? - LiveData ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ)
- LiveData value ΠΈ postValue - Π² ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ°? - https://stackoverflow.com/questions/51299641/difference-of-setvalue-postvalue-in-mutablelivedata
- ΠΠ°ΠΊ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ LiveData - https://proandroiddev.com/livedata-transformations-4f120ac046fc
- ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ViewModel - https://developer.android.com/topic/libraries/architecture/viewmodel
- ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» LiveData
- LiveData vs Flow - https://medium.com/android-dev-hacks/exploring-livedata-and-kotlin-flow-7c8d8e706324
- Flow with lifecycle - https://medium.com/androiddevelopers/a-safer-way-to-collect-flows-from-android-uis-23080b1f8bda
- ΠΠ°ΠΊ Π½ΠΎΠ²Π°Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ·Π½Π°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΡΡ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ? - https://proandroiddev.com/viewmodel-magic-revealed-330476b5ab27
- Π Π°Π½ΡΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» headless fragment, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΆΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, Π½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ. ΠΠ°ΠΊ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΡΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ? - https://proandroiddev.com/viewmodel-magic-revealed-330476b5ab27
- Difference between LinearLayout and ConstraintLayout
- CoordinatorLayout - https://developer.android.com/reference/androidx/coordinatorlayout/widget/CoordinatorLayout
- Collapsing toolbar - https://medium.com/@ankitashettya/collapsing-toolbar-in-android-using-androidx-jetpack-d54678ac4cbc
- RelativeLayout vs ConstraintLayout - ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ConstraintLayout Π»ΡΡΡΠ΅ - https://stackoverflow.com/questions/37321448/differences-between-constraintlayout-and-relativelayout
- ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ ConstraintLayout
- ConstraintLayout Barriers and Guidelines - https://stackoverflow.com/questions/47114672/what-is-difference-between-barrier-and-guideline-in-constraint-layout
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ Π΄Π΅ΡΡΠΌ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° onMeasure() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΠΎ FrameLayout? - ΠΠ΄ΠΈΠ½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ FrameLayout Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΡ Π΄Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ Π²ΡΡΠ°Π²Π°ΡΡ Π΄ΡΡΠ³ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΡΡΠ³Π°
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ Π΄Π΅ΡΡΠΌ Ρ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π° onMeasure() Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² LinearLayout? - ΠΠ΄ΠΈΠ½, Π΅ΡΠ»ΠΈ Π½Π΅Ρ weight. ΠΠ²Π°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ weight.
- ΠΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π»ΡΠΉΠ°ΡΡΡ Π²ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ (ΠΎΡ ΡΠ°ΠΌΠΎΠΉ Π±ΡΡΡΡΠΎΠΉ ΠΊ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ): FrameLayout - LinearLayout - RelativeLayout - ConstraintLayout
- CoordinatorLayout
- XML inflation (LayoutInflater) - https://bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/
https://developer.android.com/codelabs/advanced-android-kotlin-training-property-animation?hl=en#0
https://codelabs.developers.google.com/codelabs/motion-layout#0
- ΠΠΈΠ΄Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ - https://www.geeksforgeeks.org/animation-in-android-with-example/
- ΠΠ½ΠΈΠΌΠ°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ConstraintSet
https://developer.android.com/guide/topics/ui/custom-components
https://developer.android.com/guide/topics/ui/accessibility/custom-views
https://developer.android.com/codelabs/advanced-android-kotlin-training-custom-views?hl=en#0
https://developer.android.com/codelabs/advanced-android-kotlin-training-canvas#0
https://developer.android.com/codelabs/advanced-android-kotlin-training-clipping-canvas-objects#0
https://developer.android.com/codelabs/advanced-android-kotlin-training-shaders#0
https://www.youtube.com/watch?v=BfMjZTw0iT4&t=13s
- View Lifecycle
https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e
https://proandroiddev.com/android-custom-view-level-3-81e767c8cc75
- Custom Views
https://developer.android.com/guide/topics/ui/custom-components
https://medium.com/@Zielony/guide-to-android-custom-views-basics-7dfed4583841
https://medium.com/@Zielony/guide-to-android-custom-views-constructors-df47476e334c
https://medium.com/@Zielony/guide-to-android-custom-views-attributes-ab28de3e54b7
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π² ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΌ Π²ΡΡ?
- View.invalidate() ΠΈ requestLayout() - https://stackoverflow.com/questions/13856180/usage-of-forcelayout-requestlayout-and-invalidate
- ΠΡΠ΅Π³Π΄Π° Π»ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onLayout? - Π£ ViewGroup Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ view Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅ΡΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π·Π°ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ forceLayout()
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ forceLayout() ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ Π½ΡΠΆΠ΅Π½? - https://itsobes.ru/AndroidSobes/dlia-chego-nuzhen-metod-view-forcelayout/
- View.onMeasure() - ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ measureSpec, ΠΊΠ°ΠΊ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π²ΡΡ - https://stackoverflow.com/questions/14493732/what-are-widthmeasurespec-and-heightmeasurespec-in-android-custom-views === https://developer.android.com/reference/android/view/View.MeasureSpec
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ MeasureSpec - https://developer.android.com/reference/android/view/View.MeasureSpec
- ΠΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ onDraw() - https://developer.android.com/training/custom-views/custom-drawing
- Π ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ onDraw() - ΠΏΡΠΈ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π²ΡΡ ΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ invalidate() (ΡΠΎ Π΅ΡΡΡ Π²ΡΡΡ Π° Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 16 ΠΌΡ)
- View.onDraw() ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΡΠ°ΡΠ΅, ΡΠ΅ΠΌ 16 ΠΌΡ, Π½Π° Π½ΠΎΠ²ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ (120 ΠΡ). ΠΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΡΡΠΎΡΠ° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π±Π΅ΡΠ΅ΡΡΡ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π ΡΠ΅ΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π² onDraw? - https://stackoverflow.com/questions/27717093/drawallocation-memory-allocations-within-drawing-code
- ΠΠ΅ΡΠΎΠ΄Ρ onFinishInflate(), onSaveInstanceState(), onFocusChanged()
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°Π΄ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ, Π΅ΡΠ»ΠΈ Ρ View ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΡΠ²Π΅Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ? - ΠΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π΅Ρ, ΡΠΎ invalidate(), Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΠΌΠ΅Ρ - ΡΠΎ requestLayout(). Π’Π°ΠΊ ΠΊΠ°ΠΊ Π²ΡΠ·ΠΎΠ² requestLayout() Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Π° onDraw(), ΡΠΎ Π΅ΡΠ»ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ ΡΠ²Π΅Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠΎ Π½Π°Π΄ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±Π° ΠΌΠ΅ΡΠΎΠ΄Π°: invalidate() ΠΈ requestLayout()
- Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ onDraw, Π΅ΡΠ»ΠΈ ΡΡΠΈ ΡΠ°Π·Π° Π²ΡΠ·Π²Π°ΡΡ invalidate? - ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΆΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° - https://stackoverflow.com/questions/7868005/does-calling-requestlayout-or-invalidate-multiple-times-hurt-performance
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π²ΠΎ ViewGroup, ΡΡΠΎΠ±Ρ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ²? - onMeasure() ΠΈ onLayout()
- ΠΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΉ Π²ΡΡΡ ΠΈ?
https://www.netguru.com/blog/how-to-correctly-save-the-state-of-a-custom-view-in-android
- ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΡΡΠ΅Π΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ/Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π² Bundle? - main thread - https://developer.android.com/topic/libraries/architecture/saving-states
- Canvas.save() restore() - https://stackoverflow.com/questions/29040064/save-canvas-then-restore-why-is-that
- Touch Event - https://developer.android.com/training/gestures/viewgroup === https://www.vogella.com/tutorials/AndroidTouch/article.html
- View Binding - https://developer.android.com/topic/libraries/view-binding
- Data Binding (ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ View Binding) - https://developer.android.com/topic/libraries/data-binding
- Data Binding Adapters - https://developer.android.com/topic/libraries/data-binding/binding-adapters
- RecyclerView: when onCreateViewHolder and onBindViewHolder are called?
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ Π² RecyclerView ΠΌΠ΅Π½ΡΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ TextView ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅? - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DiffUtils ΠΈ payloads - https://www.valueof.io/blog/recyclerview-diffutil-change-payloads
- ΠΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ RecyclerView ΡΠΎΡΠΌΠΎΠ·ΠΈΡ? ΠΠ° ΡΡΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ? ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΡΡΡΠΈΡΡ?
https://medium.com/rosberryapps/how-to-cook-the-60-fps-recyclerview-3e7f3885a55
https://www.geeksforgeeks.org/how-to-improve-recyclerview-scrolling-performance-in-android/
- RecyclerView ΠΏΡΠ» Π²ΡΡΡ ΠΎΠ»Π΄Π΅ΡΠΎΠ² - ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π΅ΡΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² - Ρ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΏΠΈΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡΡ ΠΎΠ»Π΄Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠ»Π°)
- RecyclerView Delegate Adapter
https://hannesdorfmann.com/android/adapter-delegates/
https://habr.com/ru/post/341738/
https://habr.com/ru/companies/tbank/articles/665930/
- Π‘ΠΏΠΎΡΠΎΠ±Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ id Π²ΡΡΡ ΠΈ - https://stackoverflow.com/questions/1714297/android-view-setidint-id-programmatically-how-to-avoid-id-conflicts
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ custom attributes? - https://developer.android.com/training/custom-views/create-view
- ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ ΠΎΠ²Π΅ΡΡΠ°ΠΉΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π²ΡΡΡ ΠΈ? - https://stackoverflow.com/questions/9195713/do-i-need-all-three-constructors-for-an-android-custom-view
- ΠΠ°ΠΊ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΠΠΎΡΠ»ΠΈΠ½Π°? - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @JvmOverloads - https://proandroiddev.com/misconception-about-kotlin-jvmoverloads-for-android-view-creation-cb88f432e1fe
- Π’Π΅ΠΌΡ ΠΈ ΡΡΠΈΠ»ΠΈ - https://developer.android.com/guide/topics/ui/look-and-feel/themes
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ overdraw ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΅Π³ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ - https://medium.com/android-news/reduce-overdraw-from-your-android-application-6cf15f4aa85f
- ImageView fit_center ΠΈ center_inside - https://stackoverflow.com/questions/11353973/whats-the-difference-between-center-inside-and-fit-center-scale-types
- ΠΠ°ΠΊ Ρ ImageView ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½ 3:4 - https://betterprogramming.pub/aspect-ratio-with-constraint-layout-with-constraintdimensionratio-d55828ec4aae
- ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ? - Π logcat Π±ΡΠ΄ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎ skipped frames
- ΠΡΠΈΡΠΈΠ½Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ° ΠΊΠ°Π΄ΡΠΎΠ² - https://developer.android.com/topic/performance/vitals/render
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ²Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π·Π°Π²ΠΈΡΠ΅Π» ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ? - Π xml Ρ ΠΏΠΎΠΌΠΎΡΡΡ selector - https://stackoverflow.com/questions/3738886/android-button-with-different-background-colors
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΡ Π²ΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅ΠΉΡΡ ΡΡΡΠ΅Π»ΠΊΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠ°? ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° Π°Π½ΠΈΠΌΠ°ΡΠΈΡ?
- View rendering, view frame buffer
https://pavan-careers5208.medium.com/understand-how-view-renders-in-android-763f0adfb95c
https://betterprogramming.pub/android-internals-for-rendering-a-view-430cd394e225
- ViewStub
http://developer.alexanderklimov.ru/android/views/viewstub.php
https://developer.android.com/reference/android/view/ViewStub
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ Π²ΡΡΡ ΠΈ Π½Π° ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅? - ΠΊΡΠΎΠΌΠ΅ UI thread Π΅ΡΡΡ Π΅ΡΠ΅ RenderThread - https://stackoverflow.com/questions/48618444/renderthread-vs-ui-thread === https://medium.com/@workingkills/understanding-the-renderthread-4dc17bcaf979
- ΠΠ°ΠΊ ΠΎΡΡΠΈΡΠΎΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ Ρ Π·Π°ΠΏΡΠΎΡΠΎΠΌ permissions? - Ρ ΠΏΠΎΠΌΠΎΡΡΡ window ΠΈΠ· ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ
- ΠΠ°ΠΊ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΌΠ°ΠΊΠ΅Ρ XML - https://bignerdranch.com/blog/understanding-androids-layoutinflater-inflate/
- ΠΠ°ΠΊ ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅ΠΊΡΡ? - PrecomputedText
https://developer.android.com/reference/android/text/PrecomputedText
https://medium.com/appnroll-publication/what-is-new-in-android-p-precomputedtext-2a62ec9e8613
- ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ View ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ ΠΈΠ· UI ΠΏΠΎΡΠΎΠΊΠ°? - ΠΠ΅Ρ - Π‘ ΡΠ΅ΠΌ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ?
- ΠΠ°ΠΊ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ 3D-ΠΎΠ±ΡΠ΅ΠΊΡΡ?
Jorge Castillo - Jetpack Compose internals
https://www.youtube.com/watch?v=_hI2vwei9Rg
https://www.youtube.com/watch?v=MtEW9O-Qrr4
https://www.youtube.com/watch?v=OPwJnx5p1tc
https://developer.android.com/courses/jetpack-compose/course
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Jetpack Compose? - ΠΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π³Π΄Π΅-ΡΠΎ Π΅ΡΠ΅? - ΠΡΡΡ Kotlin Compose, Π½ΠΎ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ. ΠΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Jetpack Compose - Π΄Π»Ρ Android
- ΠΠ· ΠΊΠ°ΠΊΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ ΠΊΠΎΠΌΠΏΠΎΡΠ·? - Runtime, Compile, Annotation, Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (Foundation Π² ΡΠ»ΡΡΠ°Π΅ Jetpack Compose, Material)
- ΠΠΎΠ³Π»ΠΈ Π±Ρ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Foundation Π½Π° Π΄Π΅ΡΠΊΡΠΎΠΏΠ΅?
- Π§ΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ composable ΡΡΠ½ΠΊΡΠΈΡ?
- ΠΠΎΠΆΠ½ΠΎ ΠΈΠ· ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΡ? - ΠΠ΅Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΎΡΠ·Π΅Ρ. ΠΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Composer. ΠΠ³ΠΎ ΡΠΌΡΡΠ» ΡΡ ΠΎΠΆ Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠΎΠΌ ΠΠ½Π΄ΡΠΎΠΈΠ΄Π°: Π³Π΄Π΅ ΠΌΡ Π½Π°Ρ ΠΎΠ΄ΠΈΠΌΡΡ, ΡΡΠΎ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ, ΠΊΡΠ΄Π° ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌ
- Π§ΡΠΎ Π΅ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΡΠ·Π΅Ρ?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π³ΡΡΠΏΠΏΡ restartable, movable ΠΈ Π΄Ρ?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Positional Memoization?
- ΠΡΠ΄Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π³ΡΡΠΏΠΏΡ? - Π£ ΠΊΠΎΠΌΠΏΠΎΡΠ·Π° Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΠΊΠ»ΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΄Π°Π½Π½ΡΡ . ΠΡΠΎ Π½Π΅ΠΊΠ°Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΡΡΠ΅ΠΊΠ° ΠΈ Ρ Π΅ΡΡΠ°Π±Π»ΠΈΡΡ
- ΠΡΠ΅ Π»ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΡΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° O(1)? - ΠΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° UI, ΡΠΎ ΡΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
- ΠΠ°ΠΊ Π² ΠΈΡΠΎΠ³Π΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ? - ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΊΠΈ
- Π Π°Π½ΡΡΠ΅ Ρ Π½Π°Ρ Π±ΡΠ»ΠΈ Π²ΡΡΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠΊΠ»Π°ΡΡΠΎΠΌ Π²ΡΠ΅Ρ Π²ΡΡΡ . ΠΡΡΡ Π»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π² ΠΊΠΎΠΌΠΏΠΎΡΠ·Π΅? - ΠΠ°, ΡΡΠΎ Layout Node, Π½ΠΎ ΡΠ°ΠΌ Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
- ΠΠ°ΠΊΠ°Ρ Π·ΠΎΠ½Π° ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Ρ Layout Node?
- ΠΠΈΠ·Π½Π΅Π½Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΠΈ
- ΠΠ΄Π΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΠΈ? - ΠΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΡ ΠΊ Π²ΡΡΡΠΊΠ΅ ΠΈ ΡΠ°ΠΌ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
- ΠΠ΄Π΅-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π±ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ? ΠΠ΄Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ?
- ΠΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΡΠ· ΠΏΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΠΊΠ°ΠΊΡΡ ΡΠ°ΡΡΡ ΡΠΊΡΠ°Π½Π° Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ? - ΠΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ Π½ΠΎΠ΄, ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·Π°Π±Π» ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈ Π΅ΡΡΡ ΡΠ»Π°Π³, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊΠ°Ρ Π½ΠΎΠ΄Π° ΠΏΠΎΠΌΠ΅Π½ΡΠ»Π°ΡΡ
- ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ?
- @Stable - Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠΉ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΡΠ·Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ, Π·Π½Π°ΡΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ.
- ΠΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ @Stable ? - ΠΠ°ΡΠ° ΠΊΠ»Π°ΡΡΡ Ρ val ΠΏΠΎΠ»ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅ΡΡ Π²Π½ΡΡΡΠΈ Π½ΠΎΠ½-ΡΡΠ΅ΠΉΠ±Π» ΠΊΠ»Π°ΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠΈΡΠΊΠΈ)
- @Immutable - ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Ρ Π²Π½ΡΡΡΠΈ ΠΊΠ»Π°ΡΡ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ.
- ΠΠ°ΠΊ Compose ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π½Π°Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π»Π΅ΠΉΠ°ΡΡ?
- ΠΡΠ΄Π° remember ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅?
- ΠΠ°ΠΊ remember ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ Ρ ΡΠΊΡΠ°Π½Π°, ΡΡΠΎΠ±Ρ Π½Π΅ Π±ΡΠ»ΠΎ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ?
- ΠΡΡΠ΅ΠΊΡΡ LaunchedEffect, DisposableEffect, SideEffect
LaunchedEffect - ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΡΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΆΡ Composable Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Composable ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ.
SideEffect - ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² Π²Π½ΡΡΡΠΈ Composable, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΆΡ composable Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ
- Π§Π΅ΠΌ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ LaunchedEffect ΠΈ rememberCoroutineScope?
- ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ΅Π½ SideEffect?
- ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»Π° ΡΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ?
- ΠΠ°ΠΊ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΡΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ? - LocalContext.current
- ΠΠΎΡΠ΅ΠΌΡ LocalContext.current ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΏΠΎΡΠ·-ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΠ°ΠΊ LocalContext.current ΡΡΡΡΠΎΠ΅Π½ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ?
- Chaining animations - https://betterprogramming.pub/chaining-animations-with-jetpack-compose-b4ff6e2e047d
- @Stable vs @Immutable
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ CompositionLocal? - https://developer.android.com/develop/ui/compose/compositionlocal
- Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ±ΠΎΡΠΊΠ° Ρ Compose Π½Π΅ Π»Π°Π³Π°Π»Π°? - You should test for performance in release build mode with R8 enabled - release { minifyEnabled true } - https://developer.android.com/develop/ui/compose/performance === https://stackoverflow.com/questions/73316817/why-is-the-ui-made-by-android-jetpack-compose-loaded-so-slow
- Notifications since Android 8 (Notification channel required)
- Actions in Notifications (for example reply) - https://developer.android.com/training/notify-user/build-notification
- ΠΠ±ΡΡΠ½ΡΠ΅ ΠΈ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° Permissions - https://developer.android.com/training/permissions/requesting
https://developer.android.com/guide/background
- Which operations are prohibited to run on the main thread?
- What is the disadvantage of AsyncTask? - 1. ΠΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, 2. ΠΠ΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΡΡΠΎ Π²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ memory leaks
- Handler, Looper, HandlerThread - https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a
- ΠΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° MessageQueue? - MessageQueue ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠ΅ΡΡΠ»ΠΈΡΡ. Π£ΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ ΠΏΠΎ timestamp. ΠΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Handler.postDelayed, ΡΠΎ message Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ currentTimeStamp + delay. ΠΡΠ»ΠΈ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Π·Π°ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ (Ρ ΠΊΠΎΡΠΎΡΡΡ timestamp > currentTimeStamp), ΡΠΎ Π»ΡΠΏΠ΅Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΡΠΎ Π² ΡΠΈΠΊΠ»Π΅ ΠΊΡΡΡΠΈΡΡΡΡ ΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π±ΠΈΡΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ
- ΠΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ MessageQueue, Π΅ΡΠ»ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ Handler.postDelayed() - ΠΡΠ΅ΡΠ΅Π΄Ρ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ - https://stackoverflow.com/questions/27240015/does-postdelayed-cause-the-message-to-jump-to-the-front-of-the-queue
- ΠΡΠ»ΠΈ Π² Handler ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Runnable, ΡΠΎ Π³Π΄Π΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ? - Π£ Message Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ callback ΡΠΈΠΏΠ° Runnable, ΡΠ°ΠΌ ΠΈ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ (ΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Handler ΠΈ Message)
- ΠΠ°ΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Handler ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ, ΡΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΉ ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΡ 1 ΡΠ΅ΠΊΡΠ½Π΄Ρ? - ΠΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Handler.postAtTime(), Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Timer - https://stackoverflow.com/questions/23007641/correct-handler-postdelay-time
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ΅Π½ MainLooper? - ΠΠ° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ΅ΡΠ΅Π· MainLooper. ΠΠ΅Π· Π½Π΅Π³ΠΎ Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΡΠ°ΡΡΠ° (ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π° main)
- ΠΠΎΡΠ΅ΠΌΡ Looper.loop() Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ANR (Π²ΡΠ΅Π³Π΄Π° Π»ΠΈ ΡΠ°ΠΌ Π³ΠΎΠ½ΡΠ΅ΡΡΡ Π²Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ»)?
https://blog.karatos.in/a?ID=01000-2fa77d6e-e7da-4365-b7c6-7ddddc6fd826
https://blog.krybot.com/a?ID=00400-4706c861-f02b-4e61-aee5-6b07b1eeb5dc
- ΠΠ°ΠΊ ΠΏΠΎΡΠ΅Π»ΠΈΡΡ Π»ΡΠΏΠ΅Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΡΠ΅Π΄Π΅? - https://stackoverflow.com/questions/4838207/how-to-create-a-looper-thread-then-send-it-a-message-immediately
- ΠΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ? - HandlerThread
- ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅? - Looper.myLooper() == Looper.getMainLooper() - https://stackoverflow.com/questions/11411022/how-to-check-if-current-thread-is-not-main-thread
- ΠΠ°ΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΠ΄Π΅Π»Π°Π½ΠΎ, ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ Looper.myLooper() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π»ΡΠΏΠ΅Ρ? - ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ThreadLocal Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π»ΡΠΏΠ΅ΡΠ°
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΡΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅? - https://stackoverflow.com/questions/6343166/how-can-i-fix-android-os-networkonmainthreadexception
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ StrictMode - https://developer.android.com/reference/android/os/StrictMode
- ISO/OSI - https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D0%B5%D0%B2%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C_OSI
- ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ, Π½Π°Π·Π²Π°ΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΎΡΠ»ΠΈΡΠΈΡ
- REST - https://blog.skillfactory.ru/glossary/rest-api/
- REST vs Protobuf vs GraphQL ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ
- HTTP methods - https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
- Π‘ΡΡΡΠΊΡΡΡΠ° HTTP Π·Π°ΠΏΡΠΎΡΠ° (ΠΌΠ΅ΡΠΎΠ΄, Ρ Π΅Π΄Π΅Ρ, ΡΠ΅Π»ΠΎ)
- TCP Socket
- Π₯Π΅Π΄Π΅Ρ - ΡΡΡΡΠΊΡΡΡΠ° (key-value) ΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- HTTP vs WebSocket
- Socket vs WebSocket - https://stackoverflow.com/questions/4973622/difference-between-socket-and-websocket
https://stackoverflow.com/questions/14703627/websockets-protocol-vs-http
- OkHttp Websocket
https://ssaurel.medium.com/learn-to-use-websockets-on-android-with-okhttp-ba5f00aea988
https://square.github.io/okhttp/4.x/okhttp/okhttp3/-web-socket/
- Scarlet - https://github.com/Tinder/Scarlet
- SignalR
- ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΠΎΠΊΠ΅ΡΠ°ΠΌ
- What is JSON?
- How to set up a name of the serialized property different from the property name? (Use @SerializedName("name") annotation)
- How to exclude a property from the serialization? (mark property as transient (keyword in Java or annotation in Kotlin))
- The app starts crashing on network call. What can be wrong? (Network call on the main thread, not added in the manifest)
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Retrofit: ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΡΠΎ Π² Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ?
- Retrofit - what to do, if an app needs to interact with 2 different hosts? (create 2 different retrofit objects)
- How to append some parameter (for example "platform=android") to all network queries? (Use interceptors)
- Multipart ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ
- ΠΠ°ΠΊ Π² JSON ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Base64 - https://stackoverflow.com/questions/1443158/binary-data-in-json-string-something-better-than-base64
- How to load images? (Use Glide, Picasso or Fresco)
- GraphQL
- Protobuf, Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ» proto?
- ΠΡΡΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡ, ΠΊΡΠΎΠΌΠ΅ Retrofit - Volley, Fuel
- ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ? - HttpUrlConnection
https://stackoverflow.com/questions/8654876/http-get-using-android-httpurlconnection
https://developer.android.com/reference/java/net/HttpURLConnection
- ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ OSI, ΠΊΡΠΎΠΌΠ΅ HTTP - SMTP, POP ΠΈ Π΄Ρ
- Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ REST ΠΈ gRPC
https://www.baeldung.com/rest-vs-grpc
https://habr.com/ru/post/565020/
- ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°ΡΠ΄ΠΈΠΎ-Π²ΠΈΠ΄Π΅ΠΎ - https://www.cdnetworks.com/media-delivery-blog/video-streaming-protocols/
- HLS
- WebRTC
- ΠΡΠΎΡΠΎΠΊΠΎΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ExoPlayer - https://exoplayer.dev/supported-formats.html
- Π§ΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²Π²ΠΎΠ΄ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Π² ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ
https://vc.ru/selectel/76371-chto-proishodit-kogda-polzovatel-nabiraet-v-brauzere-adres-sayta
https://habr.com/ru/company/karuna/blog/568702/
https://habr.com/ru/company/htmlacademy/blog/254825/
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠΈ (RARP, DHCP) - http://heap.altlinux.org/modules/corpnet.kirill.next/index.html
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ DNS, Π½Π° Π±Π°Π·Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΊΠ°ΠΊΠΈΠ΅ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°ΠΏΠΈΡΠΈ Triple A?
- TTL - ΡΡΠΎ ΡΡΠΎ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
- TCP - ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ?
- HTTP vs HTTPS
- Π‘Π΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ - ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ°?
- HTTP 1.1, 2.0, ΠΊΠ²ΠΈΠΊ - ΠΎΡΠ»ΠΈΡΠΈΡ
- HTTP pipelining
- Connection keep alive
- ΠΠ°ΠΊ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΎΡΡ (content length, chunk encoding)
- Π§ΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Nginx ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ HTTP Π·Π°ΠΏΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ°Π΅ΡΡΡ Ρ Nginx?
- Timestamp-based syncing - https://stackoverflow.com/questions/4186542/what-are-common-pitfalls-of-timestamp-based-syncing
https://developer.android.com/codelabs/android-workmanager?hl=en#0
https://developer.android.com/codelabs/android-adv-workmanager?hl=en#0
- ΠΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ? - https://developer.android.com/topic/libraries/architecture/workmanager
- ΠΠ°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ? - Π½Π΅Ρ - https://stackoverflow.com/questions/50299814/how-to-schedule-notifications-using-workmanager
- ΠΠΎΠΆΠ΅Ρ Π»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ½ΡΡΡ Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ WorkManager?
- Π ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π°Π΄Π°ΡΠΈ WorkManager? - background ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ - https://developer.android.com/topic/libraries/architecture/workmanager/advanced/threading
- ΠΠ°ΠΊ ΠΈΠ· WorkManager ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Π² Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ?
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ WorkManager
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎΡΡΡ - ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ 15 ΠΌΠΈΠ½ΡΡ (Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠΎΠΆΠ΅Ρ)
- ΠΠ°ΠΊΠΈΠ΅ Π΅ΡΡΡ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ - shared preferences, db, file, Realm, AccountManager, Π΄ΡΡΠ³ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ContentResolver+ContentProvider
- Shared preferences persist after app has been uninstalled. How to prevent it? (Add android:allowBackup="false" in the application in the manifest)
- Shared preferences apply vs commit - https://stackoverflow.com/questions/5960678/whats-the-difference-between-commit-and-apply-in-sharedpreferences
- Shared preferences ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ - https://stackoverflow.com/questions/4693387/sharedpreferences-and-thread-safety
- ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ SharedPreferences ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ? - ΠΡΠΎ XML ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΡΡΡΡ ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΎ Π½Π΅ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΠ (sql, nosql, ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅, ΠΊΠΎΠ»ΠΎΠ½ΠΎΡΠ½ΡΠ΅)
- ΠΠ΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅? - EnryptedSharedPreferences, EncryptedFile
https://developer.android.com/topic/security/data
https://proandroiddev.com/encrypted-preferences-in-android-af57a89af7c8
- ΠΡΠΎΠ±Π»Π΅ΠΌΡ SharedPreferences - XML, ΠΏΡΠΈ Π»ΡΠ±ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»Π°, ΠΏΠ»ΠΎΡ Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ (Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ» Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅) - https://proandroiddev.com/is-jetpack-datastore-a-replacement-for-sharedpreferences-efe92d02fcb3
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ Π½Π° Π±ΡΠΊΠ΅Π½Π΄Π΅ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ SQL? - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Offset ΠΈ Fetch - https://levelup.gitconnected.com/how-to-create-a-server-side-data-pagination-function-in-sql-server-d5e7876aff28
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°Π·Ρ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΡΠ°ΠΉΠ»Π°? - ΠΠΎΠΆΠ½ΠΎ (Π΅ΡΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΠ°ΡΡΡ Π΄Π°Π½Π½ΡΡ )
- ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»? ΠΡΠΊΡΠ΄Π° Π²Π·ΡΡΡ ΠΏΡΡΡ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ? - getApplicationInfo().dataDir - https://stackoverflow.com/questions/7011991/android-creating-file-using-createnewfile-method - https://stackoverflow.com/questions/5527764/get-application-directory
https://developer.android.com/codelabs/basic-android-kotlin-training-persisting-data-room?hl=en#0
https://developer.android.com/codelabs/basic-android-kotlin-training-intro-room-flow?hl=en#0
- ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Room: ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΡΡΠΎ Π² Π½ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ? - https://developer.android.com/training/data-storage/room
- What does @Entity annotation do?
- What is @PrimaryKey?
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ Π² SQL? - https://www.datacamp.com/community/tutorials/introduction-indexing-sql?utm_source=adwords_ppc&utm_campaignid=1455363063&utm_adgroupid=65083631748&utm_device=c&utm_keyword=&utm_matchtype=b&utm_network=g&utm_adpostion=&utm_creative=278443377095&utm_targetid=aud-392016246653:dsa-429603003980&utm_loc_interest_ms=&utm_loc_physical_ms=9047030&gclid=Cj0KCQjwlMaGBhD3ARIsAPvWd6jxN4Dh86nixmxgtpWlbxipHxNrFAwjlVBqy7m4DYtR94rB9_rQXjsaAv9dEALw_wcB
- How to select only different items from the db? (SELECT DISTINCT)
- The app starts crashing after new entity has been added. What I forgot to do? (Update database version, add migration)
https://developer.android.com/training/dependency-injection
https://developer.android.com/training/dependency-injection/manual
https://developer.android.com/training/dependency-injection/dagger-basics
https://developer.android.com/codelabs/android-dagger?hl=en#0
https://developer.android.com/codelabs/android-dagger-to-hilt?hl=en#0
- What is Dependency Injection?
- ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° Dependency Inversion (Dagger) - Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ·Π²Π½Π΅ - Π»Π΅Π³ΠΊΠΎ ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Dagger Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π³ΡΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠΏΡΠΎΡΠ°Π΅ΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - Π² ΡΠ΅ΡΡΠ°Ρ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ²ΡΠ²Π°ΡΡ Π·Π°ΠΌΠΎΠΊΠ°Π½Π½ΡΠ΅
- Dependency Injection vs Service Locator - https://habr.com/ru/post/465395/
- ΠΠ»ΡΡΡ-ΠΌΠΈΠ½ΡΡΡ Dagger - Dagger Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π³ΡΠ°ΡΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π½ΠΎ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈΠ·-Π·Π° ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ
- What is the purpose of @Inject annotation?
- Modules and Components
- Is it possible not to use Modules and how?
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅? - Π΄Π°
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅?
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π² ΠΌΠΎΠ΄ΡΠ»Π΅?
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅?
- Dagger Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
https://developer.android.com/training/dependency-injection/dagger-multi-module
https://www.raywenderlich.com/12275430-dagger-in-multi-module-clean-applications
- Dagger Π² ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΡΠ΅ΡΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ - Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Application, ΡΠ²ΠΎΠΉ Dagger ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΈΠ½ΡΡΠ°Π½ΡΠ°ΠΌΠΈ
- Dagger @Binds vs @Provides - https://stackoverflow.com/questions/52586940/what-is-the-use-case-for-binds-vs-provides-annotation-in-dagger2
- ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Binds ΠΈ Provides Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡ? - ΠΠ°, Π½ΠΎ ΡΠ°ΠΊ Π΄Π΅Π»Π°ΡΡ Π½Π΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ ΠΊΠΎΠ΄ ΡΡΠ°ΠΉΠ»Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠ°ΡΡΡΡ
- ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ @Provides - @Provides Π³Π΅Π½Π΅ΡΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ @Binds. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π»ΡΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ @Binds, Π° @Provides ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡΡΡΠΈ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π½Π΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ»Π΄Π΅Ρ.
- Multibindings
https://habr.com/ru/post/336414/
https://dagger.dev/dev-guide/multibindings.html
- @IntoMap
- Dagger @IntoSet - https://habr.com/ru/post/336414/
- @IntoMap, @IntoSet - Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
- Dagger subcomponents vs component dependencies - https://stackoverflow.com/questions/29587130/dagger-2-subcomponents-vs-component-dependencies
- ΠΠΎΡΠ΅ΠΌΡ component dependencies Π»ΡΡΡΠ΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅?
- Dagger Scopes
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
- Dagger vs Toothpick vs Koin vs Kodein
- ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ DI Π½Π΅ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ Toothpick)? - Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ²
- ΠΠΎΡΠ΅ΠΌΡ Dagger Scope Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²Π΅Π·Π΄Π΅? - ΡΠ°ΠΌ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ Ρ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π΄Π²ΠΎΠΉΠ½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΡ @Reusable
- @Reusable vs @Singleton - https://stackoverflow.com/questions/39136042/dagger-reusable-scope-vs-singleton
- @Qualifier - https://medium.com/mindorks/qualifiers-in-dagger-android-development-c0574cca87a2
- Component Factory - https://developer.android.com/training/dependency-injection/dagger-multi-module?hl=ru
- Assisted DI
- @AssistedInject, @AssistedFactory
- Hilt
- ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
- Clean Architecture - https://habr.com/ru/company/mobileup/blog/335382/
- Android Guide to App Architecture - https://developer.android.com/topic/architecture
- Modern Android App Architecture Pathway - https://developer.android.com/courses/pathways/android-architecture
- UseCases Π»ΡΡΡΠ΅ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ²ΠΎΠΉ UseCase)
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Π° Clean Architecture? - ΠΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΡΠ°Π·Π½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΡΠ°Π·Π²ΡΠ·ΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² (ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²), Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ , ΡΠ΅ΡΡΠΎΠΏΡΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡΡ, ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠ³Π° Π²Ρ ΠΎΠ΄Π° Π² ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ Π½ΠΎΠ²ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (Π²ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»ΠΎΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ), Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅
- ΠΠΎΡΠ΅ΠΌΡ ΡΠ°Π·Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠ»ΠΎΠΈ data, presentation, domain, Π° Π½Π΅ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅?
https://proandroiddev.com/clean-architecture-data-flow-dependency-rule-615ffdd79e29
https://markonovakovic.medium.com/clean-architecture-is-not-domain-data-presentation-e368d7ff8579
- MVP, Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
https://stackoverflow.com/questions/40766185/advantage-of-mvp-in-android
https://www.bornfight.com/blog/mvp-vs-mvvm-choosing-the-right-android-architecture/
- MVVM
- MVI
- ΠΠ° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ»ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ MVP, MVVM, MVI? - ΠΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ
- ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅Π·Π΅Π½ΡΠ΅Ρ Π±Π΅Π· Moxy?
https://startandroid.ru/ru/blog/473-mvp-na-primere-jekrana-s-pin-kodom.html
https://www.raywenderlich.com/7026-getting-started-with-mvp-model-view-presenter-on-android
- ΠΠ»Ρ ΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ?
https://proandroiddev.com/the-abc-of-modularization-for-android-in-2021-e7b3fbe29fca
https://www.techyourchance.com/modularization-android/
https://habr.com/ru/company/kaspersky/blog/422555/
https://proandroiddev.com/modularization-of-android-applications-in-2021-a79a590d5e5b
- ΠΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² - https://stackoverflow.com/questions/41632599/dis-advantage-of-having-multiple-modules-in-an-android-studio-project
- Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΠΈ dependency injection Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ - https://developer.android.com/training/dependency-injection/dagger-multi-module
- ΠΠ°ΠΊ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (cyclic dependency aka circular dependency) Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠ° Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΡΠΈΠ»Ρ, Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΎΠΏΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ°ΡΠ°)?
https://proandroiddev.com/greatest-android-modularization-mistake-and-how-to-undo-it-50eda336a595
https://medium.com/@mydogtom/modularization-part-2-dagger-structure-5c2daf5e849c
https://itnext.io/multi-module-navigation-in-android-63cb9924ffbd
- How to organize application? (View, Presenter)
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΊΠΎΠΌΠ°Π½Π΄?
- Strategies
https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-test-doubles#0
https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-survey#0
- ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ @Before, @After
- ΠΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ @BeforeClass
- ΠΠ°ΠΊ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎΡΡ ΠΊ ΡΠ΅ΡΠΈ? - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Mockito Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°-Π·Π°Π³Π»ΡΡΠΊΠΈ
- ΠΠ°ΠΊ Π² Espresso Π½Π°ΠΆΠ°ΡΡ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΡΠΏΠΈΡΠΊΠ°
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ
https://proandroiddev.com/writing-integration-tests-in-android-b0436978ed7b
https://habr.com/ru/company/rambler_and_co/blog/279799/
- Nested tests d JUnit 5 - https://www.petrikainulainen.net/programming/testing/junit-5-tutorial-writing-nested-tests/
- Mockk releaxed true ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ? - ΡΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ - https://notwoods.github.io/mockk-guidebook/docs/mocking/relax/
- What to do, if external dependency is not found? (Add appropriate repository into: allprojects { repositories {...} })
- implementation vs api (compile)? - ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ api ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ - https://stackoverflow.com/questions/44413952/gradle-implementation-vs-api-configuration
- How to build slightly different applications from one project? (Use flavors)
- Gradle build type vs flavor - https://wajahatkarim.com/2018/04/difference-between-build-type-flavour-and-build-variant-in-android/
- ΠΠΎΠΆΠ΅ΠΌ Π»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ build type? - ΠΠΎΠΆΠ΅ΠΌ - https://stackoverflow.com/questions/49286743/how-to-add-more-build-types-in-app-than-library/49288390
- How to make some part of the code run only in debug? (if (BuildConfig.DEBUG) {...} else {...})
- What is multidex?
- Gradle parallel - https://docs.gradle.org/current/userguide/performance.html
- ΠΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ - https://habr.com/ru/company/yandex/blog/678786/
- ΠΠ°ΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ±ΠΎΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°? - https://medium.com/androiddevnotes/the-internals-of-android-apk-build-process-article-5b68c385fb20
- includedBuild - https://docs.gradle.org/current/userguide/composite_builds.html
- Gradle Parallel
- Build scan (--scan)
https://kotlinlang.org/docs/multiplatform-mobile-getting-started.html
- Multithreading in KMM - https://medium.com/mobile-at-octopus-energy/the-weird-and-wonderful-world-of-threading-in-kotlin-native-3c98c1290318
- Frozen object
- Ktor
- SQLDelight
- Getting geolocation - https://developer.android.com/training/location
- Deep links - https://developer.android.com/training/app-links/deep-linking
- Bluetooth - https://developer.android.com/guide/topics/connectivity/bluetooth
- NFC - https://developer.android.com/guide/topics/connectivity/nfc
- ExoPlayer
https://developer.android.com/codelabs/exoplayer-intro?hl=en#0
https://exoplayer.dev/hello-world.html
https://developer.android.com/guide/topics/media/exoplayer
- ΠΡΠ΄ΠΈΠΎΡΠΎΠΊΡΡ - https://developer.android.com/guide/topics/media-apps/audio-focus
- Problems and improvements in the provided code samples:
- How to implement a layout shown on the screenshot.
- ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ - https://youtu.be/M5Jl643cP34?t=1456
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³ ΠΊΠΎΠ΄Π° Ρ RxJava/Flow
https://www.youtube.com/watch?v=0yxjWwoZtLw
https://www.youtube.com/watch?v=zU-LndSG5RE
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π½Π° Π±ΡΠΌΠ°Π³Π΅ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°Π· Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠΉ, Π΄Π΅Π±Π°ΠΆΠΈΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΊΡΠ°Π΅Π²ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ O()
- In text editor: https://code.yandex-team.ru/ or https://codeshare.io/ or https://codeinterview.io/
OR
- HackerRank
- LeetCode
ΠΡΠΈΠΌΠ΅ΡΡ Π·Π°Π΄Π°Ρ:
-
Π‘ΠΎΠ±ΡΠ°ΡΡ ΡΡΠ΅ΠΊ ΠΈΠ· Π΄Π²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ
-
Π‘ΠΎΠ±ΡΠ°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈΠ· Π΄Π²ΡΡ ΡΡΠ΅ΠΊΠΎΠ²
-
ΠΠ°ΠΉΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π³Π»ΡΠ±ΠΈΠ½Ρ Π΄Π΅ΡΠ΅Π²Π°
-
Leetcode β Π·Π°Π΄Π°ΡΠΈ Ρ ΡΡΠΎΠ²Π½Ρ easy ΠΈ medium Ρ ΡΠ΅Π³Π°ΠΌΠΈ Array, String, Tree, Binary Search, Hash table, Depth-first Search, Breadth first Search, Two Pointers, Stack, Backtracking; Π·Π°Π΄Π°ΡΠΈ Ρ ΡΠ°Π·Π½ΡΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ acceptance
-
More examples:
https://leetcode.com/problems/valid-palindrome
https://leetcode.com/problems/reverse-linked-list
https://leetcode.com/problems/string-compression
https://leetcode.com/problems/longest-substring-without-repeating-characters
https://leetcode.com/problems/valid-mountain-array/
https://leetcode.com/problems/remove-duplicates-from-sorted-array/
https://leetcode.com/problems/plus-one/
https://leetcode.com/problems/find-the-distance-value-between-two-arrays/
https://leetcode.com/problems/validate-ip-address/
https://leetcode.com/problems/valid-anagram
https://leetcode.com/problems/word-pattern/
https://leetcode.com/problems/merge-intervals/
- Task: download list of items from the server and display them on screen. How would you organize your code?
Example of Clean Architecture in Android: https://github.com/gpetuhov/AndroidFundamentals2021/tree/master/01-CleanArchitecture
- Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΊΡΠ°Π½ ΡΠΏΠΈΡΠΊΠ° ΡΠ°ΡΠΎΠ². ΠΠ°ΠΊ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ - Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡ Π΅ΠΌΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (ΡΠ»ΠΎΠΈ data, presentation, domain ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΡΠ½ΠΎΡΡΠΈ Π½Π° ΡΡΠΈΡ ΡΠ»ΠΎΡΡ )
- Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π―Π½Π΄Π΅ΠΊΡ ΠΡΠ·ΡΠΊΠΈ. ΠΠ°ΠΊΠΈΠ΅ ΡΠΊΡΠ°Π½Ρ ΠΈ ΡΠΈΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ? ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ UI, Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠΈΠ³ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΌΡΠ·ΡΠΊΠΈ, ΠΏΠΎΠΈΡΠΊ, ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΡ, ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΡΠ·ΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ? ΠΠ°ΠΊΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ? ΠΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅?
- Π‘ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ API Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
https://www.youtube.com/watch?v=p7QIEzIFzdQ
https://youtu.be/KH0vLN1siI8?si=ca9GSY84dR-JlbaM
https://www.youtube.com/live/c8Sdcw6AlCk?si=GHgMWp5Q-NPf9Vu6
https://www.youtube.com/live/kKcwi0w5c8A?si=-Bi3V_SZRShTlvPY
https://www.youtube.com/watch?v=61aFEG97GrE&t=3505s
https://www.youtube.com/watch?v=2cgIoGOL0lA&t=1763s
https://www.youtube.com/watch?v=FmgzRI47NiA&t=5382s
https://www.youtube.com/watch?v=qb0Ezy-WO_k
Β«ΠΠ°ΡΡΠ΅ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°Β» β Π. ΠΠ°ΠΊΠΌΠ°Π½ ΠΠ°ΠΊΠ΄Π°ΡΡΠ»Π»
Β«Π‘ΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄Β» β Π‘. ΠΠ°ΠΊΠΊΠΎΠ½Π½Π΅Π»Π»
Β«Π§ΠΈΡΡΡΠΉ ΠΊΠΎΠ΄Β» β Π . ΠΠ°ΡΡΠΈΠ½
Β«ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ. ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π½Π°Π»ΠΈΠ·Β» β Π’. ΠΠΎΡΠΌΠ΅Π½, Π§. ΠΠ΅ΠΉΠ·Π΅ΡΡΠΎΠ½, ΠΈ Π΄Ρ.
Β«ΠΡΠΈΠ΅ΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡΒ» β Π. ΠΠ°ΠΌΠΌΠ°, Π . Π₯Π΅Π»ΠΌ, Π . ΠΠΆΠΎΠ½ΡΠΎΠ½, Π. ΠΠ»ΠΈΡΡΠΈΠ΄Π΅Ρ
Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡβΠΏΡΠ°Π³ΠΌΠ°ΡΠΈΠΊΒ» β Π. Π’ΠΎΠΌΠ°Ρ, Π. Π₯Π°Π½Ρ
Β«ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Β» β Π. ΠΠ΅ΠΉΡ
Β«Java Concurrency in PracticeΒ» β Brian Goetz, Tim Peierls
Β«Java. ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΒ» β Π. Π¨ΠΈΠ»Π΄Ρ
Β«Java. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅Β» β Π. ΠΠ»ΠΎΡ
Β«Π€ΠΈΠ»ΠΎΡΠΎΡΠΈΡ JavaΒ» β Π. ΠΠΊΠΊΠ΅Π»Ρ
Β«Kotlin Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈΒ» β Π. ΠΠ΅ΠΌΠ΅ΡΠΎΠ², Π‘. ΠΡΠ°ΠΊΠΎΠ²Π°
Β«Learning Concurrency in KotlinΒ» β Miguel Angel Castiblanco Torres
Β«ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ AndroidΒ» β ΠΠ½Π΄ΡΠ΅Ρ ΠΡΠ°Π½ΡΡΠΎΠ½
Β«ΠΠΆΠ΅Π΄Π°ΠΉΡΠΊΠΈΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈΒ» β ΠΠ°ΠΊΡΠΈΠΌ ΠΠΎΡΠΎΡΠ΅Π΅Π²
https://github.com/MindorksOpenSource/android-interview-questions
https://yandex.ru/jobs/pages/mobdev-interview