𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩
11 subscribers
54 photos
2 videos
5 files
46 links
𝘼𝙣𝙙𝙧𝙤𝙞𝙙 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙢𝙚𝙣𝙩 & 𝙇𝙞𝙛𝙚𝙨𝙩𝙮𝙡𝙚
Download Telegram
#отчёт
День 120:
$Программирование👨‍💻:
Всего 6.32 часа
(4.21 часа практика, 2.11 часа теория)

Kotlin база:
Сегодня, как и планировал, разбирался с массивами и коллекциями. Изучил их различия, хотя нельзя сказать что освоил на практике)
Вроде пересмотрел 3 самых разных урока, попрактиковался, но перейдя на Jetbrains Academy, мне дали "простенькую" задачу и я провалился. Час над ней сидел, но всё же успешно решил её. Дальше не продвинулся пока, буду продолжать долбить коллекции и массивы.
Принцип "Один курс или Одна статья" не работает. Учиться и воспринимать информацию нужно с разных источников, тогда она постепенно устаканиться в голове.

Android:
Возвращаюсь к Android Studio. Сегодня решил повторить темы "Навигации фрагментов" и "Splash Screen". Завтра буду пробовать самостоятельно прописывать корутины. Может показаться, что меня бросает "туда-сюда" как флюгер, и так оно и есть😅 В последнее время понял, мне чтобы запомнить информацию надо раз 5 это повторить самостоятельно своими руками, а не спешить сразу к новому материалу.
Сейчас стараюсь ежедневно перед изучением новой темы, обязательно прописать старую, когда осознаю что всё понял - иду дальше.

$Английский📚:
Breaking Bad(Во все тяжкие) с английскими субтитрами - 3 сезон, 12 серия.
(53 минуты).

$Дополнительные активности💪:
-Силовые тренировки +1 (17).
-Утренняя разминка +1(29).
👍4
#roadmap
Всем доброго времени суток👋
Данный пост будет немного нестандартным, этому есть причина...

Дело в том, что ещё на прошлой неделе я получил приглашение на собеседование в одну компанию в моём городе на позицию Android trainee(стажёр).
Этап отбора был стандартным: Технический собес, проверка Английского и оглашение результатов.

Скажу честно, технические знания очень хромают, т.к. не имел особой структуры, а изучал как придётся и всего понемногу)
Тем не менее, есть уже 2 практически готовых pet-project на Github и одно приложение в Play Market + огромное желание обучаться :)
Чувствую, придётся сидеть круглыми сутками над кодом и обучением, но мне это в радость, лишь бы набираться опыта от более опытных разработчиков. Пока неизвестно, буду на удалёнке или в офисе, в понедельник пойму точно.


Что будет с блогом?
Времени на него точно будет не хватать, поэтому пока углублюсь в стажировку, но планы есть и одно из них создать комьюнити, о подробностях сообщу позже

Сейчас на выходных буду штудировать всевозможную теорию по Kotlin и практиковаться по каждой теме, так сказать освежить знания. Буду идти с самого начала, чтобы максимально подготовиться.

Спасибо всем кто следил и поддерживал🤝

To be continued...
🔥6👍2
Привіт усім👋
Давно не публікував постів та різних матеріалів, адже цей канал слугував стартом для кар'єри, певний час не бачив сенсу щось тут писати :)

Отже, за цей час (близько 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 процес⚡️