Skip to content

Instantly share code, notes, and snippets.

View ShinichiroFunatsu's full-sized avatar

Shinichiro Funatsu ShinichiroFunatsu

  • Freelance Android Dev
  • Tokyo
View GitHub Profile
@ShinichiroFunatsu
ShinichiroFunatsu / CounterActivity.kt
Last active November 1, 2019 08:57
JetpackCompose And Counter! ! Easy Sample!
class CounterActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
val countStatus = +state { 0 }
val liveCount = MutableLiveData<Int>().apply {
value = 0
@ShinichiroFunatsu
ShinichiroFunatsu / DescribeSpec4JKt.kt
Created September 4, 2019 16:23
[WIP] Bridge for Using DescribeSpec(KotlinTest) in Java
import io.kotlintest.runner.junit4.KotlinTestRunner
import io.kotlintest.specs.AbstractDescribeSpec
import org.junit.runner.RunWith
import java.util.function.Consumer
import java.util.function.Function
@RunWith(KotlinTestRunner::class)
abstract class DescribeSpec4JKt : AbstractDescribeSpec() {
var currentScope: DescribeScope? = null
@ShinichiroFunatsu
ShinichiroFunatsu / Elm.gitignore
Created September 2, 2019 15:34
Elm .gitignore for Mac
# elm-package generated files
elm-stuff/
# elm-repl generated files
repl-temp-*
elm.js
.DS_Store
@ShinichiroFunatsu
ShinichiroFunatsu / .zshrc
Last active December 28, 2019 15:11
.zshrc settings (open with vscode `$code ~/.zshrc`)
.zshrc
# .config/fish/conf.d/omf.fish
# Path to Oh My Fish install.
set -q XDG_DATA_HOME
and set -gx OMF_PATH "$XDG_DATA_HOME/omf"
or set -gx OMF_PATH "$HOME/.local/share/omf"
# Load Oh My Fish configuration.
source $OMF_PATH/init.fish
# set up java with jenv
@ShinichiroFunatsu
ShinichiroFunatsu / get event
Created August 26, 2019 06:55
Touch Event Logging command.
adb shell getevent -lt 2>&1 | tee "$(date +"%Y_%m_%d_%I_%M_%p").log"
private fun getRootWindowPackageName(): String? =
InstrumentationRegistry
.getInstrumentation()
.uiAutomation
.rootInActiveWindow
?.packageName
?.toString()
@ShinichiroFunatsu
ShinichiroFunatsu / KotlinCoroutinesMVVM.kt
Last active April 1, 2019 16:08
ViewModel + LiveData + Kotlin Coroutines
class MainActivity : AppCompatActivity() {
val mainViewModel: MainViewModel by lazy {
ViewModelProviders.of(this).get(MainViewModel::class.java)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
@ShinichiroFunatsu
ShinichiroFunatsu / ExplodeFadeOut.kt
Last active December 5, 2018 00:18
FragmentTransaction setCustomAnimations
class ExplodeFadeOut : Explode() {
init {
propagation = null
}
override fun onAppear(sceneRoot: ViewGroup?, view: View?, startValues: TransitionValues?,
endValues: TransitionValues?): Animator {
val explodeAnimator = super.onAppear(sceneRoot, view, startValues, endValues)
val fadeInAnimator = ObjectAnimator.ofFloat(view, View.ALPHA, 0f, 1f)
@ShinichiroFunatsu
ShinichiroFunatsu / InputConfirmViewModel.kt
Created November 11, 2018 15:38
Reactive Sample with Live Data
class InputConfirmViewModel : ViewModel() {
// inputs
val inputStream = MutableLiveData<String>()
val inputClickBtn = MutableLiveData<Unit?>().apply { observeForever {
errorEventStream.value =
if(inputStream.value.isIntNum()) null else "not num"
} }
// outputs
val btnEnableStream = MediatorLiveData<Boolean>().apply { value = false }.also { enable ->
enable.addSource(inputStream) { ins: String ->