Как стать автором
Обновить
27
0

Пользователь

Рефакторинг функций расширения в Kotlin: использование объекта-компаньона

Время на прочтение 7 мин
Количество просмотров 6.1K
Блог компании Badoo Программирование *Проектирование и рефакторинг *Разработка под Android *Kotlin *

В Kotlin есть отличная возможность использовать функции расширения, позволяющие писать более выразительный и компактный код. Под капотом это просто статические методы, которые могут навредить кодовой базе при некорректном использовании. В этой статье я расскажу, как работать с функциями расширения, которые со временем из небольших добавлений к коду трансформировались в монстров, содержащих бизнес-логику.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Комментарии 4

Влияние Kotlin data-классов на вес приложения

Время на прочтение 7 мин
Количество просмотров 10K
Блог компании Badoo Программирование *Разработка мобильных приложений *Разработка под Android *Kotlin *


Kotlin имеет много классных особенностей: null safety, smart casts, интерполяция строк и другие. Но одной из самых любимых разработчиками, по моим наблюдениям, являются data-классы. Настолько любимой, что их часто используют даже там, где никакой функциональности data-класса не требуется.


В этой статье я с помощью эксперимента постараюсь понять, какова реальная цена использования большого количества data-классов в приложении. Я попробую удалить все data-классы, не сломав компиляцию, но сломав приложение, а потом расскажу о результатах и выводах этого эксперимента.

Читать дальше →
Всего голосов 25: ↑23 и ↓2 +21
Комментарии 5

Композитная сборка как альтернатива buildSrc в Gradle

Время на прочтение 12 мин
Количество просмотров 11K
Блог компании Badoo Java *Разработка под Android *Kotlin *Системы сборки *


В Gradle — системе автоматической сборки — подход с buildSrc уже успел стать стандартом для реализации собственных плагинов и задач, а также создания общих конфигураций, например списков зависимостей и версий. Но у него есть существенный недостаток: при изменении buildSrc кеш сборки становится недействительным.


При этом Gradle предоставляет альтернативный подход — композитные сборки, лишённые этого недостатка. В этой статье я расскажу, как использовать композитную сборку вместо buildSrc и с какими сложностями можно столкнуться при миграции.

Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 7

Dynamic Delivery в многомодульных проектах (часть 2)

Время на прочтение 11 мин
Количество просмотров 5.5K
Блог компании Badoo Разработка мобильных приложений *Разработка под Android *Kotlin *


Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и занимаюсь внедрением Dynamic Features в наши проекты.


Я уже рассказывал, что такое Dynamic Delivery и какой у него API. В этой статье я подробнее опишу, как я использовал Dynamic Delivery в нашем приложении и почему интеграция оказалась такой лёгкой. В результате мне удалось уменьшить вес приложения на полмегабайта для 99% наших пользователей, превратив доступную для жителей определённого региона функцию в загружаемый модуль.

Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 0

Dynamic Delivery в многомодульных проектах (часть 1)

Время на прочтение 9 мин
Количество просмотров 6.7K
Блог компании Badoo Разработка мобильных приложений *Разработка под Android *Kotlin *


Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и занимаюсь внедрением Dynamic Features в наши проекты.


Dynamic Delivery — технология, позволяющая устанавливать и удалять части приложения прямо во время работы для того, чтобы уменьшить место, занимаемое приложением. Если какие-то функции не используются, то зачем пользователю иметь их на устройстве?


В первой части статьи я подробнее расскажу о Dynamic Delivery и его API: как загружать и удалять модули. Во второй части — разберу на примере, как я использовал Dynamic Delivery в нашем приложении и получил экономию на размере приложения в полмегабайта.

Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Комментарии 5

Бинарная совместимость Reaktive: как мы её обеспечиваем

Время на прочтение 10 мин
Количество просмотров 3.1K
Блог компании Badoo Программирование *Java *Разработка под Android *Kotlin *

Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin.


Любая библиотека должна по возможности соблюдать бинарную совместимость. Если разные версии библиотеки в зависимостях несовместимы, то результатом будут краши в рантайме. С такой проблемой мы можем столкнуться, например, при добавлении поддержки Reaktive в MVICore.



В этой статье я вкратце расскажу, что такое бинарная совместимость и каковы её особенности для Kotlin, а также о том, как её поддерживают в JetBrains, а теперь и в Badoo.

Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Комментарии 0

Continuous delivery для вашей Kotlin Multiplatform библиотеки

Время на прочтение 12 мин
Количество просмотров 3.5K
Блог компании Badoo Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *

Logo


Привет! Меня зовут Юрий Влад, я Android-разработчик в компании Badoo и принимаю участие в создании библиотеки Reaktive — Reactive Extensions на чистом Kotlin.


В процессе работы мы столкнулись с тем, что в случае с Kotlin Multiplatform continuous integration и continuous delivery требуют дополнительной настройки. Необходимо иметь в распоряжении несколько виртуальных машин на различных операционных системах, чтобы собрать библиотеку полностью. В этой статье я покажу, как настроить continuous delivery для вашей Kotlin Multiplatform библиотеки.

Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 2

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность