НаТмитС "Enter", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ

Android Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹: Какой GPS-Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ Π»ΡƒΡ‡ΡˆΠ΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° Андроид. Π›ΡƒΡ‡ΡˆΠΈΠ΅ бСсплатныС Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹

Навигаторы для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄

Найти Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π° трассС ΠΌΠΎΠΆΠ½ΠΎ ΠΈ дСдовскими способами, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΈ компаса, Π½ΠΎ Ρ€Π°Π·Π²Π΅ Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ супСртСхнологичными элСктронными ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠ°ΠΌΠΈ?!

Π Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ прилоТСниях для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π°, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ваш Π»ΠΈΡ‡Π½Ρ‹ΠΉ смартфон ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€ΡƒΠΊΠΈ прСвращаСтся β€” Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Π»ΠΎΠ±ΠΎΠ²ΠΎΠΌ стСклС Π½Π° присоску ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ подставкС Π½Π° ΠΏΡ€ΠΈΠ±ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСны ΠΊΠ°ΠΊ для ОБ Андроид Ρ‚Π°ΠΊ ΠΈ iOS, Π° Ссли Ρƒ вас установлСна Windows 10, Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ β€” ΠΈ для этой систСмы Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΅ΡΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±Π·ΠΎΡ€Π΅ ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹ для Π°Π½Π΄Ρ€ΠΎΠΈΠ΄, ΠΌΡ‹ ΠΎΡ†Π΅Π½ΠΈΠΌ ΠΈΡ… ΠΏΠΎ основным критСриям: быстродСйствиС, число ΠΎΠΏΡ†ΠΈΠΉ, ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, ΠΈ Π΄Π°Π΄ΠΈΠΌ максимально ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ.

Навигаторы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ бСсплатными, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ составляСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ прилоТСния. Для Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ позиционирования, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСма GPS.

Π‘ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π³ΠΎΡ€ΠΎΠ΄Π°, Ссли Π²Ρ‹ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΡƒΠ΅Ρ‚Π΅, Π΄ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° назначСния, Ссли Π²Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅.

Частыми ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ вСлосипСдисты. Навигатор Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ ΠΎΡ‡Π΅Π½ΡŒ простому ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ: ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ вашС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ мСстополоТСниС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅. НСкоторыС Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹ снабТСны голосовым ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°, ΠΈ ΠΊΡƒΠ΄Π° ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒ.

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния-Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Ρ‹:

  • Навигация для Android ΠΎΡ‚ Google Maps
  • ЯндСкс.Навигатор
  • Navitel Навигатор
  • Waze
  • Offline Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ OsmAnd

Π—Π° послСднСС врСмя качСство ΠΊΠ°Ρ€Ρ‚ ΠΎΡ‚ Google сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΠ»ΠΎΡΡŒ, Ссли Π²Ρ‹ пользовались ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΡ‚ Google нСс-ΠΊΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΈ Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· сСгодня, Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ приятно ΡƒΠ΄ΠΈΠ²Π»Π΅Π½Ρ‹!

Навигатор ΠΎΡ‚ ЯндСкс отличаСтся Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов, ΠΎΠ½ Π»Π΅Π³ΠΊΠΈΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ вСсу, Π½ΠΎ ΠΈ Π² ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

Π•Ρ‰Π΅ Π΄Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ Β«ΡƒΠΌΠ½Ρ‹Π΅Β» Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ состояниС Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π°Ρ…, Π΄Π°Π½Π½Ρ‹Π΅ обновляСтся Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚Π΅ Π² Π·Π°Ρ‚ΠΎΡ€ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡΡΡŒ ΠΏΠΎ ΠΏΡ€ΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ, вСдь Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π½ΡŽΠ°Π½ΡΡ‹.

НавитСл, нСсомнСнно, достойная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, с Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ ΠΈ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ, Π·Π° Ρ‡Ρ‚ΠΎ придСтся Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ, Π΄Π°, этот Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ ΠΈΠ· ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ здСсь.

