본문 바로가기
반응형

안드로이드30

Android - EncryptedSharedPreferences 로 데이터 암호화하기 Android 앱을 개발하다보면, 로컬에 저장해야 할 데이터가 있습니다. 사용자가 언제 앱에 접속했는지 라던가, 어떤 옵션을 ON/OFF 했는지에 대한 캐시성 정보들이 예가 될 수 있습니다. 이렇게 민감하지 않은 데이터는 평문을 그대로 저장해도 무방합니다. 하지만 만약 사용자의 개인정보와 관련이 있다거나 서버에 접근할 수 있는 토큰같은 종류라면 문제가 될 수 있습니다. SharedPreferences의 문제점 이 문제를 이해하려면 SharedPreferences와 안드로이드 어플리케이션에 대한 이해가 필요합니다. SharedPreferences는 XML 형태의 파일로 앱의 저장공간에 저장됩니다. 우리는 SharedPreferences를 선언할 때 아래와 같이 선언합니다. val sharedPref = c.. 2023. 11. 14.
Kotlin Multiplatform의 안정화와 Jetpack Compose 현재 안드로이드 개발자에게 큰 관심거리는 무엇이 있을까요? 굉장히 많은 것들이 있겠지만, 개인적으로 Jetpack Compose가 가장 큰 관심거리가 아닐까 합니다. 여기에 더해서 Flutter, Kotlin Multiplatform의 동향도 큰 관심거리입니다. Flutter는 많은 발전을 하고 있고, 채용공고도 꽤 많아졌을 만큼 모바일 개발에서 핫한 프레임워크가 되고 있습니다. 물론 현업에서 쓰기에는 아직도 이슈가 좀 있어 보이지만, 그래도 꽤 큰 IT회사에서 채택하는 경우도 점점 늘고 있습니다. 이런 상황에서 Kotlin Multiplatform도 점점 발전하면서 사람들의 관심을 끌고 있는데요. 안타깝게도 프로덕션 레벨에서 쓰기에는 안정적이지 않았습니다. 저도 간단한 예제를 통해 어떤 것인지 학습정.. 2023. 11. 4.
Android - 상태관리, LiveData 대신 StateFlow를 사용하자. 현재 안드로이드 생태계는? 현재 안드로이드 생태계는 MVVM 아키텍처, 클린아키텍처가 대세가 되고, MVI 아키텍처가 점점 핫해지고 있다. 그만큼 개발 기술이 빠르게 발전하고 있고, 더욱 강력한 도구들이 생겨나고 있다는 것이다. Google에서 Android Architecture Compoenent로 여러가지 도구를 제시하고 있고, 그 중에 ViewModel과 LiveData는 정말 핫하고 유용하며, 현재 안드로이드 앱 개발에 있어서 가장 기본적인 도구로 몇년동안 자리잡고 있다. 그러나 시간이 지나면서 이들도 구시대의 기술이 되어가는 것은 당연하다. 영원히 최고의 도구는 없으니까. 오늘은 그 중 하나인 LiveData에 대해, 그리고 이를 대체할 StateFlow에 대해서 얘기해본다. 상태관리, 그리고.. 2023. 8. 3.
Android - DataStore로 SharedPreferences를 대체하자. 어플리케이션을 개발하다보면 앱 내부에 데이터를 저장해야 할 때가 있다. 그 중에서 어떤 유저가 특정 기능을 활성화 했는지 여부와 같이 굉장히 작은 규모의 데이터가 저장되어야 할 때가 있다. 이럴때 우린 SharedPreferences를 사용해서 저장하곤 했다. 하지만 SharedPreferences는 여러가지 단점이 있다. UI쓰레드에서 호출하기에 안전하지 않고, 예외나 런타임 안정성 등이 있다. 그리고 비동기 API에 대한 대응도 부족한 편이다. 이런 단점 때문인지, 구글에서 이를 보완하기 위해 Jetpack DataStore를 개발하였다. https://developer.android.com/topic/libraries/architecture/datastore?hl=ko 앱 아키텍처: 데이터 영역 -.. 2023. 7. 7.