Frontend(39)
-
Flow usage pattern
var items: Flow> = ...items.map { list -> list.filter { it.type == REGULAR }.sortedWith( compareBy { if (type.sortOrder == SortOrder.NAME) it.name else it.value }, )}Flow가 List을 emit 하는데, emit 하는 List에 대해서 뭔가 처리하고 나서 이를 collect 하는 곳으로 보내기 위한 중간(intermediary) 과정의 동작을 구현하는 부분이 mapFlow의 map 연산자는 항상 Flow를 반환그래서 결과는 다시 Flow>임#Flow의 collect는 코루틴 내에서 실행되어야 함그래서 다음과 같이 구현하..
2025.06.19 -
Android Service ex. (w/ AIDL)
defininition두 숫자를 입력으로 받아 합한 결과를 제공하는 간단한 서비스를 정의해 보겠습니다.다음과 같이 add 메서드를 선언한 IMyAidlInterface라는 이름의 인터페이스를 정의합니다. defines AIDL file// IMyAidlInterface.aidlpackage com.example.aidl;interface IMyAidlInterface { int add(int x, int y);}Generated codeBuild > Make Project를 수행하면 다음의 파일이 생성됩니다. app/build/generated/aidl_source_output_dir/debug/out/com/example/aidl/IMyAidlInterface.java생성된 파일의 내용은 다음과 ..
2025.06.11 -
Android Studio 심볼(함수, 변수 등) 정의 부분으로 가기가 안되는 경우
문제 상황심볼(함수, 변수 등) 정의 부분으로 가기가 안되는 경우코드 위에에서 ctrl + 마우스 좌측 버튼을 눌러도 해당 코드 정의 부분을 갈 수 없는 경우문제 상황 상세 설명Android Studio의 프로젝트에서 분명히 함수 정의가 있는 부분인데,provider.startProcessing() 와 같이 있을때 Provider 클래스에는 startProcessing() 메서드가 분명히 존재함에 불구하고 provider.startProcessing() 위에서 ctrl을 누르고 마우스 왼쪽 버튼을 누르면,"cannot find declaration to go"가 뜨는 경우그리고 코드가 무채색으로 (색상이 입혀지지 않은채로) 표시됨해결 방법File > Sync project with Gradle files..
2025.05.07 -
오래된 장치(폰)에서 안드로이드 앱을 실행하는 방법
minSdk와 targetSdk의 version을 29와 같이 오래된 버전으로 낮춰서 빌드하면 오래된 장치에서도 앱을 실행할 수 있습니다. android { namespace = "com.example.gesture_detection" compileSdk = 35 defaultConfig { applicationId = "com.example.gesture_detection" minSdk = 29 targetSdk = 29 versionCode = 1 versionName = "1.0" ...
2025.03.18 -
LiveData 사용 이유
LiveData는 '관찰' 가능한 data holder 데이터 변경 시 UI 컴포넌트(activity 혹은 fragment)에 알림 LiveData 외 Flow, RxJava의 Observable 사용 가능 혹은 Coroutines에서 suspend 함수로 query 작성 LiveData는 Android architecture에서 잘 지원해 주기 때문에 이를 사용하는 것이 좋음 ex. ViewModel의 lifecycle aware 기능에서 LiveData를 사용
2025.02.27 -
PyQt - 다국어 지원
PyQt는 다국어를 지원합니다. 이를 위해 가장 먼저 ts 파일을 생성합니다. pylupdate5 main.py -ts translations_ko.ts 이후, 생성된 파일에 내용을 추가합니다. linguist translations_ko.ts MainWindow Test Control 시험 제어 Test Results 시험 결과 작성 완료 후 ts 파일을 qm 파일로 release 합니다.lrelease translations_ko.ts 이제 생성된 transation_ko.qm 파일을 로드합니다. if __name__ == "__main__": app = QApplication(sy..
2024.07.04