| ΠΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | Π£ΡΠΎΠ²Π΅Π½Ρ Π²Π°ΠΆΠ½ΠΎΡΡΠΈ |
|---|---|
| (****) | ΠΠ΅Π· ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ |
| (***) | ΠΠ°ΡΠ΅ΡΠΈΠ°Π», Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ |
| (**) | ΠΠ°ΠΆΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΠΊ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ |
| (*) | ΠΠΎΠ»Π΅Π·Π½Π°Ρ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ°, ΡΠ»ΡΡΡΠ°ΡΡΠ°Ρ Π½Π°Π²ΡΠΊΠΈ |
ΠΡΠ°Π²ΠΈΠ»Π° Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΠΌΠ΅Π½ΡΠΎΡΠ° ΠΏΠ΅ΡΠ²ΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°ΡΠΈΡΡΡ Π½Π° ΡΡ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ Π·Π°Π΄Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
- ΠΠΎΠ³ΠΈΡΡΠ΅ΠΌ Π² ΡΠ°ΠΌΡ Π·Π°Π΄Π°ΡΡ:
- ΠΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ;
- ΠΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΎΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ;
- ΠΠΎΠ³ΠΈΡΡΠ΅ΠΌ Π² Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°/ΠΡΠΎΡΠ°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ/ΠΡΡΠ³ΠΎΠ΅:
- ΠΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΌΠ΅Π½ΡΠΎΡΠΎΠΌ;
- ΠΡΠ΅ΠΌΡ Π½Π° ΠΏΡΠΎΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΠΉ ΡΡΠ΅Π±Π½ΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ (ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² ΠΊΠΎΠ½ΡΠ΅);
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΊΡΠΈΡ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ·
- Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ;
- ΠΠ°Π·ΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ (ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ)
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ;
- Π’Π΅ΡΡΠ°;
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅. Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΈΠ·ΡΡΠ°Π΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² gitlab ΡΠΎΠ·Π΄Π°ΡΡ merge request Π½Π° ΠΌΠ΅Π½ΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΌΠΎΠ³ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΌΠ΅Π½ΡΠΎΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅ΡΡ ΠΏΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠ° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ΅ΠΎΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Unit ΡΠ΅ΡΡΠ°ΠΌΠΈ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΠΌΠ΅Π½ΡΠΎΡΡ.
Π‘ΡΠΎΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠ΅Π½ΡΠΎΡ Π² ΡΠΈΠ»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ² Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ merge request'Ρ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΠΎΡ Π²Π°ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π°Π΄Π°Π½ΠΈΠ΅/ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² - ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉΡΠ΅ ΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ 5ΠΎΠΉ ΡΠ΅ΠΊΡΠΈΠΈ, ΠΠ°ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ 3Π΅ΠΉ ΡΠ΅ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ, Π° ΡΠ΅ΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½.
Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΡ ΠΏΠΎΠΌΠΎΡΠΈ Ρ ΠΌΠ΅Π½ΡΠΎΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΌΠ΅Π½ΡΠΎΡΡ Ρ Π½Π΅Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΈΠ· ΡΠ°Π·ΡΡΠ΄Π° "Π― Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΠΊΠ°ΠΊ ΡΠ²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½". ΠΠ΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΡΠΉΡΠ΅ Π·Π°Π΄Π°ΡΡ, ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ ΠΌΠ΅Π½ΡΠΎΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΡΠΎΠΈΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΠΎΡΠ°, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΡΡΠ΄Π½ΠΎΡΡΡ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅.
1. ΠΠΠ
2. Π Π°Π±ΠΎΡΠ° Ρ Git, gitflow
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ : init, clone, add, status, stash, commit (-m, -am, --amend), fetch, pull, push, branch, checkout, merge (****)
- Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ git flow (***)
- ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°: ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ username ΠΈ email (***)
3. ΠΠ΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²
4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΡΠ΅Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Android Studio
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Android Studio (****)
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° (****)
- ΠΡΠ½ΠΎΠ²Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Android Studio (****)
- ΠΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Android Studio (**)
- ΠΠΎΡΡΡΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ Android Studio, ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (***)
5. Gradle
- Gradle (***)
- ΠΡΠΈ ΡΡΠ°ΡΡΠ΅ ΡΠ°Π±ΠΎΡ Π½Π°Π΄ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ issue Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ PS. Π‘ΠΎΠ·Π΄Π°ΡΡ task Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "I. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Git. Flow ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²" ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΡΡ Π·Π°Π΄Π°ΡΠΈ Π½Π° "Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅".
- Π ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ gitlab ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΠΈ ΡΠ»Π΅Π΄ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ, ΡΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊ ΡΠ΅Π±Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π΄Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΌΠ΅Π½ΡΠΎΡΡ ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΎΡΠ΄Π΅Π»Π°.
- Π Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ git ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ e-mail, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ².
- ΠΠΎΠ±Π°Π²ΠΈΡΡ
.gitignore. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Ρ ΡΠ΅ΡΡΡΡΠ°: https://www.gitignore.io/api/androidstudio. CΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° remote-ΡΠ΅ΡΠ²Π΅Ρ Π²masterΠ²Π΅ΡΠΊΡ - ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΠΊΡ
develop. - Π‘ΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ android-ΠΏΡΠΎΠ΅ΠΊΡ (Phone and Tablet -> Empty Activity).
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π² gradle-ΡΠ°ΠΉΠ» Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ retrofit http://square.github.io/retrofit/
- ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠΈΠΌΡΠ»ΡΡΠΎΡΠ΅
- ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π΅
- Π‘Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ ΠΈ Π·Π°ΠΏΡΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° remote-ΡΠ΅ΡΠ²Π΅Ρ Π²
developΠ²Π΅ΡΠΊΡ - ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡ Π½Π°Π΄ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π·Π°Π΄Π°ΡΡ Π² PS Π² ΡΡΠ°ΡΡΡ "ΠΠ°Π²Π΅ΡΡΠ΅Π½" ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ.
ΠΡΠ½ΠΎΠ²Ρ
- Java-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° (**)
- Π’ΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ (****)
- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ (****)
- ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ·ΡΠΊΠ° Java (****)
- ΠΠ°ΡΡΠΈΠ²Ρ (****)
- Π£ΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ (****)
- Π¦ΠΈΠΊΠ»Ρ (****)
- ΠΠ΅ΡΠΎΠ΄Ρ (****)
- Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (***)
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (**)
- Java Code Conventions - Oracle (****)
ΠΡΠ»Π°Π΄ΠΊΠ°
- Android Studio Debugging: ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ (***)
- Android Studio Debugging: ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ (***)
ΠΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π²ΠΈΠ΄Π° training/lastname_firstname_date. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ merge request Π½Π° ΠΌΠ΅Π½ΡΠΎΡΠ°.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠ΅ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ Java Code Conventions
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "II. Java. Π§Π°ΡΡΡ 1" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ
- Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
- Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. ΠΠ»Π°ΡΡΡ
- ΠΠ»Π°ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ (****)
- ΠΠ°ΠΊΠ΅ΡΡ (****)
- ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ (****)
- Π‘ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΎΡ static (****)
- ΠΠ±ΡΠ΅ΠΊΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (****)
- ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ super (****)
- ΠΠ±ΡΡΡΠ°ΠΊΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (****)
- ΠΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² (****)
- ΠΠ½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ (****)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (****)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° (***)
- ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ enum (****)
- ΠΠ»Π°ΡΡ Object ΠΈ Π΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ (***)
- ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ (***)
- ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΡ (***)
- Π’ΠΈΠΏΡ ΡΡΡΠ»ΠΎΠΊ (***)
- Π‘ΡΡΠ»ΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (***)
2. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
- ΠΠΏΠ΅ΡΠ°ΡΠΎΡ throws (****)
- ΠΠ»Π°ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (****)
- try-with-resources (****)
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ (**)
3. ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Java (****)
- ΠΠ»Π°ΡΡ ArrayList ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ List (****)
- Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°Ρ . ArrayList (****)
- ΠΠ»Π°ΡΡ LinkedList (**)
- Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°Ρ . LinkedList (**)
- ΠΠ»Π°ΡΡ HashSet (****)
- ΠΠ»Π°ΡΡ TreeSet (***)
- ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Comparable ΠΈ Comporator. Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° (***)
- ΠΡΠ΅ΡΠ΅Π΄ΠΈ ΠΈ ΠΊΠ»Π°ΡΡ ArrayDeque (**)
- ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠ»Π°ΡΡ HashMap (****)
- Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°Ρ . HashMap (****)
- ΠΠ»Π°ΡΡ TreeMap (**)
- ΠΡΠ΅ΡΠ°ΡΠΎΡΡ (**)
4. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠΈ. ΠΠ»Π°ΡΡ String (****)
- ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΎ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ (****)
- StringBuffer ΠΈ StringBuilder (***)
- Π Π΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (**)
5. ΠΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ (****)
- ΠΡΠΌΠ±Π΄Ρ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Ρ (****)
- ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ (**)
ΠΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π²ΠΈΠ΄Π° training/lastname_firstname_date. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ merge request Π½Π° ΠΌΠ΅Π½ΡΠΎΡΠ°.
ΠΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΌΠΈ Π½Π° Π½ΠΎΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡ Π·Π°Π΄Π°Π½ΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠ΅ΡΡ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌΡ Java Code Conventions
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "II. Java. Π§Π°ΡΡΡ 2" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- ΠΠ°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ java 8
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
myClosure, Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΡΠ°Π·Ρ "I love Java". ΠΡΠ·Π²Π°ΡΡ ΡΡΠΎ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠ°Π»Π΅Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·. ΠΠ±ΡΡΠ²ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΊ:public void repeatTask (int times, Runnable task). Π€ΡΠ½ΠΊΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΡΡΠΊΠ°ΡΡtimesΡΠ°Π· Π»ΡΠΌΠ±Π΄Π°-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅task. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ°ΡΠΈ "I love Java" 10 ΡΠ°Π·. - Π£ΡΠ»ΠΎΠ²ΠΈΡ: Π΅ΡΡΡ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π½Π° Π΄Π²ΡΠΌΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ² ΠΏΠΎ ΡΠ΅ΡΡΡΠ΅ΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ up, down, left, right. Π Π°Π·ΠΌΠ΅ΡΠ½ΠΎΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π³Π° ΡΠ°Π²Π½Π° 1. ΠΠ°Π΄Π°Π½ΠΈΠ΅:
- Π‘ΠΎΠ·Π΄Π°ΡΡ enum
DirectionsΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ - Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΏΠΎ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΎΠ² ΠΎΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π½ΡΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
locationΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (0,0) ΠΈ ΠΌΠ°ΡΡΠΈΠ² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ [up, up, left, down, left, down, down, right, right, down, right], ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ Π±ΡΠ΄ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉlocationΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π³ΠΎΠ². ΠΠ»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½Π΅ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°Π½Π΅Π΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³.
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Shape Ρ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ perimeter ΠΈ area, Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡ ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠΈΠ³ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Shape:
Rectangle- ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ Π΄Π²ΡΠΌΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ: ΡΠΈΡΠΈΠ½Π° ΠΈ Π΄Π»ΠΈΠ½Π°Square- ΠΊΠ²Π°Π΄ΡΠ°Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ: Π΄Π»ΠΈΠ½Π° ΡΡΠΎΡΠΎΠ½ΡCircle- ΠΊΡΡΠ³ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ: Π΄ΠΈΠ°ΠΌΠ΅ΡΡ ΠΊΡΡΠ³Π°
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ Π³Π°ΠΉΠ΄ - ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
1. ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄ Android
2. ΠΠ΅ΡΡΡΠΊΠ°
- Π£ΡΠΎΠΊΠΈ Π²Π΅ΡΡΡΠΊΠΈ ΠΈΠ· ΠΊΡΡΡΠΎΠ² (**)
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ² Π² XML ΠΈ View groups (***)
3. Π’ΠΈΠΏΡ layout'ΠΎΠ²
- Frame Layout (****)
- Linear Layout (****)
- Relative Layout (****)
4. Splash Screen
4. BottomNavigationView
- ΠΠ±Π·ΠΎΡ (****)
5. App Bar
- ΠΠ±Π·ΠΎΡ (****)
6. Constraint Layout
7. Π Π΅ΡΡΡΡΡ
- ΠΠ±Π·ΠΎΡ (****)
- ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (**)
- Π’ΠΈΠΏΡ ΡΠ΅ΡΡΡΡΠΎΠ² (**)
- Π¨ΡΠΈΡΡΡ Π² XML (**)
- ΠΠ°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠ΅ ΡΡΠΈΡΡΡ (**)
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·Π½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² (**)
- Zeplin (***)
ΠΠ°ΠΆΠ½ΠΎ Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎΠΌ Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΠΎΠ½Π° ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π΅ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ layouts ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ PS ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ·Π²ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΎ Π²ΡΠ΅ΠΌΡ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "IV. ΠΠ΅ΡΡΡΠΊΠ°" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΡΠΊΡΠ°Π½Π΅ Android ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π»Π°ΡΡ ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ "Π₯ΠΎΡΡ ΠΏΠΎΠΌΠΎΡΡ". Π Π΅ΡΡΡΡΡ ΠΈΠΊΠΎΠ½ΠΎΠΊ ΡΡΡ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Splash Screen ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠ°Π½ "ΠΡΠΎΡΠΈΠ»Ρ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ.
- ΠΠΊΡΠ°Π½ "ΠΡΠΎΡΠΈΠ»Ρ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Splash Screen. ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ Π½Π°Π·Π°Π΄, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ.
- ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ
BottomNavigationView. ΠΡΠ½ΠΊΡ "ΠΠΎΠΌΠΎΡΡ" Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ . - Π Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΌΠ΅Π½Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½ ΠΏΡΠ½ΠΊΡ "ΠΡΠΎΡΠΈΠ»Ρ".
- ΠΠ΅ΡΡΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² xml.
- ΠΠ΅ΡΡΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Ρ ΡΡΠ΅ΡΠΎΠΌ "pixel perfect" - ΠΊΠΎΠ³Π΄Π° Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠ΅ ΠΌΠ°ΠΊΠ΅ΡΡ Π΄Π»Ρ ΡΠΊΡΠ°Π½Π° Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΈ ΠΌΠ°ΠΊΠ΅Ρ, ΠΈ Π°Π΄Π΅ΠΊΠ²Π°ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ.
- ΠΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΡ Π² xml Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² dimes, ΡΠ²Π΅ΡΠ° Π² colors, Π° ΡΡΡΠΎΠΊΠΈ Π² strings.
- ΠΠΈΠΊΠ°ΠΊΠΈΡ "ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΡΠ΅Π»", Π²ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΡ.
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. Android OS
2. Application
- Application (***)
- Context (***)
- Π€Π°ΠΉΠ» Manifest (****)
3. Activity
- Activity - ΠΎΡΠ½ΠΎΠ²Ρ (****)
- Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠΌ ΡΠΈΠΊΠ»ΠΎΠΌ Activity (****)
- ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΊΡΠ°Π½Π° (****)
- Task ΠΈ Back Stack (**)
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Activity. ΠΠ±Π·ΠΎΡ (****)
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Activity. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Parcelable (****)
4. Fragment
- Fragment - ΠΎΡΠ½ΠΎΠ²Ρ (****)
- ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° (****)
- ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π΄Π°Π½Π½ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Fragment (****)
- Target fragment (**)
5. SearchView
- ΠΠ±Π·ΠΎΡ (****)
6. ViewPager
- ΠΠ±Π·ΠΎΡ (****)
7. Π‘ΠΏΠΈΡΠΊΠΈ
- ListView (**)
- RecyclerView ΠΈ Adapter (****)
8. Π Π°Π±ΠΎΡΠ° ΡΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ permissions
- Run-time permissions(****)
- Intent ΠΈ ΡΠΈΠ»ΡΡΡΡ(****)
- ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ(****)
- ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΎ Ρ ΠΊΠ°ΠΌΠ΅ΡΡ(****)
9. BroadcastReceiver
- BroadcastReceiver - ΠΎΡΠ½ΠΎΠ²Ρ (****)
- ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Ρ BroadcastReceiver Ρ Android 8.0 (**)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ fragments ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "V. Π€ΡΠ°Π³ΠΌΠ΅Π½ΡΡ" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ
- ΠΠΈΠ°Π»ΠΎΠ³ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ "ΠΡΠΎΡΠΈΠ»Ρ".
- ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΎ" Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ.
- ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "Π‘Π΄Π΅Π»Π°ΡΡ ΡΠ½ΠΈΠΌΠΎΠΊ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π‘Π΄Π΅Π»Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΡΠΈΠ»Ρ
- ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "Π£Π΄Π°Π»ΠΈΡΡ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π°Π»ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΡΠΈΠ»Ρ
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠ°Π½ "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠΌΠΎΡΠΈ" ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ.
- ΠΠΊΡΠ°Π½ "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠΌΠΎΡΠΈ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Splash Screen. ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ Π½Π°Π·Π°Π΄, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ ΠΏΡΠΎΡΠΈΠ»Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° "ΠΡΠΎΡΠΈΠ»Ρ" Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΌΠ΅Π½Ρ.
- Π Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΌΠ΅Π½Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ-ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ±ΡΠ°Π½ ΠΏΡΠ½ΠΊΡ "ΠΠΎΠΌΠΎΡΡ".
- ΠΠΊΡΠ°Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈΠ· ΡΠ΅Π±Ρ activity Ρ
RecyclerView.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠ°Π½ "ΠΠΎΠΈΡΠΊ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΡ ΡΠΊΡΠ°Π½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° "ΠΠΎΠΈΡΠΊ" Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΌΠ΅Π½Ρ
- ΠΠΊΡΠ°Π½ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
SearchView,ViewPagerΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ². - Π£
SearchViewΠ½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΡΠΊΡ Π±Π΅Π· Π»ΠΎΠ³ΠΈΠΊΠΈ. - ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ ΠΏΠ»Π°Π²Π½ΠΎΠΉ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ.
- Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ.
- ΠΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΡΡΠ²Π°Π½ΠΈΠΈ
ViewPager.
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² java. Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- ΠΠΎΡΠΎΠΊΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (****)
- ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² (****)
- Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². FileInputStream ΠΈ FileOutputStream (****)
- ΠΠ»Π°ΡΡΡ ByteArrayInputStream ΠΈ ByteArrayOutputStream (**)
- ΠΡΡΠ΅ΡΠΈΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. ΠΠ»Π°ΡΡΡ BufferedInputStream ΠΈ BufferedOuputStream (****)
- Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². FileReader ΠΈ FileWriter (**)
- ΠΡΡΠ΅ΡΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ. BufferedReader ΠΈ BufferedWriter (**)
- Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (**)
- ΠΠ»Π°ΡΡ File. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΈ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌΠΈ (****)
- Π Π°Π±ΠΎΡΠ° Ρ ZIP-Π°ΡΡ ΠΈΠ²Π°ΠΌΠΈ (**)
2. JSON
- ΠΠΎΠ½ΡΡΠΈΠ΅ (****)
- ΠΠ°ΡΡΠΈΠ½Π³ Π² Android (****)
- Gson (****)
3. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Android
- SharedPreferences (****)
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π· Preferences (**)
- Android data storage (****)
- FileProvider (***)
4. Π Π°Π±ΠΎΡΠ° Ρ Π΄Π°ΡΠΎΠΉ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ
- Date, Calendar (****)
- Date Π² Java 8 (****)
- Π Π°Π±ΠΎΡΠ° ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² java (**)
5. DiffUtils
- ΠΠ±Π·ΠΎΡ (****)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ data_structures ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style. ΠΠ΅ΡΡΡΠΊΠ° ΡΠΊΡΠ°Π½ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ pixel-perfect.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "VI. Π‘ΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ " ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- ΠΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π½Π° ΡΠΊΡΠ°Π½Π΅ "ΠΡΠΎΡΠΈΠ»Ρ".
- ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΡΠ±ΡΠ°ΡΡ ΡΠΎΡΠΎ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΊΡΡΠ²Π°ΡΡ Π³Π°Π»Π΅ΡΠ΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ±ΡΠ°Π½Π½ΠΎΠ΅ Π² Π³Π°Π»Π΅ΡΠ΅Π΅ ΡΠΎΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΎΡΠΈΠ»Ρ
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ ΠΏΡΠΎΠ΅ΠΊΡΡ ThreeTenABP. ΠΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π΄Π°ΡΠΎΠΉ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ΅ΡΠ΅Π· ΠΊΠ»Π°ΡΡΡ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- Π‘Π²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½ "ΠΠΎΠ²ΠΎΡΡΠΈ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΡ ΡΠΊΡΠ°Π½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΏΡΠ½ΠΊΡΠ° "ΠΠΎΠ²ΠΎΡΡΠΈ" Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΌΠ΅Π½Ρ. ΠΠΊΡΠ°Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΎΡΠ½ΠΎΡΡΡΠΈΡ ΡΡ ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ.
- ΠΠ΄Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΡΡΠ°Π·Ρ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΌΠΎΡΠΈ.
- Π‘Π²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½ "Π€ΠΈΠ»ΡΡΡ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΡ ΡΠΊΡΠ°Π½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ Π½Π° ΠΈΠΊΠΎΠ½ΠΊΡ Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΠΊΡΠ°Π½Π° "ΠΠΎΠ²ΠΎΡΡΠΈ".
- ΠΠ° ΡΠΊΡΠ°Π½Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π·Ρ "ΠΠ°ΠΊ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠΌΠΎΡΡ?" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠΌΠΎΡΠΈ" ΠΈ Π½ΠΈΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ.
- ΠΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ Π² ΡΠΈΠ»ΡΡΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅ "ΠΠΎΠ²ΠΎΡΡΠΈ" ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ DiffUtils.
- Π‘Π²Π΅ΡΡΡΠ°ΡΡ ΡΠΊΡΠ°Π½ "ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΠΎΡ ΡΠΊΡΠ°Π½ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°. ΠΠ°Π½Π½ΡΠΉ ΡΠΊΡΠ°Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ Π±ΡΠ»ΠΎ Π²ΡΠ±ΡΠ°Π½ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅.
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΄Π²Π° json'Π°. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΈ Π±Π»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠΊΡΠ°Π½Π°Ρ , Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ (ΡΡΠ΅Π΄ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΈΠΏΠ°) ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ json-ΠΎΠ² ΡΠ΅ΡΠ΅Π· online-parser. ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΈΡ Π² 2 ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠ°ΠΏΠΊΡ assets ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ½ΠΎΡΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡΠΌ ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΈ Π‘ΠΎΠ±ΡΡΠΈΠ΅.
- Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΈΡΠ°ΡΡ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ json ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΠ°ΡΡΠΈΡΡ ΠΈΡ ΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Ρ.
- ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠΊΡΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
- ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (****)
- ΠΡΡΡΠ΅ΠΊΡ (**)
- Π‘Π΅ΠΌΠ°ΡΠΎΡ (**)
- ΠΡΠ΄Π»ΠΎΠΊ (***)
- Starvation and Livelock (***)
- ΠΡΠΎΠΌΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (***)
- Atomic ΡΠΈΠΏΡ (***)
2. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ Π² java
- Thread (****)
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠΏΠ΅ΡΠ°ΡΠΎΡ synchronized (****)
- Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ (***)
- Executors (****)
3. Π€ΠΎΠ½ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² Android
- Looper, Handler, and HandlerThread. ΠΠΈΠ΄Π΅ΠΎ (***)
- Loader (**)
- AsyncTask (***)
4. Service
- Service - ΠΎΡΠ½ΠΎΠ²Ρ (****)
- IntentService (****)
- Job Scheduler (****)
- Background Execution Limits Android 8.0+ (**)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ concurrency ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "VII. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ Π·Π°Π΄Π°Π½ΠΈΡ Π±ΡΠ»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³ Π² background-ΠΏΠΎΡΠΎΠΊΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΈΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ AsyncTask, Executor, IntentService. ΠΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°.
- ΠΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±ΠΎΡΠΈΠΉ background-ΠΏΠΎΡΠΎΠΊ (Thread.sleep(5000)), Π΄Π»Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Progress Indicator (ΠΈΠΌΠΈΡΠ°ΡΠΈΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ ΡΠ΅ΡΠΈ).
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Progress Indicator Π½Π° ΡΠΊΡΠ°Π½Π°Ρ "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠΌΠΎΡΠΈ" ΠΈ "ΠΠΎΠ²ΠΎΡΡΠΈ". ΠΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π°ΠΏΡΠΎΡΠ° Π΄Π°Π½Π½ΡΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅! ΠΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ c UI Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡΡΡ Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅.
- ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ savedInstanceState.
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. ΠΠΎΠ½ΡΡΠΈΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
- ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ (****)
- RxMarbles (***)
2. RxJava
- RxJava (****)
- reactivex (**)
- ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² RxJava: ΠΠΎΡΠ΅ΠΌΡ Rx? (**)
3. Android ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ
- RxAndroid (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π½Π° main ΠΏΠΎΡΠΎΠΊ) (***)
- RxBinding (***)
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ RxJava ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ RxBinding (***)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΠ°ΠΆΠ½ΠΎ! ΠΠ»Ρ ΠΏΡΠ½ΠΊΡΠ° 2 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² Π·Π°Π΄Π°Π½ΠΈΠΈ
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ rx_java ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ PS ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ·Π²ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΎ Π²ΡΠ΅ΠΌΡ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "X. Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΡΡ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ.
- ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, Π²ΠΈΠ΄Π° training/lastname_firstname_date. ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ merge request Π½Π° ΠΌΠ΅Π½ΡΠΎΡΠ°.
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ
RxJava, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈRxAndroidΠΈRxBinding. - Π‘ΠΎΠ·Π΄Π°ΡΡ ΡΠΊΡΠ°Π½ "ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ" ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΌΠ°ΠΊΠ΅ΡΡ.
- ΠΠ½ΠΎΠΏΠΊΠ° "ΠΠΎΠΉΡΠΈ" Π°ΠΊΡΠΈΠ²Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΠΎΠ»Ρ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π²Π²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎ 6 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ². Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π΅Π°ΠΊΡΠΈΠ²Π½Π°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
RxJava. - Π Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° "ΠΠΎΠΉΡΠΈ" ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΡΠΉ ΡΠΎΠ½ Π²ΠΌΠ΅ΡΡΠΎ Π·Π΅Π»Π΅Π½ΠΎΠ³ΠΎ.
- ΠΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π° Π΄Π°Π½Π½ΡΠ΅, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΠΏΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ.
- ΠΠΊΡΠ°Π½ "ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ" Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Splash Screen. ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΡΡΡΠ΅Π»ΠΊΠΈ Π½Π°Π·Π°Π΄, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠΊΡΠ°Π½ "ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΏΠΎΠΌΠΎΡΠΈ" ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΠΎΠΉΡΠΈ".
- ΠΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ "ΠΠΎ ΠΌΠ΅ΡΠΎΠΏΡΠΈΡΡΠΈΡΠΌ" ΡΠΊΡΠ°Π½Π° "ΠΠΎΠΈΡΠΊ"
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΡΠ°Π±ΠΎΡΡ
SearchView. ΠΠΎΠΈΡΠΊ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ 500 ΠΌΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΠ» Π² ΡΡΡΠΎΠΊΡ ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΡΠ» ΠΈΠ· Π½Π΅Π΅. Π’ΠΎ Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΡΡΡΠΎ Π²Π²ΠΎΠ΄ΠΈΡ ΡΠ»ΠΎΠ²ΠΎ Π² ΡΡΡΠΎΠΊΡ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΠΎΠΈΡΠΊ ΠΎΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 1 ΡΠ°Π· Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠ²Π° ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡRxJava. - ΠΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ°ΡΡ ΠΈΠ· ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ· ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ json ΡΠ°ΠΉΠ»ΠΎΠ².
- ΠΡΠ»ΠΈ Π² ΡΡΡΠΎΠΊΡ ΠΏΠΎΠΈΡΠΊΠ° Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²Π²Π΅Π»ΠΈ, ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ Π·Π°Π³Π»ΡΡΠΊΡ ΠΊΠ°ΠΊ Π½Π° ΠΌΠ°ΠΊΠ΅ΡΠ΅.
- ΠΡΠ»ΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ Π² ΠΏΠΎΠΈΡΠΊ ΡΡΡΠΎΠΊΠ° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΠΏΡΡΡΠΎΠΉ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
- ΠΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΠΊΡΠ°Π½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π»ΠΈΡΡΡΠ²Π°Π½ΠΈΠΈ
ViewPagerΠ½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ "ΠΠΎ ΠΠΠ" ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΡΡΠΎΠΊΠ°, Π²Π²Π΅Π΄Π΅Π½Π½Π°Ρ Π² ΠΏΠΎΠΈΡΠΊΠ΅, ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ.
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ
- HTTP (***)
- HTTP codes (***)
- RESTful (***)
- RESTful API β Π»ΠΎΠΆΡ (*)
- WebSocket (**)
- Handling API calls using Retrofit 2 and RxJava 2 (*)
2. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- OkHttp (****)
- Retrofit (****)
- OkHttp. Interceptors (***)
- OkHttp which ignores all SSL errors (***)
- Logging interceptor for okhttp
3. Firebase
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ (****)
4. ΠΡΠ»Π°Π΄ΠΊΠ°. ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²
- Postman (**)
- Fiddler (**)
- Charles (**)
- ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² (*)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ networking ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "IX. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ΅ΡΡΡ" ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΉ ΡΠ»ΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π°Π»ΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ firebase. ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ firebase ΡΡΡ.
- ΠΡΠ΅ "ΡΡΠΆΠ΅Π»ΡΠ΅" ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅
- ΠΠ° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Activity Indicator
- ΠΠ°ΠΌΠ΅Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° Π½Π° ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΎΡΠΈΠ±ΠΎΡΠ΅Π½ - Π·Π°Π³ΡΡΠ·ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΠ°ΠΉΠ»Π°.
- ΠΡΠ΅ "ΡΡΠΆΠ΅Π»ΡΠ΅" ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅
- ΠΠ° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Activity Indicator
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
1. Android SQLite
2. ΠΡΠ½ΠΎΠ²Ρ Realm
3. ΠΡΠ½ΠΎΠ²Ρ Room
- ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Room (****)
- Codelab ΠΏΠΎ Room Java (***)
- Codelab ΠΏΠΎ Room Kotlin (***)
- Room ΠΈ Rx (****)
4. Content Provider
- ΠΡΠ½ΠΎΠ²Ρ (**)
Π Π°Π±ΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π½Π΅Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡΠ΅Π½Ρ, Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΡΠΎΡΠΊΠΎ ΠΈ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°ΡΡΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠ°Π±ΠΎΡΠΈΠΌ, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ ΡΡΠΈΠΌ Π·Π°Π΄Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡ Π½Π° Π²Π΅ΡΠΊΡ data_base ΠΈ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΡΠΈΡΡ Π² Π½Π΅Π΅. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π½Π°Π΄ Π·Π°Π΄Π°ΡΠ΅ΠΉ Π² gitlab Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ merge request Π² Π²Π΅ΡΠΊΡ develop.
ΠΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ code-style. Π ΡΠΈΡΡΠ΅ΠΌΠ΅ PS ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΎΠ·Π²ΡΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΎ Π²ΡΠ΅ΠΌΡ.
- Π‘ΠΎΠ·Π΄Π°ΡΡ task Π² PS Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ "VIII. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ " ΠΈ Π²Π·ΡΡΡ Π΅Π΅ Π² ΡΠ°Π±ΠΎΡΡ.
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Room Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΠΠ»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ.
- ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΠΠ»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ , ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΈΠ· Π½Π΅Π΅. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΠ΅ΡΡΠΈΠΈ.
- Π§ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅
- ΠΠ° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Activity Indicator
- ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½ΠΎΠ² ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈ ΠΠ»Π°Π³ΠΎΡΠ²ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΈΠ· ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- ΠΡΠ΅ "ΡΡΠΆΠ΅Π»ΡΠ΅" ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅
- ΠΠ° Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½ Activity Indicator
- ΠΠ°Π²Π΅ΡΡΠΈΡΡ task Π² PS ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ
XI. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠ°ΠΊΡΠΈΠΊΠ° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
1. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
- ΠΡΠΈΠ½ΡΠΈΠΏΡ SOLID (****)
- MVC, MVP, MVVM (**)
- Moxy - ΡΡΡΠ»ΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ(****)
- Moxy β ΡΡΠ°ΡΡΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ (****)
2. Clean Architecture
- Π‘ΡΠ°ΡΡΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΡΠ΄ΡΡΠΊΠΈ ΠΠΎΠ±Π° (****)
- Π₯ΠΎΡΠΎΡΠΈΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ (****)
- ΠΠΈΠ΄Π΅ΠΎ-Π΄ΠΎΠΊΠ»Π°Π΄ "Π§ΠΈΡΡΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°. ΠΠΎΠ³ΡΡΠΆΠ΅Π½ΠΈΠ΅" (****)
- ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ (***)
- ΠΠ°Π±Π»ΡΠΆΠ΄Π΅Π½ΠΈΡ Clean Architecture (***)
- Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π² Android ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ (**)
3. DI
- Dagger 2 - ΡΡΡΠ»ΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ (****)
- Dagger 2 - Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ (****)
- Dagger 2 - Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Ρ ΠΎΡΠΎΡΠΈΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ (****)
- Toothpick (**)
4. ΠΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΡΡΡ
ΠΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Clean Architecture. Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ presentation ΡΠ»ΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΉ ΠΏΠ°ΡΡΠ΅ΡΠ½ MVP Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Moxy. ΠΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΠ²ΠΈΠΈ Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠΎΠΉ DI ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Dagger 2. ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Room.
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΊ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ
- ΠΠ°ΠΏΠΈΡΠΈ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ»Π»Π΅Π³ ΠΠ°ΡΠΎΠ»Ρ: mobile (**)
- ΠΠΎΠΏΡΠΎΡΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ (**)
- Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΡΠ΅ΠΌΠ°ΠΌ (**)
Π‘ΠΈΡΡΠ΅ΠΌΠ° Π³ΡΠ΅ΠΉΠ΄ΠΎΠ² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ
- ΠΠΎΠΊΡΠΌΠ΅Π½Ρ (**)
ΠΠ°ΠΊ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎ QA
Java
- Π€ΠΈΠ»ΠΎΡΠΎΡΠΈΡ java ΠΡΡΡ ΠΠΊΠΊΠ΅Π»Ρ (**)
- Effective Java (**)
- ΠΠ΅ΡΠ±Π΅ΡΡ Π¨ΠΈΠ»Π΄Ρ "Java. ΠΠΎΠ»Π½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ" (*)
- http://kb.simbirsoft/java-education-core/ (*)
ΠΠ°ΡΡΠ΅ΡΠ½Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΅ΡΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Agile
ΠΠΎΡΡΠ°Π»Ρ, ΠΏΠΎΠ΄ΠΊΠ°ΡΡΡ ΠΈ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΡ
- YouTube ΠΊΠ°Π½Π°Π» Android Developers (***)
- ΠΠΎΠ΄ΠΊΠ°ΡΡ ΠΏΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ (***)
- Π‘ΡΠ°ΡΡΠΈ Π₯Π°Π±ΡΠ° ΠΏΡΠΎ Android ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ (***)
- ΠΡΠΈΠΌΠ΅Ρ Π΄Π°ΠΉΠ΄ΠΆΠ΅ΡΡΠ°, Π±ΡΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ (***)
- Hannes Dorfmann (**)
- Stfalcon (**)
Π’Π΅Π»Π΅Π³ΡΠ°ΠΌ
- ΠΠ°Π½Π°Π» Π°Π½Π΄ΡΠΎΠΈΠ΄Π° (**)
- ΠΠ°Π½Π°Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠ° (**)
- ΠΠ°Π½Π°Π» Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ (*)
ΠΡΠΎΡΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