Waze β€” ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, бСсплатный, пСрспСктивный.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° OsmAnd стоит особняком, вСдь для Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ трСбуСтся ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Ρ‚. Π΅. ΠΏΠ΅Ρ€Π΅Π΄ запуском ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трСбуСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ всС Π΅Π΅ содСрТимоС (ΠΊΠ°Ρ€Ρ‚Ρ‹) Π½Π° устройство, ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ доступСн Π² ΠΎΡ„Ρ„Π»Π°ΠΉΠ½-Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: https://portaltele.com.ua/?p=147420


Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» являСтся частной записью Ρ‡Π»Π΅Π½Π° сообщСства Club.CNews.
РСдакция CNews Π½Π΅ нСсСт отвСтствСнности Π·Π° Π΅Π³ΠΎ содСрТаниС.

Навигатор для Android? β€” Π₯Π°Π±Ρ€ Q&A

IGO 2009, самый Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€. Но Π½Π΅ бСсплатный. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ.

ΠžΡ‚Π²Π΅Ρ‚ написан

IGO My way 2009- большоС количСство ΠΊΠ°Ρ€Ρ‚ ΠΈ 3D навигация. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Π½ΠΎ ΠΊΠ°Ρ€Ρ‚Ρ‹ придСтся ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Если Π²ΠΎΠ»Π½ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ ΠΊΠ°Ρ€Ρ‚Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ OsmAnd. Они Ρ‚Π°ΠΌ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π·Π°Ρ€Π°Π½Π΅Π΅. Но навигация (поиск ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сСти. Если совсСм ΠΎΡ„Ρ„Π»Π°ΠΉΠ½, Π΅ΡΡ‚ΡŒ CoPilot. Π’ΠΎΠΆΠ΅ Π½Π΅ ΠΈΠ΄Π΅Π°Π», Π½ΠΎ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ (я Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½ΡΠΊΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ β€” ΠΎΠΊΠΎΠ»ΠΎ 5 баксов).

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Maverick, Π΅ΡΡ‚ΡŒ платная вСрсия (4,95$) ΠΈ бСсплатная.

Π’ΠΎΡ‚ QR-code

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π£ тСбя Π²Ρ‹Π±ΠΎΡ€ Π½Π΅Π²Π΅Π»ΠΈΠΊ:
1) ΠŸΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΈΡ€Π°Ρ‚ΠΊΡƒ (с Ρ€ΡƒΡ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€)
2) ΠšΡƒΠΏΠΈΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ПО (Π½Π° ΠœΠ°Ρ€ΠΊΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€)
3) ΠšΡƒΠΏΠΈΡ‚ΡŒ Π² странС прСбывания симку с Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ΠΎΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π² Android Π³ΡƒΠ³Π»ΠΎ-Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ.

Π― Π±Ρ‹ Π²Ρ‹Π±Ρ€Π°Π» Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Как Π±Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π½Π° Ρ‡ΡƒΠΆΠ±ΠΈΠ½Π΅?

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Волько Ρ‡Ρ‚ΠΎ ΠΈΠ· Австрии. Navigon ΠΏΠΎΠΊΠ°Π·Π°Π» сСбя вСсьма Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ.
ΠšΡƒΡ‡Π° POI, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΊΠ°Ρ€Ρ‚Ρ‹.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

БСсплатный сСйчас стал Π‘ΠΈΡ‚ΠΈΠ“ΠΈΠ΄ Π² союзС с ΠΌΠ΅ΠΉΠ».Ρ€Ρƒ:

Π‘ΠΈΡ‚ΠΈΠ“Π˜Π” для Андройд β€” бСсплатно!
Анонсирована ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ бСсплатная вСрсия ситигида для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Андройд. ВСрсии Π½Π° сСгодняшний дСнь Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ.
maps.mail.ru/mobile/?page=win5

Но ΠΎΠ½ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΏΠΎ ΠΊΠ°Ρ€Ρ‚Π°ΠΌ Β«ΠΎΠ±Ρ€Π΅Π·Π°Π½Β». БСсплатно ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ Ρ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚. Но Π·Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ (OSM) Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ лСгально ΠΈ бСсплатно.

Из Π»ΠΎΠΌΠ°Π½Π½Ρ‹Ρ…: IGO, Navitel

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

