본문 바로가기

Android Kotlin23

Android Kotlin Unit Test 작성하기 커스텀 카메라의 Permission 값을 LiveData로 그때마다 읽어서 해당 경우에 맞게 동작하게끔 구현했다.그러나 실제로 내가 ViewModel을 정확하게 쓰고있는지에 대해 의문이 생겼다.그걸 해소하기위해 JUnit을 이용하여 나의 viewmodel이 정확하게 동작하는지 확인해보려고한다. 1. dependencies 추가dependencies { val jUnit_version = "4.13.2" val androidXTest_version = "1.5.0" val mockitoCore_version = "5.12.0" val mockitoKotlin_version = "3.2.0" val mockito_version = "1.13.2" val arch_verison.. 2024. 5. 29.
Android Kotlin SurfaceView SurfaceView란?SurfaceView는 초당 프레임이 순식간에 바뀌는 카메라 미리보기나 게임, 영상 등 애니메이션이 들어간 경우에 사용하는 View이다.SurfaceView는 Surface라는 별도의 메모리 공간에 그림을 그린다. (UI 스레드가 아니다.) 별도의 스레드로 그림을 그리기때문에 UI 스레드에서 과부하가 걸리는걸 막아준다. SurfaceView의 장점 : 더블 랜더링안드로이드에서는 오직 UI스레드만이 View 그릴 수 있다.  View를 다 그릴때까지 UI스레드는 아무것도 할 수없다. 심지어 그림을 그리는 과정이 전부 노출되기때문에 이미지가 찢어진다던가 버벅거리는 현상이 유저에게 보여질 수 있다. UI스레드 혼자 작업하는 것을 싱글 버퍼링이라한다. 그런데 SurfaceView를 이용하.. 2024. 5. 19.
Android Studio Kotlin abstract class로 BaseActivity를 사용하는 이유는? BaseActivity를 사용하는 이유?=>액티비티에서 자주쓰는 코드들을 정의하여 넣어두고, 상속받게하면 불필요한 코드를 줄일수있다. abstract : 핵심적인 개념 또는 기능을 간추려 추상적으로 그리는것을 말한다. => 객체의 속성 중 중요한 것먼 간추려서 대략 기재한다.  1. abstract class는 인스턴스화 불가하다.=> 그러므로 실수로 해당 클래스를 직접 인스턴스화 하는 것을 방지한다. 2. abstract class안에는 추상 메소드가 들어있다. =>이걸 상속 받는 클래스는 본인에게 맞는 동작을 구현할 수있다. 2024. 2. 12.
Android Studio Kotlin Splash화면 구성하기 installSplashScreen 231003 ver 스플래쉬 화면을 구성할 때 종래 자주쓰는 방법은1. 특정 xml layout을 꾸미기2. 특정 theme 꾸미기둘 중 하나로 꾸민 다음 Handler를 이용하여 delay를 주는것이다. 그러나 올 초부터 상기 2개 말고 installSplashScreen로 스플래쉬화면 객체를 반환하여 이용하는 방법을 추천하고있다. https://developer.android.com/guide/topics/ui/splash-screen/migrate?hl=ko  기존 스플래시 화면 구현을 Android 12 이상으로 이전  |  Android 개발자  |  Android Developers기존 스플래시 화면 구현을 Android 12 이상으로 이전 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐.. 2023. 9. 30.
android studio MotionScene Syntax error : Empty Scene android studio MotionScene Syntax error : Empty Scene MotionLayout으로 영상을 보고 닫을 때 상황을 연출하려 했지만, Syntax error가 계속 떠서 원인을 찾아보았다. xml 에 만들어준 MotionScene에 기본적으로 등록해줘야하는 ConstraintSet, Transition속성을 안넣어줘서 생긴 에러이다. 만들기전에 기본적으로 해당 내용을 넣고 시작하니 만들어졌다. 알아서 수정해서 사용하면 될듯. 2023. 9. 24.
Android Studio(Kotlin) Room Room : AAC(안드로이드 아키텍쳐 컴포넌트) 중 하나 안드로이드에서 제공해주는 ORM ( Object Relational Mapping )라이브러리로 쉽게 내부 DB를 접근할 수 있게 도와준다. DB를 구조적으로 분리해서 데이터 접근의 편의성을 높여주고, 유지보수 하기 쉽게 만들어준다. (그 외 패턴에 적합한 .. ) SQLLite 대신 Room을 사용해야하는 이유 1. 컴파일 도중 SQL에 대한 유효성 검사 가능 (SQLite는 쿼리를 컴파일 타임에 검증이 불가함) 2. Schema가 변경될 시 자동으로 업데이트 가능 (SQLite는 수동업데이트해야함) 3. Java 데이터 객체를 변경하기 위해 상용구 코드 없이 ORM 라이브러리를 통해 자바 또는 코틀린 객체와 매핑 가능 (SQLite은 많은 상.. 2023. 9. 4.