Streamlining User Actions with the Command Pattern: A Practical Guide
Отличная статья с примером, как можно оптимизировать код действий пользователя с помощью паттерна Command. Актуально когда у вас может быть много экшенов.
В статье приводится пример на Jetpack Compose, но на самом деле применимо везде.
Читать (En)
Элемент выбора эмодзи (aka EmojiPicker) для iOS как в MacOSСтатья от нашего читателя, в которой он делится опытом разработки собственной библиотеки(aka EmojiPicker) в стиле MacOS и с какими трудностями столкнулся в процессе.
Библиотека на GitHub → MCEmojiPickerЧитать (Ru)
Вопросы и ответы для собеседования по Kotlin
Тут на Хабре стартанули цикл статей с вопросами/ответами для собеседования по Kotlin.
Вышло уже 2 части с базовыми вопросами (Data классы, object, Null safety, Any, Unit, Nothing, Extensions и т.д.).
👉 Часть 1
👉 Часть 2
10 Useful Kotlin Extension Functions for Android Developer
Еще один большой набор полезных Kotlin Extension функций для удобного использования.
👉 Print to Logcat
👉 View Visibility
👉 Toast Message
👉 Snackbar Message
👉 Hide Keyboard
👉 dp and px conversion
👉 Digit, Alphabetic, and Alphanumeric Check
👉 isNull, ifNull
👉 Date Formatter
Читать (En)
Всем, привет👋
Проводим небольшое исследование по просьбе одной уважаемой компании: хотим выяснить, кого вы считаете мировым лидером среди технологических компаний.
Поделитесь своим мнением — а мы потом поделимся результатами.
Пройти короткий (всего 2 вопроса, займет меньше минуты)опрос можно вот тут
Spot on: Android 14 adds highlights to TextViews
В Android 14 появится возможность выделять текст в TextView. Аналогично тому, как мы сейчас делаем через Spannable.setSpan().
Где-то в чатиках видел, что некоторым не зашло, но мне кажется это будет гораздо удобней, чем через span.
Дока тут → HighlightsЧитать (En)
🆒Создаём приложение-таймер за 60 минут с использованием MVVM, StateFlow и Coroutines со звуковой сигнализацией и вибрацией
— 23 марта в 20:00 мск на бесплатном вебинаре мы создадим приложение для варки яиц до определенной степени готовности. Выбираем степень готовности, приложение показывает необходимое время и при нажатии на кнопку начинает отсчет. По истечение времени приложение подает звуковой сигнал и вибрирует.
Итого — рассмотрим устройство простого Android-приложения. Разберем современную архитектуру MVVM с использованием Coroutines и StateFlow. В результате создадим приложение, полезное в быту.
👉 Будет полезно тем, кто начинает изучать Android и хочет познакомиться с онлайн-курсом по Android на Kotlin с нуля получше.
Регистрируйтесь сейчас — напомним перед вебинаром: https://otus.pw/b8BO/Реклама. Информация о рекламодателе на сайте www.otus.ru
Как устроены собеседования в ITВидос от команды Tinkoff Mobile про процесс собеседования в IT. Зачем нужны те или иные блоки, что ожидают от кандидата, важность софт скиллов и т.д.
Если вам интересна тема собесов, как со стороны кандидата, так и со стороны интервьюера, вероятно найдете для себя что-то полезное.
Смотреть 📹
Разбираем ошибки начинающих iOS-разработчиков
Большая статья с разбором нескольких наиболее популярных ошибок начинающих iOS-разработчиков. К чему приводят такие ошибки и как их можно избежать.
👉 Связь между Storyboard и кодом
👉 Использование Auto Layout
👉 Избыточный force unwrapping
👉 Использование guard
👉 Использование switch
👉 Ошибки при реализации паттерна delegate
👉 Связи между компонентами
Читать (Ru)
A couple of interesting things from Telegram Android app source codeТут разработчик исследовал исходники телеги и поделился интересными решениями.
👉 Определение перформанса девайса на основе cpu сount
👉 Нестандартные анимации через кастомные вьюшки на канвасе
На счет анимаций через кастомные вьюхи. На самом деле это довольно распрастранённый подход, с помощью которого можно делать крутые штуки. Главное правильно писать кастомные вьюхи, не плодить лишнего в onDraw(), чтоб не потерять в производительности.
Вот тут еще одна статья с исследованием исходников Telegram про то, как они оптимизирует изображения перед отправкой на сервер.
Читать (En)
Готовим FeatureToggle для Android
Еще один пример реализации FeatureToggle для Android, с настройкой доступности фичей через firebase remote config.
Пример кода из статьи на GitHub → FeatureToggleЧитать (Ru)
Modern Android Development in 2023
Большая статья с инструментами, библиотеками и технологиями для разработки современных приложений, с учетом последних тендеций 2023 года.
👉 Android Jetpack
👉 Jetpack Compose
👉 Architecture Patterns
👉 Clean Architecture
👉 Dependency Injection
👉 Modularization
👉 Local Store
Читать (En)
How Gradle Works Part 3 - Build Script
В дополнении к сегодняшнему посту про gradle, еще одна, новая статья от Gradle команды про синтаксис скриптов и про то, что происходит во время выполнения скрипта сборки.
Читать (En)
Советы по работе с Gradle для Android-разработчиков
Я продолжаю разбивать проект на модули и в процессе возникает ну очень много траблов с gradle, зависимостями и прочей хренью.
Вот наткнулся на отличную статью, в которой на человеческом языке рассказывают про различные нюансы работе с gradle, как правильно структурировать свои проекты и писать build-скрипты.
👉 Не редактируйте Gradle-скрипты через IDE
👉 Обращайте внимание на соглашение по именованию модулей
👉 Что выбрать: Kotlin vs Groovy
👉 Как прописывать зависимости в многомодульных проектах
👉 Как обновлять зависимости
👉 Старайтесь не использовать feature-флаги в build config
👉 Несколько слов про базовую структуру проекта
👉 Не забывайте про matchingFallbacks
👉 Убирайте ненужные build variant
👉 Как написать Gradle-плагин для CI на примере gitlab
Некоторые штуки возможно вкусовщина или могут зависить от проекта + статья от 2021, что-то может быть не актуально из-за версий gradle, но в целом статья толковая.
Читать (Ru)
Как мы попробовали YataganТут ребята из Циан затестили новый инструмент для DI от Яндекса – Yatagan, делятся опытом.
Если я всё правильно посмотрел, практически по всем вариантам Yatagan выигрывает в скорости сборки. В некоторых кейсах небольшая разница, но все же.
Читать (Ru)
Automating dependency updates in a Compose project
Тут чувак из Гугла рассказывает как они автоматизуруют обновления зависимостей в своих проектах с помощью Renovate.
Renovate автоматически анализирует ваш проект, затем проверяет доступность более новых версий для ваших зависимостей, обновляет и делает Pull Request в вашу репу, вам остается только жмакнуть кнопку, если все ок. Могут возникнуть траблы, если группа связанных зависимостей может иметь разные версии, как с тем же Compose / Kotlin. Как такое решать, как раз в статье и рассказывается.
Тулза тут → RenovateЧитать (En)