По Π•Π²Ρ€ΠΎΠΏΠ΅, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ самым Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ навигация ΠΎΡ‚ IGO, Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Ρ€Ρ‚Ρ‹ ΠΏΠΎ всСй Π•Π²Ρ€ΠΎΠΏΠ΅, с 3D Π΄ΠΎΠΌΠ°ΠΌΠΈ, POI (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ), Ρ€Π°Π΄Π°Ρ€Ρ‹.
Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π½Π΅ Сст, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Ρ€ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ Ρ‡Π΅Ρ€Π΅Π· встроСнный GPS ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.


Π’ ΠΎΠ±Ρ‰Π΅ΠΌ ΡΡ‚Π°Π²ΡŒ Π΅Π΅, Π½Π΅ поТалССшь )

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Android | by Sergio Belda

Π§Ρ‚Π΅Π½ΠΈΠ΅: 4 ΠΌΠΈΠ½.

Β·

12 ΠΌΠ°Ρ€Ρ‚Π° 2019 Π³.

ОбновлСниС ΠΎΡ‚ 8 дСкабря 2019 Π³. Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» этот пост, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² списках с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RecyclerView ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π²Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅, Π½ΠΎ слоТныС трСбования ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, позволяя Π²Π°ΠΌ Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ согласованныС ΠΈ прСдсказуСмыС возмоТности для Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ отобраТСния ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° элСмСнтами ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ происходят, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с экрана списка Π½Π° экран подробностСй. ИспользованиС двиТСния β€” Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя экранами Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Они ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, выраТая ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ вашСго прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ элСмСнты связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

НапримСр, ΠΊΠΎΠ³Π΄Π° элСмСнт Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ вСсь экран, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ являСтся Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ элСмСнтом, ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ подробности. Π­ΠΊΡ€Π°Π½, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΡΡ, являСтся Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ элСмСнтом.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ назначСния.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ» XML Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ссылки Π½Π° экзСмпляры View, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов.

Для этого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» простой ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ, содСрТащим элСмСнт, ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π΄Π΅Ρ‚Π°Π»ΠΈ для этого элСмСнта.

Π― Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ:

 рСализация 'androidx.navigation:navigation-fragment-ktx:2.2.0' 

Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° нуТдаСтся Π² пСрСносС вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° AndroidX. Π― использовал Π²Π΅Ρ€ΡΠΈΡŽ этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Android KTX. Если Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ AndroidX, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ вмСсто этого Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ android.arch.navigation:navigation-fragment-ktx:1.0.0.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг β€” ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ взаимосвязь ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π― создал Π΄Π²Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°: ParentFragment ΠΈ DetailFragment. Π”Π²Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° связаны, ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ прСдставляСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ аспСкт.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ MaterialCard с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ImageView ΠΈΠΌΠ΅Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ с ΠΈΠΌΠ΅Π½Π΅ΠΌ transitionName, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π² Π΄Π²ΡƒΡ… ΠΌΠ°ΠΊΠ΅Ρ‚Π°Ρ….

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ дСйствиС Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ extras содСрТит ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Extras Π²Ρ‹Π·ΠΎΠ²Π° navigation(). Π― добавляю ΠΎΠ±Ρ‰ΠΈΠΉ элСмСнт imageView, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ transitionName β€” Β«imageViewΒ». Π—Π°Ρ‚Π΅ΠΌ я Π²Ρ‹Π·Ρ‹Π²Π°ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ.

Π—Π°Ρ‚Π΅ΠΌ я ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ onCreate Π² классС DetailFragment для отобраТСния Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с использованиСм ΠΎΠ±Ρ‰Π΅Π³ΠΎ элСмСнта

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Glide для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с URL-адрСса. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π²ΡƒΡ… Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ… с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ URL.

 Glide.with(context!!).load(IMAGE_URI).centerCrop().into(imageView) 

URL-адрСс ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Bundle ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° назначСния Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π― Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эти ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Glide.

Бсылка Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

serbelga/android_navigation_shared_elements

ВнСситС свой Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ serbelga/android_navigation_shared_elements, создав ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись Π½Π° GitHub.

github.com

РаспространСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ использования являСтся использованиС ΠΎΠ±Ρ‰ΠΈΡ… элСмСнтов Π² RecyclerView для отобраТСния ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтом списка ΠΈ Π΅Π³ΠΎ дСталями. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Android.

ВмСсто установки ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ImageView Π² XML ΠΌΠ°ΠΊΠ΅Ρ‚Π° списка элСмСнтов ΠΌΡ‹ установим Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π² классС Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°. Π― Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ URI изобраТСния Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅.

Π—Π°Ρ‚Π΅ΠΌ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ классС ΠΌΡ‹ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠ°Π΅ΠΌ событиС Ρ‰Π΅Π»Ρ‡ΠΊΠ° ΠΏΠΎ элСмСнту списка ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ. Когда ΠΌΡ‹ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° элСмСнт, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ImageView Π±Ρ‹Π» Π½Π°ΠΆΠ°Ρ‚, ΠΈ Π΅Π³ΠΎ имя ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ URI изобраТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΌ прСдставлСнии для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ изобраТСния Π² ImageView. Android Navigation ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ бСзопасныС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Safe Args, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ классам 9.0070 Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ build.gradle

 зависимости {  
def navigation_version = "2. 1.0"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
}

И эта строка Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ прилоТСния build.gradle

 ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π³ΠΈΠ½: 'androidx.navigation.safeargs.kotlin' 

Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ назначСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, DetailFragment. На ΠΏΠ°Π½Π΅Π»ΠΈ «Атрибуты» Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒΒ» (+) Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ «АргумСнт». Π’ ΠΎΠΊΠ½Π΅ Β«Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Β» Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, Ρ‚ΠΈΠΏ Β«Π‘Ρ‚Ρ€ΠΎΠΊΠ°Β», Ссли ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½, ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Safe Args создаст классы для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ. Π’ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ URI изобраТСния Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°.

Π—Π°Ρ‚Π΅ΠΌ Π² ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹Π·Π²Π°Π² getArguments() ΠΈΠ»ΠΈ, Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ зависимости -ktx, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅Π»Π΅Π³Π°Ρ‚ свойства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ navArgs() для доступа ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ.

ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² URI изобраТСния, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² ImageView ΠΈ установитС sharedElementEnterTransition.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π΅Ρ€Π±Π΅Π»Π³Π°/Π“Ρ€Π°ΠΌΠΌΠΎΡ„ΠΎΠ½

ΠœΡƒΠ·Ρ‹ΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ»Π΅Π΅Ρ€ для Android. РСализация Ρ‡Π΅Ρ€Π΅Π· Android Jetpack. WIP β€” serbelga/Gramophone

github.com

Наш бСзопасный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Android Jetpack Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ | by Alejandro Weichandt

Alejandro Weichandt

Β·

Follow

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π²

Β·

7 ΠΌΠΈΠ½ чтСния

Β·

90 002 15 фСвраля 2021 Π³.

ΠŸΡ€ΠΎΡˆΠ΅Π» Π³ΠΎΠ΄ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ вСрсиСй для Android мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Sync. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого Π³ΠΎΠ΄Π° ΠΌΡ‹ Π½Π΅ Ρ€Π°Π· ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠΌΡƒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ. Π­Ρ‚Π° история ΠΎ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ.

Π€ΠΎΡ‚ΠΎ Kaleidico Π½Π° Unsplash

Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ роТдСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ ΠΏΠΎ возмоТности ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ рСкомСндациям (ΠΈ я ΠΏΡ€ΠΈΠ±Π΅Ρ€Π΅Π³Ρƒ рассказ ΠΎΠ± этих Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·).

  • ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ чистой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹
  • ΠœΡ‹ согласились Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚
  • ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ рСкомСндациям, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Android

ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ ΠΈΡ… Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ , ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ Android Jetpack Navigation . Π’ΠΎΡ‚ ΠΎΠ½, Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅, список прСимущСств/нСдостатков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрСли Π² Ρ‚ΠΎ врСмя.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π°

  • ДСкларативная навигация с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° XML
  • Π”ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π² Android Studio
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° бСзопасных Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Deeplink

