𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩
11 subscribers
54 photos
2 videos
5 files
46 links
𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩 & 𝙇𝙞𝙛𝙚𝙨𝙩𝙮𝙡𝙚
Download Telegram
Привіт усім👋
Давно не публікував постів та різних матеріалів, адже цей канал слугував стартом для кар'єри, певний час не бачив сенсу щось тут писати :)

Отже, за цей час (близько 3-х років), відбулось багато різних подій в моєму житті, в тому числі позитивних змін в кар'єрному плані. Змінено велику кількість проектів, отриманий цінний досвід, яким мені хотілося б ділитись і надалі.

В тому числі, цей канал слугуватиме місцем, де будуть публікуватись усілякі новинки Android розробки, адже їх доволі багато. Також цікаві статті, відеоматеріали - усе на що натрапляю🙂

Перше, чим би хотів поділитись - цікава стаття про Compose Lifecycle (https://medium.com/@mohamedelshawaf/jetpack-compose-lifecycle-a-friendly-guide-6d70335f1afd)
Як ви можете бачити на малюнку, цей процес дещо відрізняється від того, з яким ми працювали у Activity/Fragments
Тому дуже раджу ознайомитись, а хто вже розуміється - освіжити знання😉
Дуже цікавий абзац про послідовність викликів методів Modifier у компоузебл функціях.

Раджу прочитати статтю - https://dou.ua/forums/topic/54451/
Тут розглянуто використання Detekt, як статичного аналізатора коду для Android проєктів.
Нещодавно довелось попрацювати із ним, дуже раджу, особливо якщо впроваджуєте Compose, є велика кількість правил, які допоможуть підтримувати код чистим і якісним.
Знову Compose і на цей раз зупинимось на цікавій темі "Фази рендерингу UI у Compose"
Ця тема є одним із ключових елементів для розуміння відмальовки UI, не лише елементів (TextField, Button), а й Layouts.

Я зробив невелику вижимку, а саме 3 пункти рендерингу:
- Composition
- Layout
- Drawing

Фаза Композиція - що саме відмальовуємо, наші Composable функції перетворюються на композицію, яка вже відображається на екрані у вигляді наших кнопок, тексті і т.д.
Фаза Layout - Де усі наші елементи будуть відображатись? Вимірюються усі дочірні елементи (кнопки, тексти), а саме їх розмір, параметри і згодом на основі цієї інформації наш лейаут буде розуміти, який потрібно задати розмір;
Фаза Відмальовки - Як саме відмалювати це все на екрані? Які задати межі для лейаута та кожного з елементів, як помістити усе це в рамках екрану - це все про заключну фазу Drawing.

Сподіваюсь, ця тема була корисною для Вас, залишайте реакції😉
Дуже важливо розуміти, як оптимізувати Jetpack Compose, щоб покращити швидкодію додатку.

Із цим допоможе декілька ключових елементів:
- Phase rendering. Розуміння фаз рендерингу UI, те про що ми говорили раніше із вами
- Baseline profiles. Допоможе пришвидшити запуск вашого коду за рахунок уникнення JIT (just in time) компіляції
- Stability. Допоможе нам позбутись великої кількості рекомпозицій

Ось офіційна документація, яка допоможе краще розібратись у темі - https://developer.android.com/develop/ui/compose/performance#three-phases

Пропоную звернути увагу на абзац "Best practices".
Це саме те, що ви зможете застосувати на робочих та власних проектах для підвищення перфомансу вашого Compose коду😉
Корисний PDF файл із порадами, як використовувати Jetpack Compose, враховуючи усі можливі edge cases.
Раджу зберегти😉
Цікава річ, про яку розумів завжди, але поглиблено не читав.
Kotlin Type Inference - це змога компілятору, автоматично визначати тип заданої змінної без явного "визначення" типу даних.
Це також стосується типу "return type" з методів, компілятор самостійно розуміє тип "повертаємого" значення і нам не потрібно вказувати це вручну.
Наразі ця фіча використовується в багатьох мовах програмування, таких як C++ (since 3.0, використовуючи var), Java(since 10.0, використовуючи var), Go, Kotlin, Rust, Scala, Swift, TypeScript і багато інших

До речі, примітка, із виходом нової версії Kotlin 2.0+ ми отримали K2 compiler, який за словами основних джерел помітно покращив Type inference процес⚡️