πŸ“±8 распространСнных ошибок Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΠΎΠ΄ Android

ΠšΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ прилоТСния влияСт Π½Π° количСство Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. РазбираСмся с Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнными срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Android ошибками.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ публикуСтся с сокращСниями, Π°Π²Ρ‚ΠΎΡ€ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ Siva Ganesh Kantamani.

1. Π£ всСго Π΅ΡΡ‚ΡŒ своС мСсто, Π½ΠΎ Π½Π΅ всС это ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚

ЭкосистСма Android быстро развиваСтся ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всСвозмоТныС сообщСства ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ: Ρ€Π°Π·Π½Ρ‹Π΅ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ слои, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями, ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΌΠΎΠ΄Π½Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ люди ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Ρ‚Π°ΠΊΠΎΠ³ΠΎ разнообразия – нСпростая Π·Π°Π΄Π°Ρ‡Π°. Π Π΅Ρ‡ΡŒ Π½Π΅ ΠΎΠ± Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ высокого уровня, Π° ΠΎ простых Π²Π΅Ρ‰Π°Ρ…, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π»ΠΈΡΡŽΡ‰ΠΈΡ… Π½Π° ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ: strings, colors, dimens ΠΈ Ρ‚. Π΄.

Π’Π°ΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС строковыС рСсурсы Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ strings.xml) для быстрого рСдактирования. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Ρ†Π²Π΅Ρ‚Π°ΠΌ, рСсурсам dimens ΠΈ стилям, поэтому, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ врСмя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ dark mode, с этим Π±ΡƒΠ΄Π΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ.

Π’Ρ‹Π²ΠΎΠ΄: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΈ Π½Π΅ ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄.

2. ΠžΡ‚ΠΊΠ°Π· ΠΎΡ‚ использования Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ²

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Android Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ activities для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экрана. Π‘ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ стали Π²ΡΠΏΠ»Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈΠ·-Π·Π° этого. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ Π²Ρ…ΠΎΠ΄Π° Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ ΠΈΠΌΠ΅Π»ΠΈ массу уязвимостСй.

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, использованиС activities ΠΈΠΌΠ΅Π»ΠΎ смысл нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, ΠΊΠΎΠ³Π΄Π° API Fragments Π΅Ρ‰Π΅ Π½Π΅ Π±Ρ‹Π» Π΄ΠΎΠΏΠΈΠ»Π΅Π½.

БСгодня ΠΊΠΎΠΌΠ°Π½Π΄Π° Android Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ для проСктирования ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ экрана ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ‚ΠΈ Π²ΠΎ всСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ для ΠΈΡ… размСщСния. Π’Π°ΠΊΠΎΠ΅ построСниС ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Single Activity Architecture.

Новый ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сокращаСт количСство ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ ΠΈΠ·Π²Π½Π΅ прилоТСния. Одной ΠΈΠ· основанных Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ активности Π½ΠΎΠ²ΠΈΠ½ΠΎΠΊ являСтся Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Jetpack.

Π’Ρ‹Π²ΠΎΠ΄: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ API Fragments – это сдСлаСт Π²Π°ΡˆΡƒ Тизнь Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.

3. НСТСланиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DataBindings ΠΈΠ»ΠΈ ViewBindings

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Android Π±Ρ‹Π»Π° основана Π½Π° Ρ‚Ρ€Π΅Ρ… Ρ‚ΠΈΠΏΠ°Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²: XML, Kotlin ΠΈ Java. XML-Ρ„Π°ΠΉΠ»Ρ‹ содСрТат всС, Ρ‡Ρ‚ΠΎ связано с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ, Π° Ρ„Π°ΠΉΠ»Ρ‹ Kotlin/Java Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ части прилоТСния.

Π”ΠΈΠ·Π°ΠΉΠ½ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ части Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ связаны, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь data binding ΠΈ view binding ΠΈΠ³Ρ€Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ вмСстС с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ findviewbyid. Основная Ρ†Π΅Π»ΡŒ view binding – Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ бСзопасности Π±ΠΈΠ½Π΄ΠΈΠ½Π³Π° Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.

ЦСль data binding – привязка ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² UI Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠΊ источникам Π΄Π°Π½Π½Ρ‹Ρ…, с использованиСм Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Π° Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ.

