dagger2-example | dagger2 with gradle example | Unit Testing library
kandi X-RAY | dagger2-example Summary
kandi X-RAY | dagger2-example Summary
[See branch for ewerk plugin version] Since 2.0 release:- Dagger generates components prefixed with just "Dagger" instead of "_". The TerrestrialPlanetsModule, for example, provides a singleton named "Mercury" etc.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
- This method implements the canonical hashCode of this class
- Returns the au ratio
- Returns the name of the ceresRes
- Iterator
- Gets the star planets
- Returns an iterator over the stations
- Gets the set of planets
- The main method used to print an solar system
- Compares this object to another
- Compares two Worlds
- Iterate over the Worlds in ascending order
dagger2-example Key Features
dagger2-example Examples and Code Snippets
Community Discussions
Trending Discussions on dagger2-example
QUESTION
I am trying to understand an example for an app with offline support using retrofit and room:
You can find the code for it here:
This project is using dependency injections with Dagger2. I've never worked with it so I am trying to understand how things work together. I understand the purpose of dependency injection but I don't understand the implementation of the project above.
I found a very good introduction into Dagger2 here:
A Friendly Introduction to Dagger 2
I worked through it and got most of it. Back to the actual project I am trying to understand (link 2). It still doesn't make sense to me and here is why:
The interface AppComponent has one method which is used:
public void inject(MainActivity2ViewModel viewModelModule);
The return type is void. In the Dagger2 sample project (link 3 and 4) they useWeatherReporter getWeatherReporter();
which makes sense because later they call this method to get a WeatherReporter-Instance and Dagger2 manages all of the instantation process in the background. But I get nothing if the return type is void. Why is the return type not an object?There is one
@Inject
in MainActivity2ViewModel:@Inject public void setRepository(GitHubRepository2 repository) { this.repository = repository; }
repository
is the only field of MainActivity2ViewModel
so it is a dependency. The GitHubRepository2
constructor has 3 parameters:
ANSWER
Answered 2019-Jun-16 at 21:43There's a lot of comprehensive tutorials about Dagger2 in Android. But I'll show you a glimpse of what it's used for. And minimal usage.
Ultimately, dagger will use the annotation @Inject which will provide(reference to the object or value) to the variable.
Injection is usually used on reusable or boilerplate objects like Dao, Repository, ViewModel, NetworkAdapter
QUESTION
Hello I have the following problem using Dagger 2 in my (part) project being completely pure-Java with no android dependencies.
When I run the unit tests using some mocks (e.g. Injecting a Mock Network Connector returning static Strings) over the Gradle view or console (businessModule:test) there are no problems and all tests Succeed. But when I open the files in Android Studio the Studio says that the Return of my DaggerMockComponent is not compatible with the target type. Opening the generated Component-Implementation, I see that Android Studio thinks the TestUnit-Class (and the interface MockComponent) is not available so it does not know what the inject method returns.
I have the following gradle file:
apply plugin: 'java'
...ANSWER
Answered 2017-Jan-20 at 07:51Ok everybody, after an additional night and some research on the android-apt plugin I stumbled over the pure-Java apt (net.ltgt.apt) and now I have a working solution in combination with the idea-plugin
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install dagger2-example
You can use dagger2-example like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the dagger2-example component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page