Skip to content

Instantly share code, notes, and snippets.

View droid-lover's full-sized avatar

Sachin Rajput droid-lover

View GitHub Profile
@droid-lover
droid-lover / projectLevel build.gragle
Created July 7, 2020 13:03
Project level build.gradle for Hist DI
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
...
ext.hilt_version = '2.28-alpha'
dependencies {
...
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
//Hilt plugin
apply plugin: 'dagger.hilt.android.plugin'
android{
....
}
@droid-lover
droid-lover / Application
Created July 7, 2020 14:24
Your Application class
//Your Application class
@HiltAndroidApp
class CarExpoApplication :Application() {
....
}
@droid-lover
droid-lover / YourActivity
Created July 7, 2020 14:26
Activity/Fragment
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
........
}
}
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject lateinit var exampleClass: ExampleClass
override fun onCreate(savedInstanceState: Bundle?) {
....
exampleClass.greetMessage()
}
package com.vs.hiltapp.app
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
//this will be the entry point of HILT DI injection to your app.
@HiltAndroidApp
class HiltSampleApp : Application() {
override fun onCreate() {
dependencies {
...
implementation "com.google.dagger:hilt-android:2.28-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"
implementation 'androidx.hilt:hilt-lifecycle-viewmodel:1.0.0-alpha02'
kapt 'androidx.hilt:hilt-compiler:1.0.0-alpha02'
...
}
class SampleViewModel @ViewModelInject constructor(
private val networkRepository: NetworkRepository
) : ViewModel() {
//code
}
//add this annotation to make it accessible all dependencies from DI Graph created using HILT
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
//access viewmodel like this
private val sampleViewModel: SampleViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
buildscript {
ext.kotlin_version = "1.4.10"
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"