Π’Ρ‹Π²ΠΎΠ΄: рассмотрСнныС инструмСнты повысят ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности прилоТСния ΠΈ добавят простоты Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ UI.

4. НСТСланиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kotlin ΠΈ Coroutines

Π’ Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° рСбята ΠΈΠ· Google объявили Kotlin Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΌ языком для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android, это стало Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΌ Π½Π° Π±ΠΎΠ»Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Java ΠΈ ΡΠ½ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² шагом.

ИспользованиС Kotlin ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΎ доступ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ функциям, ΠΊΠ°ΠΊ extensions, scoped functions, data classes, object keyword, null safety ΠΈ Ρ‚. Π΄. ΠžΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Android, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈ сСрвСрной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

АсинхронноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² создании ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. На Ρ€Π°Π½Π½ΠΈΡ… стадиях для этого примСнялся AsyncTask, Π° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° RxJava.

Π—Π°Ρ‚Π΅ΠΌ появились ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ – простой ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ асинхронному ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’ наши Π΄Π½ΠΈ ΠΎΠ½ΠΈ стали стандартным Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡. Kotlin Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ простой ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠΉ, Π° ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ асинхронныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±Π΅Π· нСобходимости ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π½ΠΎΠ²ΠΎΠ΅.

Π’Ρ‹Π²ΠΎΠ΄: для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΡ€ΡƒΡ‚ΠΈΠ½Ρ‹, Π° Π½Π΅ AsyncTask. Нам Π½ΡƒΠΆΠ½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ.

5. Ошибки проСктирования

ΠΠ΅Π΄ΠΎΠΎΡ†Π΅Π½Π΅Π½Π½ΠΎΡΡ‚ΡŒ ConstraintLayout

ConstraintLayout поставляСтся с ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ функциями: guidelines, barriers, group, aspect ratio, flow, layer ΠΈ Ρ‚. Π΄. Благодаря этим функциям Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ практичСски любой экран.

ConstraintLayout отличаСтся ΠΎΡ‚ Relative ΠΈ Linear layout. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ плоскиС ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹ Π±Π΅Π· ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ влоТСнности, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ количСству слоСв для рисования Π²ΠΎ view.

Π§Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ΅ использованиС ConstraintLayout

ΠœΠΎΡ‰Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ инструмСнта совсСм Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡˆΠ°Π³Ρƒ. ИспользованиС ConstraintLayout Π² создании UI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ FrameLayout ΠΈΠ»ΠΈ LinearLayout, являСтся ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ.

Π‘ΠΎΡΠ·Π½ΡŒ MotionLayout

ConstraintLayout – это ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ слоТных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² интСрфСйса, Π½ΠΎ Π½Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² – для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ MotionLayout.

MotionLayout – это подкласс ConstraintLayout, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ всС Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Он ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π΅Π½ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² Π² XML ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΈ совмСстим с API уровня 14, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ для 99% случаСв использования. Новый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ MotionLayout Π² Android Studio 4.0 позволяСт Π»Π΅Π³ΠΊΠΎ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’Ρ‹Π²ΠΎΠ΄: для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ситуации Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ лишнСй ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

6. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π·Π½Π°Π½ΠΈΠΉ ΠΎ бСзопасности

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² shared preference, Π‘Π” ΠΈΠ»ΠΈ локальном Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ – рискованная затСя, Ρ‚. ΠΊ. ΠΈΡ… всС ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Π·Π»ΠΎΠΌΠ°Ρ‚ΡŒ. МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚ ΠΎΠ± этом ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ shared preference для хранСния ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ, настроСк ΠΈ ΠΏΡ€ΠΎΡ‡Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Encrypted preference ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

БСзопасная коммуникация

МногиС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ использованиС HTTPS ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡ‚ΡŒ связь с сСрвСрами, Π½ΠΎ это Π½Π΅ всСгда Ρ‚Π°ΠΊ. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Ρ…Π°ΠΊΠ΅Ρ€Ρ‹ Π²ΠΌΠ΅ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Π½Π°Π» связи, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всСх участников. Π­Ρ‚ΠΎ называСтся Π°Ρ‚Π°ΠΊΠΎΠΉ man in the middle. Для установки Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ связи с сСрвСром, придСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ сСртификат.

