Advanced Layout concepts
Вышел новый эпизод из серии MAD Skills Jetpack Compose, в котором разбирается фаза Layout.
Читать (En)
Вышел новый эпизод из серии MAD Skills Jetpack Compose, в котором разбирается фаза Layout.
Читать (En)
👍10🔥2👌2
7 iOS Projects to Become a Better iOS Developer
Несколько интересных open source проектов для изучения, реализованных на SwiftUI.
Для олдов – зацените проект OldOS 😉.
👉 Clean Architecture
👉 OldOS
👉 SwiftUICraft
👉 Velik
👉 OpenSesame
👉 Swiftui-2048
👉 ExpenseTracker
Читать (En)
Несколько интересных open source проектов для изучения, реализованных на SwiftUI.
Для олдов – зацените проект OldOS 😉.
👉 Clean Architecture
👉 OldOS
👉 SwiftUICraft
👉 Velik
👉 OpenSesame
👉 Swiftui-2048
👉 ExpenseTracker
Читать (En)
🔥10👍3👨💻1
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