Android Broadcast
14.1K subscribers
3.43K photos
310 videos
11 files
5.73K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Square #Payments #SDK

Square запустила SDK для платежей в приложение под Android и iOS

Ребята из Square подарили нам множество замечательных Open Source библиотек, а теперь сделали собственное SDK чтобы вы могли проводить платежи прямо внутри вашего приложения. Единственное что вам надо помнить - политику по оплате Google Play.
#Dagger #DependencyInjection #Square

Dagger Assisted Injection

Для всех те кто решал проблему Dagger 2 с передачей параметров в зависимости, Square сделали толковое решение - Assisted Inject, которое позволяет избавиться от создания дополнительных компонентов или не задавать зависимости через setter-ы после их создания.

Рассмотрим пример:
class TextPresenter
@AssistedInject constructor(
@Assisted val view: TextView,
@Assisted val text: String,
val textDecorator: TextDecorator
)

Параметры view и text не находятся в графе зависимостей и поэтому мы не можем получить оттуда, и мы помечаем их с помощью @Assisted, что говорит о том что они будут задаваться динамически.

Следующим шагом нам нужна фабрика для создания нашей зависимости:
class TextPresenter {
@AssistedInject.Factory interface Factory {
fun create(
view: TextView,
text: String
): TextPresenter
}
}

Фабрика позволит нам создавать зависимости, передавая туда необходимые параметры.

Библиотека сейчас находится в версии 0.3.3, но работает без проблем, проверено личной мной на production проекте.

Все подробности полной реализации вы можете найти в статье.

Gtihub Assisted Inject
#DependencyInjection #Dagger #AssistedInject #Square

Brave New Android World with AssistedInject

Если вы активно используете Dagger, то скорее всего сталкивались с проблемой передачи зависимостей вне графа, например передать id в Presenter. Раньше это решалось те, что создавался новый Dagger компонента, куда этот параметр передается.

Решить эту проблему можно с использование Factory, но это множество boileplate кода. Исправляет это библиотека AssistedInject, а в статье разбирается как ее использовать и как ее применить в Android.