НСдостатки

  • Π’ Ρ‚ΠΎ врСмя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² стадии Π°Π»ΡŒΡ„Π°-тСстирования
  • Π’ Ρ‚ΠΎ врСмя практичСски Π½Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π² ΠΈΡ‚ΠΎΠ³Π΅ построили, я создал этот ДСмонстрационноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ToDo для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. Он Π±Ρ‹Π» построСн с использованиСм Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ слСдуСм Π² Sync. Он содСрТит:

  • Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ прСдставлСния для размСщСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… абстракций
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ прСдставлСния . Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Todo
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ прилоТСния , Π³Π΄Π΅ ΠΌΡ‹ объСдиняСм всС вмСстС ΠΈ создаСм ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ИмСя это Π² Π²ΠΈΠ΄Ρƒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ углубимся Π² самыС Π²Π°ΠΆΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π² этом ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°Ρ„Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ToDo

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом Π±Ρ‹Π»ΠΎ созданиС Π±Π°Π·ΠΎΠ²ΠΎΠΉ абстракции Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, достаточно простой для Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ модСлью, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Π±Ρ‹Π» Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ стСк, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ/Π²Ρ‹Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ продвиТСния.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ интСрфСйс Π±Ρ‹Π» связан с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° Router ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊ мСсту назначСния Routes , имСя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΠΊΠ°Ρ‚ΡŒ/ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΡ….

Π₯отя эта абстракция Π±Ρ‹Π»Π° сдСлана с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Jetpack, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° экзСмпляра позволяСт Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ исходный ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Jetpack. БлСдуя ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ дСмонстрационного прилоТСния, Ρƒ нас Π΅ΡΡ‚ΡŒ 4 Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ссылку Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅):

  • Бписок TODO
  • Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ TODO
  • Π”Π΅Ρ‚Π°Π»ΠΈ TODO
  • Π£Π΄Π°Π»ΠΈΡ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΠ½ΠΎ подтвСрТдСния TODO

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ просто сосрСдоточимся Π½Π° спискС ΠΈ Ρ„ΠΎΡ€ΠΌΠ΅. Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ выглядят ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² с ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌΠΈ назначСния ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ класс IRoute со всСми Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ назначСния, с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ push , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ИмСя это, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ исходного ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°

push Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с коллизиями.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, ΠΊΠ°ΠΊ наши абстракции IRouter ΠΈ IRoute ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠΌ списка Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

Π’ Π΄Π΅ΠΌΠΎ-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρƒ нас Π΅ΡΡ‚ΡŒ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… классов ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ StackFragment 900 70 ΠΈ RoutedViewModelDelegate , Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΈΠ· ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ прСдставлСния ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΊΠΎΠ΄Π°.

LiveDataEvent относится ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΡΠΎΠ±Ρ‹Ρ‚ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ LiveData. Π­Ρ‚ΠΎΡ‚ класс Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² дСмонстрационном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ИмСя Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎ доступным ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ, имСя ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Router, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π΄ΠΎ viewModel Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

ПослСдний шаг β€” Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ эти абстракции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Jetpack ΠΈ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΠΈΡ…. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ зависимостСй Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Jetpack Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… модулях ΠΈΠ»ΠΈ Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, ΠΌΡ‹ построили всС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ прилоТСния.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ всС эти абстракции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Jetpack? Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π· посмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Основная идСя состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Router, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ nav_graph, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Π΅ΡΡ‚ΡŒ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ всСми классами ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдоставляСт Π²Π°ΠΌ Android Jetpack Navigation.

Π­Ρ‚ΠΎΡ‚ AppRouter слСдуСт Π³Ρ€Π°Ρ„Ρƒ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, со всСми 4 Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Π½Π΅ΠΌ. Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, СдинствСнная ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ здСсь β€” сопоставлСниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠœΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ ΠΈ фактичСскиС navDirections ΠΎΡ‚ Jetpack.

Π’ΠΎΡ‚ руководства ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Jetpack Navigation ΠΈ Safe Args ΠΈ Hilt for Dependency Injection .

ПослС выполнСния всСх этих шагов ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ нашСго прилоТСния!

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ, Π±Ρ‹Π»Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Jetpack прСдоставляСт ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SafeArguments . Π˜Ρ‚Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ шаги. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ для чтСния Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ IArgsRouter с присоСдинСнным Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΠΌ классом Args Π²Π½ΡƒΡ‚Ρ€ΠΈ.

Π’Π°ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Serializable Π² качСствС Π±Π°Π·ΠΎΠ²ΠΎΠΉ абстракции для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° поддСрТиваСтся Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ AndroidX, ΠΈ Π΅Π΅ бСзопасно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π°ΡˆΠΈΡ… классах ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ чистыми модулями Kotlin.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сосрСдоточимся Π½Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ списком ΠΈ дСталями ΠΈΠ· дСмонстрации, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг β€” Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π² Routes , ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ список. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ классы Π΄Π°Π½Π½Ρ‹Ρ… для этих ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ².