Π’Ρ‹Π²ΠΎΠ΄: Π½Π΅ ΠΏΡ€Π΅Π½Π΅Π±Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ примСняйтС совСты Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Π΅Π»ΠΏΠ°.

7. НСзнаниС возмоТностСй Android Studio

НС ΠΈΠΌΠ΅Π΅Ρ‚ значСния, насколько ΠΌΠΎΡ‰Π½Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ€ΡƒΠΆΠΈΠ΅, Ссли Π²Ρ‹ Π½Π΅ Π½Π°ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. Как Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Android Studio, Π½ΠΎ Π²Π°ΠΌ придСтся Π΅Π³ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ.

Π’ Android Studio Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ скрытых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: handy shortcuts, live templates, file templates, predefined project structures, code generator plug-ins, customization ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π£ нас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ database inspector, layout inspector, profiler ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΠΈΡ‡ΠΈ для продуктивности Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅.

Android Studio Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π²Ρ€ΠΎΠ΄Π΅ navigation editor для просмотра Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° прилоТСния, ΠΈ motion editor для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ эффСктивной Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ².

Π’Ρ‹Π²ΠΎΠ΄: студия снабТСна ΡΡ‚ΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ плюшками, Ρ‡Ρ‚ΠΎ Π½Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π³Π»ΡƒΠΏΠΎ.

8. Π˜Π³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Jetpack

Jetpack – это Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ, ΡΠΎΠΊΡ€Π°Ρ‰Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ прилоТСния, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π»ΡŽΠ±Ρ‹Ρ… устройствах ΠΈ вСрсиях Android.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

  • paging3 для разбиСния Π½Π° страницы;
  • Room для локальной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…;
  • WorkManager для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡;
  • DataStore для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ хранСния Π΄Π°Π½Π½Ρ‹Ρ…;
  • Hilt для DI;
  • App Startup для сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ запуска прилоТСния ΠΈ Ρ‚. Π΄.

ВсС эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ созданы с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ простоты использования для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ слоТных Π·Π°Π΄Π°Ρ‡ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ количСством ΠΊΠΎΠ΄Π°.

Π’Ρ‹Π²ΠΎΠ΄: Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° – это Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для вашСго ΠΊΠΎΠ΄Π°, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ЕстСствСнно, это Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всС извСстныС просчСты. НС ΠΏΠ΅Ρ‡Π°Π»ΡŒΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π±Ρ‹Π²Π°ΡŽΡ‚ ошибки, Π½Π΅ Π±ΠΎΠΉΡ‚Π΅ΡΡŒ ΠΈΡ… Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈ Π½Π΅ опускайтС Ρ€ΡƒΠΊΠΈ, Ссли ΠΈΡ… слишком ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ любоС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· «боль ΠΈ ΠΎΠ³ΠΎΡ€Ρ‡Π΅Π½ΠΈΠ΅Β».

Π˜Π·ΡƒΡ‡Π°ΠΉΡ‚Π΅ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹, смотритС Π²ΠΈΠ΄Π΅ΠΎ с ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΉ ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-курсов, ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΌΠΈΡ‚Π°ΠΏΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ мСроприятия, ΠΎΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ Ρ‡Π΅Ρ€ΠΏΠ°ΠΉΡ‚Π΅ ΠΎΠΏΡ‹Ρ‚ – Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΡƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°Π²Π΅Ρ‚Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚. Π£Π΄Π°Ρ‡ΠΈ Π² ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
16 фСвраля 2018

Мобильная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python: ΠΎΠ±Π·ΠΎΡ€ Π΄Π²ΡƒΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²

Мобильная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Python – ΠΎΠ΄Π½ΠΎ ΠΈΠ· пСрспСктивных Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ. Π’ ΡΡ‚Π°Ρ‚ΡŒ...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
13 фСвраля 2018

10 ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡƒΡ‡Π°Ρ‚ вас ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π˜Ρ‰Π΅Ρ‚Π΅ курсы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°ΡƒΡ‡Π°Ρ‚ вас ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ? ΠœΡ‹ собрали Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
01 сСнтября 2017

15 классных ΠΈΠ΄Π΅ΠΉ для создания своСго мобильного прилоТСния

Если Π΄ΡƒΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои знания Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ...