2014-11-19 4 views
53

Dagger 2 находится за углом, но имеющиеся примеры даже не компилировать сразу коробку, и документация является копипаст замены от Dagger 1.Dagger 2 примера

Кто-нибудь есть пример правильное приложение, работающее с кинжалом Google 2?

+0

Примеры компилируются здесь. Какие ошибки вы видите? –

+0

Есть еще один, но завтра я добавлю конкретный пример. Для справки, ссылки в проекте lib с помощью multiDex, но использующие их в главном проекте приложения, в последней версии Android Studio, BuildTools 21.1. + –

+0

Что касается зависимостей, предоставляется кинжал-компиляция, но кинжал скомпилирован как в проекте библиотеки. –

ответ

27

Я только что опубликовал образец приложения на основе Gradle, который объединяет Dagger2, retrolambda, butterknife и lombok. Вы можете найти его здесь: https://github.com/mgrzechocinski/dagger2-example.

Надеется, что это поможет :)

+1

Ницца! Просто остерегайтесь Lombok и общих обработчиков аннотаций в приложениях Multidex, они, как известно, имеют большие ошибки в Dalvik. –

+3

Было бы здорово, если бы вы могли написать сообщение в блоге о своей демонстрации. Для новичков очень сложно связать большинство реализаций с объяснением из http://google.github.io/dagger/. –

+0

Спасибо за образец, который вы поделили. заставил меня идти. Гораздо лучше, чем образец, с которым делились люди google. – nemo

20

Я просто портировал u2020-mvp приложение Dagger 2. Мы используем его в качестве нашей песочницы приложения. Кстати, у кинжала 2 есть хорошая реализация областей. Компоненты действительно большие сделки. И он основан на u2021 сделанном Christian Gruber. Вы можете это проверить.

Надеется, что это помогает :)

+0

Почему у вас есть два репозитория {} раздела в файле build.gradle? –

+0

@IgorGanapolsky, один является сборщиком хранилищ для плагина apt gradle, второй для зависимостей проекта. Они отличаются от корневой, поэтому они должны преодолеть. –

+0

Достаточно запутанный, чтобы иметь несколько, нарушает принцип СУХОЙ. –

3

кофеварке образцу без андроида: https://github.com/yongjhih/dagger2-sample

Шагов:

git clone https://github.com/yongjhih/dagger2-sample 
cd dagger2-sample 
./gradlew execute 
+7

Отличная находка, хотя я никогда не обнаружил, что образец кофе-машины просвещает. –

+0

Вы должны добавить произвольную инъекцию где-нибудь, пример не завершен без него. –

+0

Спасибо. Образец импортируется из официального https://github.com/google/dagger/tree/master/examples/simple/src/main/java/coffee. Вы можете видеть инъекции в Thermosiphon и CoffeeMaker. –

19

Для тех, кто ищет простой и простой способ, чтобы просто построить проект Dagger 2 на Gradle/Android Studio, выезд https://github.com/bytehala/dagger2-gradle-quickstart

В commit messages я также перечисляю шаги к преобразовать полностью функционирующий проект в кинжал 2.

Целевой аудиторией для этого проекта является любой, кто не имеет опыта инъекции зависимостей.

Никакой другой библиотеки кроме Butterknife не используется.

ПРЕДУПРЕЖДЕНИЕ Целью этого типового проекта является простота, а не полнота. были использованы только следующие функции:

  • @Module
  • @Component
  • @Injects
  • @Provides
  • @Singleton

такие темы, как телескопы, подмодуль, и т.д. остаются в качестве упражнения.

+2

Я бы рекомендовал удалить все зависимости IntelliJ, такие как .iml-файлы –

+0

Действительно? Я не знал, что это нужно сделать. Я полагал, что .gitignore, предоставленный AS, было достаточно. LOL Я позабочусь об этом утром, обещаю. Любые другие файлы, которые я должен удалить из git? – lemuel

+0

Все остальное в порядке. .iml-файлы и папка .idea имеют локальные пути, а также некоторые непослушные вещи с управлением версиями gradle, если вы используете подстановочный знак: + номера версий. –

Смежные вопросы