На сторонС назначСния, имСя Π²Π½Π΅Π΄Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΆΠ΅ просто, ΠΊΠ°ΠΊ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π³Π΅Ρ‚Ρ‚Π΅Ρ€ args() , Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступный ΠΈΠ· IArgsRouter .

И, ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π²Π°ΠΌ Π² Π½Π°Ρ‡Π°Π»Π΅, Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅Ρ‚ сСкрСтов, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Jetpack прСдоставляСт всС классы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ классы ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Args ΠΈ SafeArgs

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ руководства ΠΏΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ДСмонстрационный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этот Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Details находится Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅. По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ растСт Π½Π° экранах, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ порядок Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ для ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ прСдставлСния. Π’ нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ это Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΡ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ SafeArgs Π±Ρ‹Π»ΠΈ нСдоступны для дСйствий ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌΠΈ, Ссли Π²Ρ‹ явно Π½Π΅ объявили ΠΈΡ… Π² самом дСйствии. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Π·Π²Π°Π»ΠΎ Ρƒ нас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΡ‹ Π·Π°Π±Ρ‹Π²Π°Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ связанныС дСйствия, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΎΡΡŒ большой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΠΌΡ‹ нашли ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ Ρ‚Ρ€ΡŽΠΊ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Если Π²Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ свСдСний, рСализация AppRouter использовала DetailsNavGraphDirections вмСсто TodoListFragmentDirections . Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΡˆΠ»ΠΎ врСмя ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ простому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ: ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ глобальноС дСйствиС для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„Π° , ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π³Ρ€Π°Ρ„Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ Π½Π΅ΠΌΡƒ. Π”Π°, это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ глобальноС дСйствиС с самим Π³Ρ€Π°Ρ„ΠΎΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Π² качСствС ΠΏΡƒΠ½ΠΊΡ‚Π° назначСния . Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ хитрости, Π½ΠΎ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния видимости, ΠΊΠΎΠ³Π΄Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ назначСния Π³Ρ€Π°Ρ„Π° обновляСт свои Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ глобальноС дСйствиС Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ написано прямо Π½Π°Π΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ этого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°.

А Π²ΠΎΡ‚ ΠΈ Ρ…ΠΈΡ‚Ρ€ΠΎΡΡ‚ΡŒ . ПослС создания этого глобального дСйствия ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π³Ρ€Π°Ρ„Π΅, просто написав Π΅Π³ΠΎ id ΠΈ мСсто назначСния . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ id , ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ дСйствиС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, сгСнСрированноС Jetpack, Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ . ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ содСрТит ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², SafeArgs станСт доступным для этого класса ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π² дСмонстрационном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ здСсь:

Π•Ρ‰Π΅ Ρ€Π°Π·, руководства ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„Ρ‹ ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ дСйствия

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒΡΡ, касалась ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊ Π΅Π³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŽ.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° состояла Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΎΠ±Ρ‰ΠΈΠΌ прСдставлСниСм для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ, Π½ΠΎ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅, это стало для нас ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ слишком ΠΌΠ½ΠΎΠ³ΠΎ стандартного ΠΊΠΎΠ΄Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ логичСского Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. Но ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ стСка появилась Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ Jetpack, ΠΈ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом снова стал поиск простой абстракции. Π›ΡƒΡ‡ΡˆΠΈΠΌΠΈ, Π½Π° наш взгляд, Π±Ρ‹Π»ΠΈ pushForResult(Fragment, Route, callback) , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅, ΠΈ popWithResult(Fragment, result) Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ сторонС.

Π”Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ находятся Π² BaseRouter ΠΈΠ· дСмонстрационного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ. Но ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π»ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ LiveData Π² Android BackStackEntry , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» доступСн для использования с Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠ΅ΠΉ Jetpack.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прСдставлСниСм Β«ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈΒ» ΠΈ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ Β«Π£Π΄Π°Π»ΠΈΡ‚ΡŒΒ».

Π’Π°Ρˆ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ

    Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

    Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *