어노테이션

안드로이드/활용

[Android] Hilt를 통한 의존성 주입

DI (Dependency Injection) DI는 의존성 주입이라 부르며, 하나의 객체에 다른 객체의 의존성을 제공하는 기술입니다. 여기서 의존성은 서비스를 사용할 때 필요한 객체를 뜻합니다. Android의 종속 항목 삽입 | Android 개발자 | Android Developers Android의 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 삽입(DI)은 프로그래밍에 널리 사용되는 기법으로, Android 개발에 적합합니 developer.android.com DI 기법 예시 DI를 예시로 Car 클래스와 Engine 클래스로 설명하면 다음과 같습니다. Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 합니다. ..

기타/우테코

[Kotlin] JUnit으로 테스트 코드 작성하기

JUnit JUnit는 단위 테스트를 쉽게 해주는 테스트용 Framework입니다. 코드가 거대해지고 복잡해짐에 따라, 유닛 단위로 지속적인 테스트를 해서 작은 단위로 빠르고 안정적인 검증을 하기 위해 JUnit을 사용합니다. JUnit 어노테이션 @Test 함수 위에 선언해 테스트 함수임을 지정합니다. @Test(timeout = 밀리초) 테스트 함수의 수행 시간을 제한합니다. 테스트할 함수가 수행되는 시간이 어노테이션 매개변수로 지정한 시간을 넘긴다면 테스트 Fail @Test(expected = 예외) 테스트 함수의 예외를 지정합니다. 매개변수로 지정한 예외가 발생해야 테스트 Pass @Ignore 해당 어노테이션이 선언된 테스트 함수는 무시하도록 지정합니다. @BeforeEach 해당 어노테이션이..

안드로이드/활용

[Android] BindingAdapter 사용하기

BindingAdapter BindingAdapter는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 액티비티 또는 레이아웃에서 원하는 속성이 없어 해당 기능을 처리할 수 없을 때 BindingAdapter을 사용하여 View의 속성 값을 커스터마이징할 수 있습니다. 결합 어댑터 | Android 개발자 | Android Developers 결합 어댑터 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 결합 어댑터는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 한 가지 예로 developer.android.com BindingAdapter 생성 BindingAdapter는 Java의 static 함수로 되어 있기 때문에 @JvmStatic 어..

안드로이드/활용

[Android] Moshi로 JSON 파싱하기

Moshi Moshi는 Square에서 개발한 JSON Parser 라이브러리입니다. Gson과 유사하지만, 성능이 더 빠르고 코틀린과의 호환성이 더 높은 특징을 가지고 있습니다. 또한, Moshi는 직렬화 및 역직렬화를 보다 쉽게 할 수 있도록 지원합니다. 직렬화 : 객체를 저장 혹은 전송 가능한 상태의 특정 포맷 상태로 변환하는 과정 역직렬화 : 직렬화된 데이터를 다시 객체로 변환하는 과정 Moshi 사용하기 1. Manifest에 권한 선언 Moshi를 사용하기 위해서 인터넷에 대한 권한을 추가합니다. 2. build.gradle에 의존성 추가 Moshi를 사용하기 위해서 build.gradle에 Moshi 라이브러리를 추가합니다. implementation 'com.squareup.retrofit..

안드로이드/활용

[Android] Tikxml로 XML 파싱하기

Tikxml Retrofit을 사용할 시 보통 대부분 응답 결과가 JSON으로 오기 때문에 GsonConverter를 사용합니다. 하지만 국내 일부 공공데이터나 오래된 데이터는 XML 결과만 제공합니다. 과거에는 SimpleXML 라이브러리를 활용하여 XML 파싱이 가능했지만 현재는 deprecated된 상태입니다. 따라서, 같은 기능을 하는 XML Parser인 Tikxml을 주로 사용합니다. GitHub - Tickaroo/tikxml: Modern XML Parser for Android Modern XML Parser for Android. Contribute to Tickaroo/tikxml development by creating an account on GitHub. github.com R..

안드로이드/활용

[Android] Retrofit 사용하기

Retrofit Retrofit A type-safe HTTP client for Android and Java square.github.io Retrofit은 OkHttp와 동일하게 Square에서 만들어졌으며 OkHttp를 기반으로 더 Type-safe하고, 더 직관적으로 사용할 수 있는 라이브러리입니다. OkHttp는 AsyncTask로 서버와 통신을 하였는데 이는 시간이 많이 소요되고 구현이 어렵습니다. 하지만 Retrofit은 AsyncTask 없이 Background Thread 실행 -> Callback을 통해 서버와 통신을 하기 때문에 성능이 좋고 간편하게 사용할 수 있는 장점이 있습니다. Retrofit에서는 Annotation을 사용하기 때문에 코드 가독성이 뛰어납니다. 또한, 반복된 ..

안드로이드/개념

[Android] @JvmOverloads

View의 생성자 View의 생성자에는 총 4가지가 있습니다. 종류 설명 View(Context context) 코드 상에서 View 객체를 생성할때 사용하는 생성자 View(Context context, AttributeSet attrs) XML로부터 View를 객체를 생성(inflate)할때 사용되는 생성자 View(Context context, AttributeSet attrs, int defStyleAttr) XML inflate + theme attribute로 기본 스타일을 적용할때 사용되는 생성자 View(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) XML inflate + theme attribute와 st..

안드로이드/활용

[Android] Room 사용하기

Room 추가하기 Room을 사용하기 위해서 build.gradle에 Room 라이브러리를 추가합니다. plugins { id 'kotlin-android' id 'kotlin-kapt' } dependencies { val room_version = "2.5.0" implementation 'androidx.room:room-runtime:$room_version' kapt 'androidx.room:room-compiler:$room_version' } Room 구성요소 Database 데이터베이스 구성을 정의하고 영구 데이터에 대한 앱의 기본 액세스 포인트 역할을 수행합니다. Database 어노테이션을 사용하고 어노테이션 내에 entities을 포함해야 합니다. RoomDatabase()를 확장하..

damon-911
'어노테이션' 태그의 글 목록