-
Notifications
You must be signed in to change notification settings - Fork 0
[코드랩] TIL
impactrudia edited this page Mar 22, 2022
·
6 revisions
- @Insert(onConflict = OnConflictStrategy.REPLACE)
- 이미 있는 데이터인 경우 기존에 있던 데이터를 덮어 씌운다.
- 캐싱하는 방법
- Retforit
- SharedPreferences
- Internal storage directory
- Room
- 가장 추천하는 방법, 복잡하고 구조적인데이터를 위한 솔루션을 추천된다. 왜냐하면 파일시스템은 디바이스 파일시스템에서 구조적인 데이터를 저장하는 가장 좋은 방법은 로컬 SQLite 데이터베이스이다
- Parcelable 필요한 이유
- 엑티비티 데이터 전달할 경우 직렬화 Serializable(직렬화가능)하거나 Parcelable(포장가능)한 객체로 만들어야만 보낼 수 있다.
- Parcelable을 구현하는 과정이 귀찮아 보이지만, kotlin을 사용중이라면 귀찮은 작업이 줄어든다.
- 'kotlin-android-extensions' 플러그인을 사용하면 @Parcelize를 사용하여 구현 가능.
- Transformations class
- Transformations는 LiveData를 위한 클래스
- 상태값이 변경될 때, 뷰에 새로운 값을 넘겨준다.
-
Retrofit은 ScalarsConverterFactory와 URI 필요
-
ScalarsConvert는 String 반환
-
"lazy instantiation"은 불필요한 계산이나 다른 컴퓨팅 리소스 사용을 피하기 위해 실제로 해당 개체가 필요할 때까지 의도적으로 지연
-
인터넷 퍼미션 필요
-
인터넷이 꺼져 있을 경우, 호스트를 연결 할 수 없다라는 메세지 나옴
-
Moshi : Json 문자열을 Kotlin 객체로 변환하는 Android JSON 파서
-
@JSON은 JSON 객체의 키값을 나타낸다. 코틀린 타입과 코틀린 변수의 스타일이 다를 때 사용
-
Moshi 쓸 땐, Gson gradle 파일 지우기
-
코루틴을 사용함으로써 코드가 더 효율적이고 읽기 쉬워짐.
Gson보다 Moschi가 좋은 이유 [링크]
- 코틀린 지원
- HTML 이스케이프 수행 안 함.
- 구글이 Gson 업그레이드 안 함.