Skip to content

Instantly share code, notes, and snippets.

View mitchtabian's full-sized avatar
🎞️
Building stuff

Mitch Tabian mitchtabian

🎞️
Building stuff
View GitHub Profile
import android.content.ComponentName
import android.content.Intent
import android.os.Bundle
import androidx.annotation.StyleRes
import androidx.core.util.Preconditions
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentFactory
import androidx.fragment.app.testing.FragmentScenario.EmptyFragmentActivity
import androidx.test.core.app.ActivityScenario
import androidx.test.core.app.ApplicationProvider
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
@mitchtabian
mitchtabian / MainActivity.kt
Created July 3, 2020 20:41
Basics #7: Multiple Bindings of the same type
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.components.ApplicationComponent
import javax.inject.Inject
import javax.inject.Qualifier
import javax.inject.Singleton
@mitchtabian
mitchtabian / ComplexMethod_INVALID.kt
Last active September 12, 2023 18:43
Basics #6: Hilt Modules, Binds and Provides
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.google.gson.Gson
import dagger.Binds
import dagger.Module
import dagger.hilt.InstallIn
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.components.ApplicationComponent
import javax.inject.Inject
@mitchtabian
mitchtabian / MainActivity.kt
Last active July 3, 2020 20:01
Basics #5: Some things can't be constructor-injected. What is the solution?
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
@mitchtabian
mitchtabian / MainActivity.kt
Last active December 28, 2022 15:24
Basics #4: Dependencies that require dependencies (Concrete classes that you own)
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
@mitchtabian
mitchtabian / MainActivity.kt
Last active July 3, 2020 19:20
Basics #3: Scopes and the "tier-like" system
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.scopes.ActivityScoped
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@mitchtabian
mitchtabian / MyApplication.kt
Last active March 6, 2022 19:09
Basics #1: Preparing to use Hilt
import android.app.Application
import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp
class MyApplication : Application(){
override fun onCreate() {
super.onCreate()
}
}
@mitchtabian
mitchtabian / MainActivity.kt
Last active July 6, 2020 21:09
Basics #2: Field injecting a class with no dependencies. You own that class.
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var someClass: SomeClass
@mitchtabian
mitchtabian / NetworkModule.kt
Created July 3, 2020 18:20
Hilt @provide an interface instance that you do NOT own
@Module
@InstallIn(ApplicationComponent::class)
object NetworkModule {
@Singleton
@Provides
fun provideBlogService(): BlogService{
return Retrofit.Builder()
.baseUrl("https://open-api.xyz/placeholder/")
.build()