전체 글

전체 글

    JetPack Compose에서 Compose 멀티 플렛폼으로 전환

    compose가 릴리즈되고, 멀티 플렛폼(Android, ios, 윈도우 앱, 홈페이지)서도 fork of compose를 지원해준다고 한다.  JetPack Compose에서 fork of compose를 하기 위해서는 아래와 같이 설정을 해주어야 한다. KMP 마이그레이션 및 컴포즈 설정안드로이드에서 kotlin multiplatform와 호환하기 위해서 build.gradle.kt에서 추가/수정을 해야한다.// app 수준 build.gradle.ktplugins { id("com.android.application") // or id("com.android.library") // Replace `kotlin("android")` with: kotlin("multiplat..

    Compose 상태 관리

    XML은 뷰에서 자동으로 업데이트를 처리해준다. 하지만 Compose는 XML과 다르게 명시적으로 알려주어야한다. 아래 코드로 예로 보자. @Composable private fun HelloContent() { Column(modifier = Modifier.padding(16.dp)) { Text( text = "Hello!", modifier = Modifier.padding(bottom = 8.dp), style = MaterialTheme.typography.bodyMedium ) OutlinedTextField( value = "", onValueChange = { }, label = { Text("Name") } ) } } XML로 만들었다면 텍스트를 입력하면 UI가 변하지만 Compose에..

    [안드로이드] Rxjava + retrofit2 연결 도중 취소하기

    연결 도중 취소해야하는 경우가 생기면 아래와 같은 코드를 사용하면 된다. private Disposable mDisposable; service.post(mData) .subscribeOn(Schedulers.io) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SingleObserver() { @Override public void onSubscribe(Diposable d) { // disposable을 지정 mDisposable = d; } ... }; // 취소를 해야하는 경우 if (mDisposable != null) mDisposable.dispose();

    [안드로이드] 원격 터치 기능 정리

    원격으로 터치하는 기능을 만들기 위해서 방법들을 찾아봤는데, 앱 내부에서만 가능한 터치이거나, 루팅을 통해서 터치하는 방법이 많았다. 앱 내부 터치, 루팅 권한을 뺀 나머지 기능을 정리할려고 한다. ADB 방식 시스템 앱의 경우 adb shell 방식을 사용할 수 있다. adb shell input tap x y 명령어를 내리면 그 좌표로 터치를 할 수 있다. Runtime runtime = Runtime.getRuntime(); runtime.exec("input tap " + x + " " + y); 단점으로는 속도가 3초, 5초뒤에 발생한다. (테블릿 성능이 안좋아서 그럴 수도 있다) 그리고 플레이 스토어에 올리지 못한다. 그래서 Accessibility Service를 사용해야한다. Accessi..