ANDROID
-
[ANDROID] MPAndroidChart Rounded Candle Stick ChartANDROID 2023. 6. 13. 11:20
MPAndroidChart Rounded Candle Stick Chart canvas.drawRect -> canvas.drawRoundRect import android.graphics.Canvas import android.graphics.Paint import com.github.mikephil.charting.animation.ChartAnimator import com.github.mikephil.charting.interfaces.dataprovider.CandleDataProvider import com.github.mikephil.charting.interfaces.datasets.ICandleDataSet import com.github.mikephil.charting.renderer...
-
[ANDORID] hilt를 왜 사용할까?ANDROID 2022. 12. 23. 21:20
간단 정리 나는 hilt를 왜 사용할까? 먼저 hilt는 의존성 주입을 도와주는 라이브러리이다. hilt의 장점은 의존성 주입의 장점이라고도 할 수 있다. 주입받는 대상이 변하더라도 주입되는 객체의 구현에는 변화가 없다. 즉, 재사용성이 좋다 의존성이 있는 객체를 찾기 쉽다. 즉, 가독성이 좋다 객체를 붙였다 떼었다 하기가 쉽기 때문에 프로젝트 변화에 유연성이 좋다. dagger2나 Koin보다 hilt를 사용하는 이유는 다음과 같다. dagger2 koin hilt 러닝커브 높다 낮다 낮다 error 시점 compile time runtime compile java O X O 배우기가 쉽고 error를 역 추적해야 하는 runtime에러보다 비교적 에러를 찾기 쉬운 compile time에 에러가 발생..
-
[RxJava] RxJava에 대한 이해ANDROID/RXJAVA 2022. 12. 21. 21:16
Reactvie Programming? Reactive Programming이란 데이터 흐름과 전달에 관한 프로그래밍 패러다임입니다. 우리는 주로 작성한 순서대로 실행되는 Imperative Programming(명령형 프로그래밍)을 한다. 반면 Reactive Programming이란 데이터의 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관된 작업이 실행됩니다. 즉, 프로그래머가 어떠한 기능을 직접 호출해서 실행시키는 것이 아닌, 이벤트가 발생했을 때 알아서 처리되는 것이다. 기존의 프로그래밍 방식을 Pull 방식, Reactive 프로그래밍 방식을 Push 방식이라고도 합니다. Pull 방식은 데이터를 사용하는 곳(Consumer)에서 데이터를 직접 가져와서 사용한다면, Push 방식은 데이터의 변..
-
[ANDROID] Instrumented Unit Test 맛보기 (계측 테스트)ANDROID/TEST 2022. 10. 27. 17:20
Instrumented Unit Test Android Framework가 연관되는 모듈은 JVM 위에서는 실행할 수 없다. 따라서 테스트를 에뮬레이터나 실기기 위에서 수행해야한다. 이것을 계측 테스트라 한다. Dependencies에 androidTestImplementation으로 추가해주어야 한다 Local Unit Test (JVM 위에서 수행가능한 테스트)는 testImplementation으로 추가 androidTestImplementation("androidx.test:core:1.4.0") androidTestImplementation("androidx.test.ext:truth:1.4.0") androidTestImplementation("androidx.test:runner:1.4.0"..
-
[ANDROID] Local Unit Test 맛보기.ANDROID/TEST 2022. 10. 27. 00:56
안드로이드 스튜디오에서 새로운 프로젝트를 생성하면 테스트에 관련된 아래와 같은 Dependency들이 자동으로 추가된다. testImplementation("junit:junit${Versions.JUNIT4}") androidTestImplementation("androidx.test.ext.junit${Versions.ANDROID_JUNIT}") androidTestImplementation("androidx.test.espresso:espresso-core:${Versions.ESPRESSO}") JVM만으로만 실행이 가능한 테스트 Dependency는 testImplementation으로 추가하고 에뮬레이터나 실기기를 필요로하는 테스트 Dependencysms androidTestImplemen..
-
[ANDROID] 안드로이드 테스트 자동화 기초ANDROID/TEST 2022. 10. 25. 21:44
Software Testing Testing는 Software 개발과 함께 시작된 행위이다. 테스트 방법론 피라미드 vs 아이스크림 콘 테스트 커버리지 100%를 목표로 해야한다 vs 100%는 무의미하다. 테스트 먼저 vs 구현 먼저 테스트 자동화의 필요성 테스트 유형 기능 테스트 : 앱이 기능을 수행합니까? 성능 테스트 : 빠르고 효율적으로 수행합니까? 접근성 테스트 : 접근성 서비스와 잘 작동합니까? 호환성 테스트 : 모든 기기와 API 수준에서 잘 작동합니까? 수동 테스트 - 앱을 빌드하고 시뮬레이터에서 터치해가며 확인, 개발자가 앱을 수동으로 100% 테스트하는것은 불가능, QA팀을 사용하는 방법도 있으나 개발 비용 증가. 빌드시간 증가 비용증가 자동 테스트 개발시간 감소 비용 절감 견고한 구조..
-
[ANDROID] Android Build Tool, KTSANDROID 2022. 10. 25. 18:46
Build Tool이란? 소스코드를 바이너리코드로 컴파일한 다음 그 바이너리코드를 서로 링크해서 실행가능한 파일로 패키징하는 것을 소프트웨어를 빌드한다고 말한다. 실제 프로덕션의 빌드 과정은 컴파일과 링크 이외에도 연관된 의존성 다운로드 소스 코드를 바이너리 코드로 컴파일 바이너리 코드 링크하여 실행가능 파일로 패키징 테스트 수행 프로덕션 시스템에 배포 등과 같은 작업이 필요하다. 소스코드를 하나하나 수정할 때마다 이 과정을 거치는 것은 노력이 많이 들어가기 때문에 일반적으로는 이 작업을 자동으로 수행해주는 Build Tool이라는 프로그램을 사용한다. Android 채택 언어인 Java의 Build Tool은 Ant, Maven, Gradle 순으로 개선되어져 왔다. Java의 빌드 툴 Make 197..
-
[ANDROID] WorkManager - 백그라운드 작업ANDROID 2022. 9. 25. 01:45
안드로이드 백그라운드 작업 실행 시점에 따른 분류 Exact Timing : 즉시 처리되어야 하는 작업 Deferrable : 처리를 위한 조건이 만족될 때까지 기다릴 수 있는 작업 실행 완료 여부에 따른 분류 Best-Effort : 처리를 위해 노력하지만 취소될 수도 있는 작업 Guaranteed Execution : 앱이 종료되거나 기기가 재부팅되어도 수행되어야하는 작업 백그라운드 라이브러리 Exact Timing Deferrable Best-Effort TheradPool 즉시 처리해야하고 취소될 수도 있는 작업 ThreadPool 조건이 만족될 때까지 기다리고 취소될 수도 있는 작업 Guaranteed Execution ForegroundService 즉시 처리해야하고 앱이 종료되거나 재부팅 되..