Skip to content

[코드랩] 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 업그레이드 안 함.
Clone this wiki locally