Skip to content

Instantly share code, notes, and snippets.

View fergdev's full-sized avatar

fergdev fergdev

View GitHub Profile
@fergdev
fergdev / mobileModule.kt
Created September 14, 2024 03:45
Koin Mobile Module
// commonMain
expect val platformModule: Module
val sharedModule = module {
includes(platformModule)
}
// mobileMain
actual val platformModule = module {
singleOf(::DataRepository) { bind<IDataRepository>() }
@fergdev
fergdev / expectActual.kt
Created September 14, 2024 03:44
Expect actual mobileModule
// commonMain
expect val dataRepository: IDataRepository
// mobileMain
actual val dataRepository: IDataRepository = object : IDataRepository {
// Room and DataStore logic here
}
@fergdev
fergdev / build.gradle.kts
Created September 14, 2024 03:41
Adding a mobileMain source set for KMP
val mobileMain = create("mobileMain") {
kotlin.srcDir("src/mobileMain/kotlin")
dependsOn(commonMain)
dependencies {
implementation(libs.androidx.data.store.core)
implementation(libs.androidx.room.runtime)
implementation(libs.sqlite.bundled)
}
}
@fergdev
fergdev / ComposeLearningTemplate.kt
Created November 9, 2023 02:29
Compose Learning Template
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Theme {
Surface {
MainScreen(mainViewModel = MainViewModel())
}
}
}
@fergdev
fergdev / SegmentedButtons.kt
Last active August 16, 2024 08:03
SegmentedButtons implementation for M3
package ferg.segmented.buttons
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
@fergdev
fergdev / gist:b8255a604b0521c3d0701f8a3733742d
Created September 30, 2023 21:55
M3 - Compose Component Mash
package ferg.componentmash
import android.app.Activity
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
String file contents
@fergdev
fergdev / file1.txt
Created May 16, 2016 21:30
Created via API
Demo
@fergdev
fergdev / file1.txt
Created July 29, 2015 21:06
Created via API
Demo