Clean Code — A practical approach
Практические примеры как писать чистый код. Там про нейминг, различные принципы, интерфейсы, тесты, рефакторинг и вот это вот всё.
Читать (En)
Практические примеры как писать чистый код. Там про нейминг, различные принципы, интерфейсы, тесты, рефакторинг и вот это вот всё.
Читать (En)
🔥13❤1👍1👎1
Android Basics with Compose
Тут Гугл сообщает, что опубликовали курс по Compose – Android Basics with Compose.
Курс предназначен для того, чтобы научить вас создавать приложения для Android с помощью Jetpack Compose, рекомендуемого современного набора инструментов, который упрощает и ускоряет разработку пользовательского интерфейса для Android.
Курс поделен на 8 разделов, каждый из которых охватывает различные аспекты разработки Compose и Android.
👉 Fundamentals of the Kotlin programming language
👉 Building basic user interfaces with Compose
👉 Working with data and state in Compose
👉 Using navigation to build apps with multiple screens
👉 Persisting data using Room and DataStore
👉 Fetching remote data and images
👉 Scheduling tasks with WorkManager
👉 Using Compose and Views side-by-side in the same app
Курс тут → Android Basics with Compose
Читать (En)
Тут Гугл сообщает, что опубликовали курс по Compose – Android Basics with Compose.
Курс предназначен для того, чтобы научить вас создавать приложения для Android с помощью Jetpack Compose, рекомендуемого современного набора инструментов, который упрощает и ускоряет разработку пользовательского интерфейса для Android.
Курс поделен на 8 разделов, каждый из которых охватывает различные аспекты разработки Compose и Android.
👉 Fundamentals of the Kotlin programming language
👉 Building basic user interfaces with Compose
👉 Working with data and state in Compose
👉 Using navigation to build apps with multiple screens
👉 Persisting data using Room and DataStore
👉 Fetching remote data and images
👉 Scheduling tasks with WorkManager
👉 Using Compose and Views side-by-side in the same app
Курс тут → Android Basics with Compose
Читать (En)
👍13🔥4❤3
Kotlin. Ключевые слова in и out. А так же что такое ковариантность и контрвариантность
Недавно публиковал статью про вариативность дженериков в Kotlin на английском языке.
В догонку, еще одна статья на русском языке с достаточно подробным разбором: ключевые слова in и out, что такое инвариантность, ковариантность и контрвариантность.
Читать (Ru)
Недавно публиковал статью про вариативность дженериков в Kotlin на английском языке.
В догонку, еще одна статья на русском языке с достаточно подробным разбором: ключевые слова in и out, что такое инвариантность, ковариантность и контрвариантность.
Читать (Ru)
👍10🔥2👏1
How Senior iOS Engineers Style Code: Performance And Clarity
Статья с примерами и некоторыми правилами оформления читаемого, качественного, а может и нет 😁 кода в iOS. С некоторыми конструкциями можно и поспорить, но в целом почитать будет полезно.
Читать (En)
Статья с примерами и некоторыми правилами оформления читаемого, качественного, а может и нет 😁 кода в iOS. С некоторыми конструкциями можно и поспорить, но в целом почитать будет полезно.
Читать (En)
👍6🔥3👏1
Как Android-разработчику избавиться от комплекса доменной неполноценности
Интресная статья про комплекс доменной неполноценности 😁 – это когда ваши слои толщиной с бумагу.
Полезные тезисы из статьи
• Любая архитектура привносит избыточность. Эта избыточность нужна для единообразия, а единообразие нужно для того, чтобы код был очевидным.
• Если уж вы ввязались в «Чистую архитектуру» (вас же никто не заставлял?), то юзкейсы придётся писать всегда, даже однострочные. Ну а тесты уже на вашей совести.
• В доменном слое не должно быть никаких намёков на то, как и кем будут отображаться данные.
• Какие у вас экраны и как они сменяются — дело презентационное, и точка. Если юзкейсу суждено быть однострочным, смиритесь с этим, не надо пытаться его искусственно раздуть.
Читать (Ru)
Интресная статья про комплекс доменной неполноценности 😁 – это когда ваши слои толщиной с бумагу.
Полезные тезисы из статьи
• Любая архитектура привносит избыточность. Эта избыточность нужна для единообразия, а единообразие нужно для того, чтобы код был очевидным.
• Если уж вы ввязались в «Чистую архитектуру» (вас же никто не заставлял?), то юзкейсы придётся писать всегда, даже однострочные. Ну а тесты уже на вашей совести.
• В доменном слое не должно быть никаких намёков на то, как и кем будут отображаться данные.
• Какие у вас экраны и как они сменяются — дело презентационное, и точка. Если юзкейсу суждено быть однострочным, смиритесь с этим, не надо пытаться его искусственно раздуть.
Читать (Ru)
👍19👎5🤔5🔥1
Список фишек Android Studio для ускорения разработки
Еще одна большая статья про интересные фишки Android Studio, которые могут позволить быстрее писать код, работать с кодом, работать с git`ом, навигировать по проекту и т.д.
👉 Хоткеи
👉 Плагины
👉 Шаблоны кода
👉 Подсветка логов
👉 ADB Idea
👉 Прекоммит для гит хука
Читать (Ru)
Еще одна большая статья про интересные фишки Android Studio, которые могут позволить быстрее писать код, работать с кодом, работать с git`ом, навигировать по проекту и т.д.
👉 Хоткеи
👉 Плагины
👉 Шаблоны кода
👉 Подсветка логов
👉 ADB Idea
👉 Прекоммит для гит хука
Читать (Ru)
🔥14👍9🤔1👨💻1
Communicating with fragments
Иногда на собесах спрашиваю про коммуникацию между фрагментами и как показывает практика, многие не знают о различных, нативных вариантах шаринга данных.
У Гугла есть раздел, в котором описаны все, возможные варианты. Не поленитесь, обязательно почитайте.
👉 Share data with the host activity
👉 Share data between a parent and child fragment
👉 Scoping a ViewModel to the Navigation Graph
👉 Fragment Result API
Читать (En)
Иногда на собесах спрашиваю про коммуникацию между фрагментами и как показывает практика, многие не знают о различных, нативных вариантах шаринга данных.
У Гугла есть раздел, в котором описаны все, возможные варианты. Не поленитесь, обязательно почитайте.
👉 Share data with the host activity
👉 Share data between a parent and child fragment
👉 Scoping a ViewModel to the Navigation Graph
👉 Fragment Result API
Читать (En)
👍19🔥4👨💻2
Breaking try-catch-finally in Kotlin
Статья про одну из особенностей Kotlin – не всегда выполнятеся блок finally, при совместном использовании sequence/try-finally.
Читать (En)
Статья про одну из особенностей Kotlin – не всегда выполнятеся блок finally, при совместном использовании sequence/try-finally.
Читать (En)
🤔15👍4🔥1
How to Handle Automatic Content Resizing when keyboard is visible in Jetpack Compose
Пример как в Jetpack Compose можно хендлить появление клавиатуры и подогнать нужным вам образом контент.
Читать (En)
Пример как в Jetpack Compose можно хендлить появление клавиатуры и подогнать нужным вам образом контент.
Читать (En)
🔥14👍6❤3
Live coding интервью для iOS разработчиков
Статья с разбором наиболее популярных задач для iOS разработчиков, которые можно встретить на этапе live coding.
👉 Thread-safe class
👉 DispatchGroup
👉 High-order functions
👉 Type erasure
👉 Any and Some
Читать (Ru)
Статья с разбором наиболее популярных задач для iOS разработчиков, которые можно встретить на этапе live coding.
👉 Thread-safe class
👉 DispatchGroup
👉 High-order functions
👉 Type erasure
👉 Any and Some
Читать (Ru)
🔥4❤1👍1👨💻1
Custom charts in Android using Jetpack Compose
Не знаю, есть ли уже готовые либы под графики на Jetpack Compose, но вот в статье можно посмотротеть как рисовать различные варианты кастомных через Canvas.
Читать (En)
Не знаю, есть ли уже готовые либы под графики на Jetpack Compose, но вот в статье можно посмотротеть как рисовать различные варианты кастомных через Canvas.
Читать (En)
👍17🔥1🆒1
С Международным женским днём, 8 марта!!! 💐
Милые дамы, поздравляю вас с Международным женским днём!!!
Желам вам профессиональных вершин, хорошего настроения и в достаточном количестве мужского внимания 😉. С Праздником🌷
Милые дамы, поздравляю вас с Международным женским днём!!!
Желам вам профессиональных вершин, хорошего настроения и в достаточном количестве мужского внимания 😉. С Праздником
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🥰3👍2🤮1
Mastering Kotlin : A Comprehensive Guide
Подборка с большим количеством статей на самые разные темы по Android и Kotlin.
👉 Room
👉 ViewModel, LiveData
👉 Navigation Component
👉 Kotlin Coroutines
👉 Kotlin Flow
👉 Hilt
👉 Service, Broadcast Receiver, WorkManager
👉 Ui Components
👉 Tools, Tips & Trick
Читать (En)
Подборка с большим количеством статей на самые разные темы по Android и Kotlin.
👉 Room
👉 ViewModel, LiveData
👉 Navigation Component
👉 Kotlin Coroutines
👉 Kotlin Flow
👉 Hilt
👉 Service, Broadcast Receiver, WorkManager
👉 Ui Components
👉 Tools, Tips & Trick
Читать (En)
👍11🔥3⚡1❤1
Different ways to handle Android Gradle dependencies
В статье рассматриваются разные, популярные способы работы с gradle зависимостями.
👉 manually solving
👉 ext
👉 buildSrc / Kotlin
👉 version catalog
Если вам это действительно нужно, я рекомендую использовать Version Catalog, хоть и у него есть минус в виде навигации. Напрягает, когда жмакаешь и не можешь попасть непосредственно в toml файлик.
Если вдруг пропустили, про способы и управление зависимостями я писал тут.
Читать (En)
В статье рассматриваются разные, популярные способы работы с gradle зависимостями.
👉 manually solving
👉 ext
👉 buildSrc / Kotlin
👉 version catalog
Если вам это действительно нужно, я рекомендую использовать Version Catalog, хоть и у него есть минус в виде навигации. Напрягает, когда жмакаешь и не можешь попасть непосредственно в toml файлик.
Если вдруг пропустили, про способы и управление зависимостями я писал тут.
Читать (En)
👍11🔥2❤1
Debugging and fixing a *huge* Jetpack Compose performance problem in my Sudoku-solver app
Интересная статья, как у чувака при одном изменении перерисовывались все поля в приложении Судоку на Jetpack Compose.
А виной тому следующее. Он думал, что вот такой 👇 формат записи сделает его _mutableList – immutableList. В результате получилось то, что получилось.
Казалось бы очевидная штука, но нет – имейте в виду 😉
Перевод от AppTractor тут.
Читать (En)
Интересная статья, как у чувака при одном изменении перерисовывались все поля в приложении Судоку на Jetpack Compose.
А виной тому следующее. Он думал, что вот такой 👇 формат записи сделает его _mutableList – immutableList. В результате получилось то, что получилось.
private var _mutableList: MutableList<Int> = mutableListOf()
val immutableList: List<Int>
get() = _mutableList
Казалось бы очевидная штука, но нет – имейте в виду 😉
Перевод от AppTractor тут.
Читать (En)
🤡8👍3🔥1🤮1💩1
Guide to Good Android App Architetture
Еще один гайд по архитектуре в Android (паттерны, слои, используемые библиотеки и т.д.).
Прям полноценным гайдом эту статью кажется сложно назвать, но исходники посмотреть можно для общего развития.
Код на GitHub → Android App Tutorials in Kotlin
Читать (En)
Еще один гайд по архитектуре в Android (паттерны, слои, используемые библиотеки и т.д.).
Прям полноценным гайдом эту статью кажется сложно назвать, но исходники посмотреть можно для общего развития.
Код на GitHub → Android App Tutorials in Kotlin
Читать (En)
🥱18👍7👎4❤1🔥1🤔1👌1
Я тут проект разбиваю на модули и вот уже который день вожусь с Dagger`ом и хочу вам сказать, что задачка не из легких 😃 Одно дело, когда вы приходите на готовый проект, в котором уже всё ядро выстроено и совсем другое дело дробить с нуля относительно большой проект.
Раскидать проект на модули, кажется много ума не надо, а вот настроить Dagger + грамотно выстроить связи, чтоб удобно было всё инитить, чтоб модули были независимыми и переиспользуемыми – задачка уже куда сложнее.
Накидаю сюда ссылки, которыми пользуюсь, возможно кому-то пригодится. Некоторые из них довольно старые, но могут быть актуальные.
• Многомодульность и Dagger 2. Лекция Яндекса
• Иерархия модулей: как выстроить связи между модулями в Android
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
• Многомодульность в Android с точки зрения архитектуры
• Еще раз про многомодульность Android-приложений
• Dagger in Multi-Module Clean Applications
• Multi-Modules
Раскидать проект на модули, кажется много ума не надо, а вот настроить Dagger + грамотно выстроить связи, чтоб удобно было всё инитить, чтоб модули были независимыми и переиспользуемыми – задачка уже куда сложнее.
Накидаю сюда ссылки, которыми пользуюсь, возможно кому-то пригодится. Некоторые из них довольно старые, но могут быть актуальные.
• Многомодульность и Dagger 2. Лекция Яндекса
• Иерархия модулей: как выстроить связи между модулями в Android
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Многомодульный BDSM: как связать Gradle модули и как с ними общаться после этого?
• Многомодульность в Android с точки зрения архитектуры
• Еще раз про многомодульность Android-приложений
• Dagger in Multi-Module Clean Applications
• Multi-Modules
🔥30👍7❤4🤡2🤮1💩1
Automating dependency updates in a Compose project
Тут чувак из Гугла рассказывает как они автоматизуруют обновления зависимостей в своих проектах с помощью Renovate.
Renovate автоматически анализирует ваш проект, затем проверяет доступность более новых версий для ваших зависимостей, обновляет и делает Pull Request в вашу репу, вам остается только жмакнуть кнопку, если все ок. Могут возникнуть траблы, если группа связанных зависимостей может иметь разные версии, как с тем же Compose / Kotlin. Как такое решать, как раз в статье и рассказывается.
Тулза тут → Renovate
Читать (En)
Тут чувак из Гугла рассказывает как они автоматизуруют обновления зависимостей в своих проектах с помощью Renovate.
Renovate автоматически анализирует ваш проект, затем проверяет доступность более новых версий для ваших зависимостей, обновляет и делает Pull Request в вашу репу, вам остается только жмакнуть кнопку, если все ок. Могут возникнуть траблы, если группа связанных зависимостей может иметь разные версии, как с тем же Compose / Kotlin. Как такое решать, как раз в статье и рассказывается.
Тулза тут → Renovate
Читать (En)
🔥6👍2🤔1
Как мы попробовали Yatagan
Тут ребята из Циан затестили новый инструмент для DI от Яндекса – Yatagan, делятся опытом.
Если я всё правильно посмотрел, практически по всем вариантам Yatagan выигрывает в скорости сборки. В некоторых кейсах небольшая разница, но все же.
Читать (Ru)
Тут ребята из Циан затестили новый инструмент для DI от Яндекса – Yatagan, делятся опытом.
Если я всё правильно посмотрел, практически по всем вариантам Yatagan выигрывает в скорости сборки. В некоторых кейсах небольшая разница, но все же.
Читать (Ru)
👍15💩14🔥3🤔3🤮1🤡1
7 Jetpack Compose Projects to Become a Better Android Developer
Еще одна подборка проектов реализованных на Jetpack Compose, перенять опыт и прокачать скилл.
👉 Tivi
👉 Stack
👉 CoffeeDrinks
👉 Newzz
👉 JetSpotify
👉 JetDelivery
👉 RickNMortyCompose
Читать (En)
Еще одна подборка проектов реализованных на Jetpack Compose, перенять опыт и прокачать скилл.
👉 Tivi
👉 Stack
👉 CoffeeDrinks
👉 Newzz
👉 JetSpotify
👉 JetDelivery
👉 RickNMortyCompose
Читать (En)
👍14❤3🔥2
Советы по работе с Gradle для Android-разработчиков
Я продолжаю разбивать проект на модули и в процессе возникает ну очень много траблов с gradle, зависимостями и прочей хренью.
Вот наткнулся на отличную статью, в которой на человеческом языке рассказывают про различные нюансы работе с gradle, как правильно структурировать свои проекты и писать build-скрипты.
👉 Не редактируйте Gradle-скрипты через IDE
👉 Обращайте внимание на соглашение по именованию модулей
👉 Что выбрать: Kotlin vs Groovy
👉 Как прописывать зависимости в многомодульных проектах
👉 Как обновлять зависимости
👉 Старайтесь не использовать feature-флаги в build config
👉 Несколько слов про базовую структуру проекта
👉 Не забывайте про matchingFallbacks
👉 Убирайте ненужные build variant
👉 Как написать Gradle-плагин для CI на примере gitlab
Некоторые штуки возможно вкусовщина или могут зависить от проекта + статья от 2021, что-то может быть не актуально из-за версий gradle, но в целом статья толковая.
Читать (Ru)
Я продолжаю разбивать проект на модули и в процессе возникает ну очень много траблов с gradle, зависимостями и прочей хренью.
Вот наткнулся на отличную статью, в которой на человеческом языке рассказывают про различные нюансы работе с gradle, как правильно структурировать свои проекты и писать build-скрипты.
👉 Не редактируйте Gradle-скрипты через IDE
👉 Обращайте внимание на соглашение по именованию модулей
👉 Что выбрать: Kotlin vs Groovy
👉 Как прописывать зависимости в многомодульных проектах
👉 Как обновлять зависимости
👉 Старайтесь не использовать feature-флаги в build config
👉 Несколько слов про базовую структуру проекта
👉 Не забывайте про matchingFallbacks
👉 Убирайте ненужные build variant
👉 Как написать Gradle-плагин для CI на примере gitlab
Некоторые штуки возможно вкусовщина или могут зависить от проекта + статья от 2021, что-то может быть не актуально из-за версий gradle, но в целом статья толковая.
Читать (Ru)
🔥11👍8❤3⚡2