Вспоминаем стандартные делегаты в Kotlin. В этой статье вы узнаете почему стоит использовать LazyThreadSafetyMode.NONE c lazy в большинстве случаев.
https://medium.com/androiddevelopers/built-in-delegates-4811947e781f
https://medium.com/androiddevelopers/built-in-delegates-4811947e781f
Medium
Built-in Delegates
Kotlin Vocabulary: Delegates part 2
Новая библиотека от Джейка Вортона для проверки, что when покрывает все случаи. Главное теперь не забыть указать правильную аннотацию.
https://github.com/cashapp/exhaustive
https://github.com/cashapp/exhaustive
GitHub
GitHub - cashapp/exhaustive: An annotation and Kotlin compiler plugin for enforcing a when statement is exhaustive
An annotation and Kotlin compiler plugin for enforcing a when statement is exhaustive - cashapp/exhaustive
Trello делится своей стратегий по работе с Git, призванной решить проблему с исправлением багов в релизах.
https://blog.danlew.net/2020/11/11/trello-androids-git-branching-strategy/
https://blog.danlew.net/2020/11/11/trello-androids-git-branching-strategy/
Dan Lew Codes
Trello Android's Git Branching Strategy
Many years ago, Trello Android used a fairly simple git branching strategy - or
so we thought at the time.
We would develop entirely off main using pull requests. main was intended to be
releasable at all times, though we would occasionally create a release/x.y.z…
so we thought at the time.
We would develop entirely off main using pull requests. main was intended to be
releasable at all times, though we would occasionally create a release/x.y.z…
Шпаргалка по опциям JVM. Увеличиваем ограничение памяти без смс, включаем и выключаем ассерты и многое другое.
https://dev.to/mpeng3/matt-s-tidbits-84-jvm-options-explained-5d9g
https://dev.to/mpeng3/matt-s-tidbits-84-jvm-options-explained-5d9g
DEV Community
Matt's Tidbits #84 - JVM Options, explained
Last time I wrote about some strange unit test failures. This week I’d like to explain some of the JV...
Инструкция по созданию красивого онбординга с анимациями от Lottie, ViewPager2 и компонентами для навигации.
https://dev.to/kulloveth/android-animation-onboarding-screen-with-lottie-animation-navigation-component-and-viewpager2-1dhb
https://dev.to/kulloveth/android-animation-onboarding-screen-with-lottie-animation-navigation-component-and-viewpager2-1dhb
DEV Community
Android Animation in Kotlin: Onboarding screen with Lottie Animation, Navigation Component and ViewPager2
Animation in android is a way to make your app lively while passing information to the user. There ar...
Приглашаем на онлайн-хакатон по Flutter Liga Stavok Flutterthon
🧩 Основная задача: создать систему виджетов спортивных событий, которые будут отображать статистику, как текущую, так и изменяющуюся в режиме реального времени.
Тебя ждет:
— интересная задача
— 5 дней для работы в максимально комфортных условиях
— знакомства и работа с экспертами
— призовой фонд 160 000 рублей
— возможность трудоустройства
— крутой мерч
📱 К участию приглашаются Flutter-разработчики, UI/UX-дизайнеры, аналитики.
Присоединяйтесь, если у вас есть любой коммерческий опыт в мобильной разработке и желание развиваться во Flutter.
Покажи всему Flutter-комьюнити России, на что ты способен!
Регистрация до 25 ноября: Зарегистрироваться
🧩 Основная задача: создать систему виджетов спортивных событий, которые будут отображать статистику, как текущую, так и изменяющуюся в режиме реального времени.
Тебя ждет:
— интересная задача
— 5 дней для работы в максимально комфортных условиях
— знакомства и работа с экспертами
— призовой фонд 160 000 рублей
— возможность трудоустройства
— крутой мерч
📱 К участию приглашаются Flutter-разработчики, UI/UX-дизайнеры, аналитики.
Присоединяйтесь, если у вас есть любой коммерческий опыт в мобильной разработке и желание развиваться во Flutter.
Покажи всему Flutter-комьюнити России, на что ты способен!
Регистрация до 25 ноября: Зарегистрироваться
Flutterthon
Вступай в команду Flutter «Лиги Ставок»
В Android 11 Google переделала API для Bubble Notification, а также сделала их доступными не только разработчикам. В статье описание, как встроить подобные уведомления в своё приложение.
https://proandroiddev.com/uncovering-the-bubbles-api-c28ce69ec457
https://proandroiddev.com/uncovering-the-bubbles-api-c28ce69ec457
Medium
Uncovering the Bubbles API
Bubbles were created to provide the user a simple and easy way to participate in conversations.
Если вам когда либо было необходимо сделать View чёрно-белой, то эта статья для вас.
https://proandroiddev.com/the-easiest-way-to-toggle-complete-layout-to-grayscale-on-android-fa86ac0a754
https://proandroiddev.com/the-easiest-way-to-toggle-complete-layout-to-grayscale-on-android-fa86ac0a754
Medium
The easiest way to toggle complete layout to grayscale on Android
Low effort and scalable at the same time!
Помогаем компилятору лучше понимать наш код с помощью контрактов в Kotlin.
https://proandroiddev.com/how-to-make-the-compiler-smarter-b37f414875ac
https://proandroiddev.com/how-to-make-the-compiler-smarter-b37f414875ac
Medium
How to Make the Compiler Smarter
Add effects to your functions with Kotlin Contracts
Серия статей, посвященная внутреннему устройству Binder в Android. Хороший повод, чтобы подробно изучить детали межпроцессного взаимодействия.
https://proandroiddev.com/binders-in-android-part-ii-reference-counting-death-recipients-19d55c8356c3
https://proandroiddev.com/binders-in-android-part-ii-reference-counting-death-recipients-19d55c8356c3
Medium
Binders In Android (part II): Reference Counting & Death Recipients
This is the second part of multi-part series about Binders in Android. It is highly recommended to read part-I (if you haven’t already)…
Скорее всего, читая исходный код View.java, вы встречали, что во многих местах вместо enum используется Int с аннотациями @IntDef. В статье рассказываться откуда это взялось и для чего используется.
https://medium.com/default-to-open/android-then-and-now-intro-intdef-enums-bca22d5cca56
https://medium.com/default-to-open/android-then-and-now-intro-intdef-enums-bca22d5cca56
Medium
Android Then and Now: Intro, @IntDef & Enums
Android Development has changed a lot over the years. Let’s look back at how things were, and explore what’s changed! Today: Enums.
В Android нет системного API для определения того, что пользователь сделал скриншот приложения, однако с помощью различных приемов это все таки можно сделать. Инструкция в статье.
https://proandroiddev.com/detect-screenshots-in-android-7bc4343ddce1
https://proandroiddev.com/detect-screenshots-in-android-7bc4343ddce1
Medium
Detect Screenshots in Android
Recently I was figuring out ways to detect screenshots in Android. It turns out there is no official API to do that but there are…
Переходим с LiveData на StateFlow и SharedFlow, которые стали доступны в новой версии kotlinx.coroutines 1.4.0.
https://proandroiddev.com/should-we-choose-kotlins-stateflow-or-sharedflow-to-substitute-for-android-s-livedata-2d69f2bd6fa5
https://proandroiddev.com/should-we-choose-kotlins-stateflow-or-sharedflow-to-substitute-for-android-s-livedata-2d69f2bd6fa5
Medium
Substituting Android's LiveData: StateFlow or SharedFlow?
Kotlin Coroutines recently introduced two Flow types, SharedFlow and StateFlow, and Android's community started wondering about…
Если вам не нравится Jetpack Navigation, надоел Cicerone и хочется посмотреть новый фреймворк для навигации, то возможно вам понравится Simple-Stack. Подробнее в статье.
https://medium.com/@Zhuinden/simplified-android-development-using-simple-stack-6e44ce808c35
https://medium.com/@Zhuinden/simplified-android-development-using-simple-stack-6e44ce808c35
Medium
Simplified Android Development Using Simple-Stack
What is Simple-Stack, and how does it simplify navigation and scoping in Android applications?
Цикл статей про новую архитектуру для кроссплатформенных приложений D-KMP, основанную на декларативном UI, Kotlin Multiplatform и MVI.
https://danielebaroncelli.medium.com/the-future-of-apps-declarative-uis-with-kotlin-multiplatform-d-kmp-part-1-3-c0e1530a5343
https://danielebaroncelli.medium.com/the-future-of-apps-declarative-uis-with-kotlin-multiplatform-d-kmp-part-1-3-c0e1530a5343
Medium
The future of apps: Declarative UIs with Kotlin MultiPlatform (D-KMP) — Part 1/3
A 3-part article explaining the new D-KMP architecture, based on DeclarativeUIs, Kotlin MultiPlatform and MVI pattern.
В последнее время в приложениях с чатом стали появляться градиентные анимации для сообщений, которые изменяются по мере скролла, например в Instagram. По ссылке краткий гайд по реализации подобных анимаций.
https://medium.com/design-bootcamp/instagram-like-chat-theme-animation-32cc56b483ed
https://medium.com/design-bootcamp/instagram-like-chat-theme-animation-32cc56b483ed
Medium
Case study: Building an Instagram-like chat theme animation
Recently Instagram introduced a new chat themes feature which animates colors when we scroll. An example can be seen above.
Статья о том как отключить автоматическую генерацию BuildConfig в модулях проекта, и в каких случаях это может быть полезно.
https://medium.com/dipien/stop-generating-the-buildconfig-on-your-android-modules-7d82dd7f20f1
https://medium.com/dipien/stop-generating-the-buildconfig-on-your-android-modules-7d82dd7f20f1
Medium
Stop generating the BuildConfig on your Android modules
Why generating the BuildConfig class is a bad idea
Полный гайд по Dagger Hilt: подключение, преимущества над обычным Dagger 2 и множество примеров использования.
https://medium.com/androiddevelopers/a-pragmatic-guide-to-hilt-with-kotlin-a76859c324a1
https://medium.com/androiddevelopers/a-pragmatic-guide-to-hilt-with-kotlin-a76859c324a1
Medium
A pragmatic guide to Hilt with Kotlin
An easy way to use dependency injection in your Android app
Подробный разбор StateFlow и SharedFlow: для каких случаев подходит тот или иной тип, а для каких лучше и вовсе использовать Channel.
https://elizarov.medium.com/shared-flows-broadcast-channels-899b675e805c
https://elizarov.medium.com/shared-flows-broadcast-channels-899b675e805c
Medium
Shared flows, broadcast channels
See how shared flows made broadcast channels obsolete, but regular channels cover and will continue to support an important use-case.
Цикл статей, который на примере реализации кастомного BottomNavigationView, показывает как аккуратное использование системных UI компонент позволяет сильно уменьшить количество необходимого кода.
https://blog.stylingandroid.com/shapedbottomnavigationview-part-1/
https://blog.stylingandroid.com/shapedbottomnavigationview-part-1/
Styling Android
ShapedBottomNavigationView – Part 1
Sometimes we have designs which are not possible using the Framework or Material Components widgets as-is. While we can subclass those widgets to adapt them, there can sometimes be some hidden pitfal