Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ viewmodel ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΡΠΊ Π² ΠΠ‘ ΠΠ
Π’Π΅ΠΌΠ° Π½Π΅ ΡΠ°ΠΌΠ°Ρ ΠΏΡΠΎΡΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΊ Π² CS GO ΡΠΏΠΈΡΠ°Π΅ΡΡΡ Π² ΡΡΠ΅Ρ ΠΌΠ΅ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΊΠΈ ΠΏΠΎ ΡΡΠ΅ΠΌ ΠΎΡΡΠΌ:
Π‘ΠΎΠ³Π»Π°ΡΠ½Ρ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½Π°Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, Π½ΠΎ ΠΌΡ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΊ Π² ΠΊΡ Π³ΠΎ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ β viewmodel_presetpos. ΠΠ½Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΎΠ΅ ΠΈΠ³ΡΠΎΠ²ΠΎΠΌΡ ΠΌΠ΅Π½Ρ. ΠΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΡΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ:
1 β ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅;
3 β ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠ°ΠΊ Π² CS 1.6.
ΠΡΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΊΠ°ΠΊ viewmodel_presetpos 1 (2 ΠΈΠ»ΠΈ 3).
ΠΠ°Π»Π΅Π΅ Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅:
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡΠΈΠ΅ΡΡ ΠΏΡΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π΄ΠΈΡΠΊΠΎΠΌΡΠΎΡΡ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cl_bob_lower_amt
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΡ 5 Π΄ΠΎ 30 Π΅Π΄ΠΈΠ½ΠΈΡ (ΡΠΈΡΡΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ amt ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ±Π΅Π»). Π§Π΅ΠΌ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ β ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΡΡΠΊΠ°.
Π‘Ρ ΠΎΠΆΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΡΡΠ³Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° β viewmodel_fov. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π°Π»ΠΈΡΡ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΈΠ³ΡΠΎΠΊΠ°.
ΠΡΠΎΡ Π½Π°Π±ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΡΠΊ Π² ΠΠ‘ ΠΠ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ.
ΠΡΠ΅ΡΠ΅ΡΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
ΠΡΠ»ΠΈ Π½Π΅Ρ ΠΆΠ΅Π»Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ²ΡΡΡΡΡΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ , ΠΈΠ»ΠΈ Ρ ΠΎΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡ Π³ΠΎΡΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΊ Π² CS GO, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ²:
ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠ°Π²ΡΡ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΊ:
Π‘Π»Π΅Π³ΠΊΠ° Π΄ΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΊ ΠΈ ΠΏΡΠΈΡΠ΅Π»Π° Π² ΠΠ‘ ΠΠ Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΊ:
viewmodel_offset_x 2
viewmodel_offset_y 2
viewmodel_offset_z 2
viewmodel_fov 68
ΠΠΎΡ ΡΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΎΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ
Π ΡΠ°ΠΊ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΡΠ΅Π΄Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½Ρ ΡΡΠΊ.
Π£Π±ΠΈΡΠ°Π΅ΠΌ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ
ΠΠΎΠ»Π΅Π±Π°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΆΠ°ΡΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠ΅ Shift (ΡΠ΅ΠΌ Π½ΠΈΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΡΡΠΊΠ°):
cl_viewmodel_shift_left_amt 0.5-2
cl_viewmodel_shift_right_amt 0.25-2
ΠΠΎΠ»Π΅Π±Π°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π±Π΅Π³Π° (Π²ΡΡΡΠ°Π²Π»Π΅Π½Ρ ΡΡΠ΅Π΄Π½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ°Π³ΠΎΠΌ 0.1):
cl_bob_lower_amt 5
cl_bobamt_lat 0.1
cl_bobamt_vert 0.1
cl_bobcycle 0.98
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½Ρ. Π Π΄Π°, ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ½ΠΊΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΠΏΡΠ½ΠΊΡΡ.
ΠΠ°ΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΊ Π² CS GO
ΠΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΊΠΈΡ β crashzβ Viewmodel Generator, ΠΊΠΎΡΠΎΡΡΡ ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΊΠ°ΡΠ°ΡΡ ΠΏΠΎ ΡΡΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅. ΠΠ΅ Π±ΠΎΠΉΡΡ β ΠΎΠ½Π° Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΌΠ°ΡΡΠ΅ΡΡΠΊΠΎΠΉ. Π ΠΊΠ°ΠΊ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΠΈΠ³ΡΠ΅, ΠΌΡ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅.
ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠ°ΡΡΠ° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ Π²ΡΡΡΠ°Π²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΠ΅ΠΉ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΡΡΡΡ Π½Π° ΡΠ°Π³ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΠΎΠΌΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΡΡΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠΏΠΎΠ²ΡΠ΅ Π±ΠΈΠ½Π΄Ρ Π²Π΅Π΄ΡΡΠΈΡ PRO-Π³Π΅ΠΉΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π² ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ.
Π Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΡΠΊ Π‘ΠΈΠΌΠΏΠ»Π° Π² CS GO β Π²ΠΎΡ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°:
viewmodel_recoil 0; cl_righthand 1
ΠΡ Π±Ρ Π½Π΅ ΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΡΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π±ΠΈΠ½Π΄, ΠΏΠΎΡΠΎΠΌΡ ΠΊΠ°ΠΊ Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ²ΠΎΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²ΡΡΠ΄ Π»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΆΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π³Π΅ΠΉΠΌΠ΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠ» ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π΄Π΅Π½Ρ.
ΠΡΠ»ΠΈ ΡΠΆΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄ΡΡΠ΄, ΡΠΎ Π·Π΄Π΅ΡΡ ΠΈ ΠΏΡΠΈΡΠ΅Π» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ β ΠΏΡΠΎΡΠΈΠΌ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ:
ΠΠΈΠ½Π΄ Π½ΠΎΡΠΈΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ, Π½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΡΠ΅Π·ΠΎΠ½Π° 2021 Π³ΠΎΠ΄Π°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ CS:GO: Viewmodel
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ viewmodel?
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ?
ΠΡΠΎΠΌΠ΅ ΡΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ. ΠΡΠ΅Π³ΠΎ Π΅ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π΅ΡΡΡΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. ΠΠΎΡ ΠΎΠ½ΠΈ:
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΡ (ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ Π΄Π°Π»Π΅Π΅) Π° ΠΏΠΎΠΊΠ° Π΄Π΅ΡΠΆΠΈ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: viewmodel_presetpos 1. ΠΠ΅ Π²Π²ΠΎΠ΄ Β«ΡΠ±ΡΠΎΡΠΈΡΒ» viewmodel ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΡΠ΅Π±Ρ Π½Π΅ ΡΡΡΡΠΎΡΡ π
ΠΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π‘ΡΠΎΠΈΡ Π»ΠΈ ΠΌΠ΅Π½ΡΡΡ viewmodel?
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡ ΡΡΠΎ, ΡΠ΅ΡΠΈΠ»ΡΡ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡΡΡ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ viewmodel? Π’ΠΎΠ³Π΄Π° Π²ΠΎΡ ΡΠ΅Π±Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΡΠΎΠ²Π΅Ρ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ²Π΅Ρ: ΡΠΎΠ·Π΄Π°ΠΉ Π±ΠΈΠ½Π΄ Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ cl_righthand. ΠΠ° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡΡ ΠΏΡΡΠΊΠ° ΡΠΏΡΠ°Π²Π° ΠΈΠ»ΠΈ ΡΠ»Π΅Π²Π° ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π²Π°ΠΆΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΠ±Π·ΠΎΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠΌΠ΅Ρ Ρ β ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°. ΠΠ°ΡΠ°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cl_righthand 0/1 Π±ΠΈΠ½Π΄ΡΡ Π½Π° Π±ΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ viewmodel:
ΠΡΠ»ΠΈ ΡΡ ΡΠ°Π½Π°ΡΠ΅Π΅ΡΡ ΠΏΠΎ ΠΊΠΈΠ±Π΅ΡΡΠΏΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π΅ Ρ ΠΎΡΠ΅ΡΡ ΠΊΠΎΠΏΠ°ΡΡΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ viewmodel β Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³Π° Π·Π²Π΅Π·Π΄Π½ΠΎΠ³ΠΎ ΠΊΠΈΠ±Π΅ΡΡΠΏΠΎΡΡΡΠΌΠ΅Π½Π°.
ΠΡΡΠ°ΡΠΈ, Π»ΡΡΡΠΈΠΉ ΠΈΠ³ΡΠΎΠΊ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π° ΠΏΠΎ Π²Π΅ΡΡΠΈΠΈ HLTV.org, ΠΠ°ΡΡΠ΅ ZywOo ΠΡΠ±ΠΎ, Π±Π΅Π³Π°Π΅Ρ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ viewmodel
[Top 10] ΠΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° CSGO, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π² ΡΠΎΡΠ΅Π²Π½ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ³ΡΠ΅, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ CSGO, Π½ΠΎ Π΅Π΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎ ΠΈ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈΠ³ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²Π°ΠΆΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΠΈΠ΄Π½Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ. ΠΡΠΎ ΠΏΡΠΎΡΡΠ°Ρ Π²Π΅ΡΡ, Π½ΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΈΠ³ΡΡ.
ΠΠ½ΠΎΠ³Π΄Π° ΡΠ°ΠΊΠ°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ CSGO ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ViewModel. Π Ρ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ 10 Π»ΡΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° CSGO, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Ρ Π΄Π»Ρ Π²Π°Ρ, ΡΠ΅Π±ΡΡΠ°. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΡΠ³ΡΠ°ΡΡ ΠΈ ΡΡΠ°Π½ΡΡ ΠΏΡΠΎΡΠΈ.
10) EpitΓ‘cio Β«TACOΒ» de Melo
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Viewmodel (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ CSGO):
9) Π€ΠΈΠ»ΠΈΠΏ Β«ΠΠ°ΠΊΠΈΒ» ΠΠ²Π°Π»ΡΠ΄
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
8) Π Π°ΡΡΠ΅Π» Β«TwistzzΒ» ΠΠ°Π½ ΠΠ°Π»ΠΊΠ΅Π½
Twistzz ViewModel Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠ°. ΠΠ»Ρ ΠΏΡΠ°Π²ΡΠΈ ΡΡΠΎ ViewModel Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΡΠ°Π²ΠΎΠΌΡ ΠΊΡΠ°Ρ ΡΠΊΡΠ°Π½Π°. ΠΠΎΡ ΠΎΠΆΠ΅, ΠΎΠ½ Π·Π½Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ΅Π΄Π½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ΅ΡΠΊΠΈΠΌ, ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΠ² ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
7) Π’Π°ΡΠΈΠΊ Β«Π’Π°ΡΠΈΠΊΒ» Π§Π΅Π»ΠΈΠΊ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
6) ΠΠ΅Π½Π½ΠΈ Β«kennySΒ» Π¨ΡΠ°Π±
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
5) ΠΠ°ΡΡΠ΅Π»ΠΎ Β«coldzeraΒ» ΠΠ°Π²ΠΈΠ΄
Coldzera ViewModel Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠΊΡΠ°Π½Π°. ΠΠΎΠ΄Π΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ½ΡΡΠ° Π²Π½ΠΈΠ·, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΌΠΎΠ³ Π»ΡΡΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠ°ΡΡΡ ΠΈ ΠΏΡΠΎΡΠΈΠ²Π½ΠΈΠΊΠΎΠ². ΠΡΠ°Π²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ViewModel Ρ ΠΎΡΠΎΡΠΎ Π»ΠΎΠΆΠΈΡΡΡ Π½Π° Π΅Π³ΠΎ ΠΏΡΠ°Π²ΡΡ ΡΡΠΊΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
4) ΠΠ°Π±ΡΠΈΡΠ»Ρ Β«FalleNΒ» Π’ΠΎΠ»Π΅Π΄ΠΎ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
3) ΠΠΈΠΊΠΎΠ»Π° Β«NiKoΒ» ΠΠΎΠ²Π°Ρ
ΠΠΈΠΊΠΎ β ΠΏΡΠ°Π²ΡΠ°; ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅Π³ΠΎ ViewModel ΡΠΎΠΆΠ΅ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΏΡΠ°Π²Π°Ρ. ΠΠΈΠΊΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΡΠΊΡΠ°Π½Π° ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ½ΡΠ» Π΅Π΅ Π²Π²Π΅ΡΡ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΅ΠΌΡ ΡΠ΅ΡΠΊΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ΅Π½ΡΡ ΡΠΊΡΠ°Π½Π°. ΠΠ³ΠΎ ΠΏΠΎΠ»Π΅ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 65, ΡΡΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ².
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
2) ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Β«s1mpleΒ» ΠΠΎΡΡΡΠ»Π΅Π²
s1mple ViewModel ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π½ΠΈΠΊ, ΠΏΡΠΎΡΡΠΎΠΉ. ΠΠΎΠ΄Π΅Π»Ρ ΠΏΠΈΡΡΠΎΠ»Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠ°Π²ΡΠ΅ΠΉ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠ°Π²ΡΡ ΡΡΠΎΡΠΎΠ½Ρ ΠΈ Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° CSGO. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° CSGO Π² ΡΠ²ΠΎΠΈΡ ΠΈΠ³ΡΠ°Ρ .
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ):
1) ΠΠ½Π΄ΡΠ΅Π°Ρ Β«Xyp9xΒ» Π₯ΡΠΉΡΠ»Π΅Ρ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ViewModel (Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ)
ΠΡΠ΅ ΠΏΡΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΡΠΊ Π² ΠΠ‘:ΠΠ
ΠΠ°ΡΡΡ ΠΠ‘:ΠΠ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΊ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠ° ΠΠ‘:ΠΠ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΊ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ· ΠΠ°ΡΡΠ΅ΡΡΠΊΠΎΠΉ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ°ΡΡΡ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π»Π΅Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅. ΠΡΠ΅, ΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎ Π·Π°ΠΉΡΠΈ Π² ΠΈΠ³ΡΠ΅ Π² ΠΌΠ°ΡΡΠ΅ΡΡΠΊΡΡ ΠΈ Π²Π²Π΅ΡΡΠΈ Π² ΠΎΠΊΠ½Π΅ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°ΡΡΡ (ΠΈΠ»ΠΈ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΠ· ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ°). ΠΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠ°ΡΡΠ°ΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΊ Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Π°Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΡΠΎΠΈΡ.
Π‘ΠΌΠ΅Π½Π° ΡΡΠΊ Π² ΠΠ‘:ΠΠ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ
ΠΡΠΎΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ. ΠΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΡΡΠΊ Π² ΠΠ‘:ΠΠ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΠΈΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ΅ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
viewmodel_offset_z ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΏΠΎ ΡΠΊΡΠ°Π½Ρ ΡΡΠΊΠΈ ΡΠ½ΠΈΠ·Ρ Π²Π²Π΅ΡΡ Π»ΠΈΠ±ΠΎ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΡΠΊΠΈ Π² ΡΠ°ΠΌΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π² Π²Π΅ΡΡ Π½Π΅ΠΉ. ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π΄ΡΠΎΠ±Π½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΡΡΠ΅ Π½Π΅ ΡΡΠ°Π²ΠΈΡΡ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ ΠΏΠΎ ΡΠ΅Π½ΡΡΡ ΡΠΊΡΠ°Π½Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π² ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ Π·Π°ΠΉΠΌΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠ»ΠΎΡΠ°Π΄Ρ ΡΠΊΡΠ°Π½Π°.
viewmodel_fov ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½Π° offset_y. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΎΡ 54 Π΄ΠΎ 68. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΠΊΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ Π²ΠΏΠ΅ΡΠ΅Π΄-Π½Π°Π·Π°Π΄, Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Ρ Π΅Π΅ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΌΠ΅ΡΠ°, ΠΏΠΎΡΡΠΎΠΌΡ, Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β Π½Π° Π±ΠΎΠ»Π΅Π΅ Π΄Π°Π»Π΅ΠΊΠΎΠΌ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΊΠ°ΠΌΠ΅ΡΠ°. ΠΡΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ΅Π»ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ.
ΠΠΈΠ½Π΄ Π½Π° Π±ΡΡΡΡΡΡ ΡΠΌΠ΅Π½Ρ ΡΡΠΊ Π² ΠΠ‘:ΠΠ
bind l Β«toggle cl_rightehand 0 1Β»,
Π³Π΄Π΅ Β«lΒ» Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π° ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ. Π ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π·Π°Π±ΠΈΠ½Π΄ΠΈΡΠ΅ Π½Π΅ ΡΡ ΠΊΠ»Π°Π²ΠΈΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ unbind Β«ΡΠ° ΠΊΠ»Π°Π²ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΡΠΊΠ°Π·Π°Π»ΠΈΒ» toggle cl_righthand 1 0, ΠΈ Π±ΠΈΠ½Π΄ Π±ΡΠ΄Π΅Ρ ΡΠ½ΡΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ, Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΊ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ³ΡΠ°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²Π°Ρ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ ΡΡΡΡΠ°ΠΈΠ²Π°ΡΡ, Π²ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Π΅ΡΠ½ΡΡΡ Π² ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ viewmodel_offset_(x,y,z) 0, ΠΈ Π²ΡΠ΅ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅Π½ΡΡΡΡΡ, Π° ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΊ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π Π΅ΡΠΈΡΡ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ, ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ.
Android Architecture Components. Π§Π°ΡΡΡ 4. ViewModel
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ViewModel β ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Π° Π·Π°ΠΎΠ΄Π½ΠΎ, ΠΈΠ·Π±Π°Π²ΠΈΡΡ Π½Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡ ΡΠΊΡΠ°Π½Π° ΠΈ Ρ.Π΄. ΠΠ΅ ΡΡΠΎΠΈΡ Π΅Π³ΠΎ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Ρ onSaveInstanceState, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡ Π½Π°ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² Π΄ΡΡΠ³ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ViewModel Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΈ Π½Π΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. Π ΡΠ΅Π»ΠΎΠΌ ΠΆΠ΅, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ViewModel ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠΈΠ½Π³Π»ΡΠΎΠ½ Ρ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠ΅ΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠΎΠ² ViewModel, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½ ΠΏΠΎΠΊΠ° Π΅ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅ΠΉ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡ ΠΎΠ΄Π° Ρ Π½Π΅Π΅ (Π²ΡΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, Π½ΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ). Π‘ΡΠΎΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ViewModel ΠΊ Π½Π°ΡΠ΅ΠΉ Activity(Fragment).
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ²: ViewModel, AndroidViewModel, ViewModelProvider, ViewModelProviders, ViewModelStore, ViewModelStores. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ViewModel, AndroidViewModel ΠΈ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡΡΠ°Π½ΡΠ° Ρ ViewModelProviders, Π½ΠΎ Π΄Π»Ρ Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΌΡ ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ.
ΠΠ»Π°ΡΡ ViewModel, ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ, Π±Π΅Π· Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ protected ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ onCleared(). ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ViewModel, Π½Π°ΠΌ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΎΡ ViewModel Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ ΡΡΠΎ Π²ΡΠ΅. ΠΡΠ»ΠΈ ΠΆΠ΅ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΈΡΡΠΈΡΡ ΡΠ΅ΡΡΡΡΡ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄ onCleared(), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΠΊΠΎΠ³Π΄Π° ViewModel Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π°. ΠΠ°ΠΊ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ LiveData, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π΅ observeForever(Observer), ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ²Π½ΠΎΠΉ ΠΎΡΠΏΠΈΡΠΊΠΈ, ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π· Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ onCleared() ΡΠΌΠ΅ΡΡΠ½ΠΎ Π΅Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ. Π‘ΡΠΎΠΈΡ Π΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, ΡΡΠΎ Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΡ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π° View ΠΈΠ»ΠΈ Context Activity ΠΈΠ· ViewModel. Π ΡΠ΅Π»ΠΎΠΌ, ViewModel Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡ: Π ΠΊΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π°ΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Activity/Fragment) ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ Π² Π½Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ? Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡΡ Π½Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ LiveData, Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Ρ ΡΠ°Π½ΠΈΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ LiveData, Π΅ΡΠ»ΠΈ ΠΆΠ΅ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΊ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈ ΡΠΊΡΡΡΡ ProgressBar, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ MutableLiveData ΠΈ Ρ ΡΠ°Π½ΠΈΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ\ΡΠΊΡΡΡΡ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅ ViewModel. Π ΠΎΠ±ΡΠ΅ΠΌ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½Π°Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ViewModel ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ViewModelProviders:
ΠΠ»Π°ΡΡ AndroidViewModel, ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ViewModel, Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΡΠ»ΠΈΡΠΈΠ΅ΠΌ β Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Application. Π―Π²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Location Service ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, ΡΡΠ΅Π±ΡΡΡΠΈΠΉ Application Context. Π ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½ΠΈΠΌ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΡΠ»ΠΈΡΠΈΠ΅, ΡΡΠΎ ΡΠΎ ΡΡΠΎ ΠΌΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΠΌ Π½Π°Ρ ViewModel ΠΎΡ ApplicationViewModel. Π Activity/Fragment ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ ViewModel.
ΠΠ»Π°ΡΡ ViewModelProviders, ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅, Π½Π°Π·ΡΠ²Π°ΡΡΡΡ of ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ViewModelProvider. ΠΠ΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Activity ΠΈ Fragment, Π° ΡΠ°ΠΊΠΆΠ΅, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ViewModelProvider.Factory, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ DefaultFactory, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π² ViewModelProviders. ΠΠΎΠΊΠ° ΡΡΠΎ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ android.arch Π½Π΅Ρ.
ΠΠ»Π°ΡΡ ViewModelProvider, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π½Π°Ρ ΠΈΠ½ΡΡΠ°Π½Ρ ViewModel. ΠΠ΅ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠΎΠ±ΠΎ ΡΠ³Π»ΡΠ±Π»ΡΡΡΡΡ Π·Π΄Π΅ΡΡ, Π² ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»Ρ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠ° Ρ ViewModelStore, ΠΊΠΎΡΠΎΡΡΠΉ, Ρ ΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ Π½Π°Ρ ΠΈΠ½ΡΠ°Π½Ρ ViewModel ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° get, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π΅Ρ Π΄Π²Π΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ get(Class) ΠΈ get(String key, Class modelClass). Π‘ΠΌΡΡΠ» Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ViewModel ΠΊ Π½Π°ΡΠ΅ΠΌΡ Activity/Fragment Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°. ΠΠ΅ΡΠΎΠ΄ get Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΡ ΠΏΠΎ String key, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ: Β«android.arch.lifecycle.ViewModelProvider.DefaultKey:Β» + canonicalName
ΠΠ»Π°ΡΡ ViewModelStores, ΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π½Π°ΠΏΠΎΠΌΠ½Ρ: Π€Π°Π±ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ β ΠΏΠ°ΡΡΠ΅ΡΠ½, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΏΠΎ ΡΠ°ΠΊΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΡ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°ΠΌ. ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ android.arch ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠ°ΠΊ ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ViewModelStore.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΠ°Π±ΠΎΡΡ Ρ ViewModel Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡΠΊΡ Π½Π° ΠΊΠ°ΡΡΠ΅, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π΄ΠΈΡΡ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ Π² ΡΡΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ. Π ΡΠ°ΠΊΠΆΠ΅ Π΄Π°ΡΡΠ΅Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ WiFi network, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ Π½Π΅ΠΌΡ, Π±ΡΠ΄Π΅ΠΌ ΡΡΠΈΡΠ°ΡΡ ΡΡΠΎ ΠΎΠ½ Π² ΡΠ°Π΄ΠΈΡΡΠ΅, Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ.
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π΄Π²Π΅ LiveData Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π½ΠΈ WiFi ΡΠ΅ΡΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ ΠΊ ViewModel, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ Π΄Π²ΡΡ LifeData, Π½Π°ΠΌ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ MediatorLiveData ΠΊΠ°ΠΊ Ρ ΠΎΠ»Π΄Π΅Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π°ΠΌ Π½Π΅Π²ΡΠ³ΠΎΠ΄Π½ΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΌΡΡ ΠΊ MediatorLiveData Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ observeForever. Π ΠΌΠ΅ΡΠΎΠ΄Π΅ onCleared() ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ ΠΎΡΠΏΠΈΡΠΊΡ ΠΎΡ Π½Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ removeObserver. Π ΡΠ²ΠΎΡ ΠΆΠ΅ ΠΎΡΠ΅ΡΠ΅Π΄Ρ LiveData Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ MutableLiveData, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Π½Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π Π½Π°ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅:
Π ΠΎΠ±ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ ΠΌΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ Π½Π° MutableLiveData, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅nΠΎΠ΄Π° getStatus() ΠΈΠ· Π½Π°ΡΠ΅Π³ΠΎ ViewModel. Π ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π½ΠΈΠΌ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ RuntimePermission ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ GPS. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΠΊΠΎΠ΄ Π² Activity ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ UI, Π³ΡΠ³Π» ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π² ΡΡΠΎΡΠΎΠ½Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠ΅Π·Π΅Π½ΡΠ΅ΡΠ°(Π½ΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ·Π»ΠΈΡΠ΅ΡΡΠ²ΠΎ).
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΠΊ: