본문 바로가기
반응형

안드로이드/코틀린33

EditText와 RecyclerView(list에서 EditText 사용시 주의점)  회사에서 작업을 하던 도중 EditText에 관해 화가 나는 상황을 겪었는데요. List 내에 EditText가 존재하는 View가 동적으로 추가할 수도 있고 제거할 수도 있는 그런 류의 아이템을 작업해야 했던 경험이 있습니다. 처음에는 아무 생각 없이 Compose로 작업하다가 Compose 버전이 낮아 한국어 복사 버그 이슈가 있어 다시 xml로 회귀했는데... EditText도 큰 복병이 있을 줄은 몰랐네요. 그래서 오늘 제가 소개할 내용은 EditText를 List 내에서 사용할 경우 발생할 수 있는 문제 중 하나입니다. EditText 내부 텍스트들이 전부 마지막으로 생성된 Item의 EditText의 Text로 덮어쓰여지는 문제인데요. 작업을 하다가 다른 화면으로 이동 후 다시 돌아왔을 때.. 2024. 10. 24.
Android PhotoPicker https://developer.android.com/training/data-storage/shared/photopicker 사진 선택 도구  |  Android DevelopersDataStore offers a more modern way of storing local data. You should use DataStore instead of SharedPreferences. Read the DataStore guide for more information. 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 사진 선택 도구 컬developer.android.com  오늘 설명하려는 라이브러리입니다. 회사에서 적용하고자 하니, 이슈가 많아 정리를 위해 들고 왔습니다. 분명 안.. 2024. 8. 19.
Glide로 이미지 stroke 만들기 안드로이드 개발을 하다가 이미지를 업로드하고 다운로드 하는 과정 그 어딘가에서 항상 이미지를 뷰에 뿌려주는 일들이 있는데, 대부분 이미지를 사각형으로 보여주지 않고 모서리 부분에 라운딩을 먹여 살짝 곡선으로 보여주는 디자인들이 많습니다. 저는 디자인을 잘 모르고 토도 달지 않는 편이라 매 번 비슷한 디자인이 나올 때 마다 대충 이게 UI의 공식 같은 건가 하면서 지나갔는데요. 요즘은 라운딩에 stroke까지 포함된 부분이 더 많이 보이더라구요. 그 덕분에 시간을 많이 썼습니다. 디자이너분들은 당연히 이미지 외곽에 stroke를 뿌려주는 게 기본으로 제공되는 줄 알고 있더라구요. 뭐지, 나만 모르는 기본으로 제공되는 무언가가 있는 건가... 그런 생각도 했는데 일단은 못찾아서 직접 만들기로 했습니다. 한 .. 2024. 5. 21.
Generic 이란 처음 학교에서 자바를 배울 때 제네릭을 들었었는데, 이때는 뭔가 제네릭이 크게 와닿지도 않고 학교 과제 정도를 할 때에는 제네릭을 크게 만들어볼 일도 없어서 무심코 넘어갔던 기억이 있네요. 안드로이드 관련 포스트를 보다가 제네릭에 대한 이야기를 발견해서 정리할 겸 한 번 작성해봅니다. 참고: https://kotlinlang.org/docs/generics.html#unchecked-casts Generics: in, out, where | Kotlin kotlinlang.org ArrayList texts = new ArrayList(); 자바를 이용해 코드를 작성하다보면 위와 같은 코드를 자주 발견하곤 했습니다. 이는 ArrayList라는 Class를 선언할 때 그 클래스 내부에서 사용하는 변수의 타.. 2023. 12. 8.
Android - 시스템 앱 알림 상태 확인 회사에서 작업하다가 찾는데 시간이 좀 걸린 부분이 있어 기억하려고 올리는 글입니다. 그래서 짧습니다. 첫 번째로 시스템 알림의 on/off 여부 확인 코드입니다. val isEnable = NotificationManagerCompat.from(context).areNotificationsEnabled() 위 코드의 isEnable이 true이면 시스템 알림이 켜져있는 상태, false이면 꺼져있는 상태입니다. 단, 안드로이드 버전에 따라 알림 부분이 조금 달라지는데, areNotificationsEnabled()를 보면 /** * Returns whether notifications from the calling package are not blocked. */ public boolean areNoti.. 2023. 10. 25.
(Kotlin) Flow - 1 LiveData와 Flow의 차이점을 정리하다보니 아직 블로그에 Flow에 대한 내용을 올린 적이 없다는 사실을 알게 되었습니다. 확실히 아직 100% 이해하고 쓴다고 생각하지 않아 서술하지 않은 것 같은데 이 참에 공부하면서 조금씩 끄적거려 봐야겠습니다. flow를 인터넷에 검색하게 되면, Coroutine Flow라고 코루틴을 붙여서 많이들 사용합니다. 이는 Flow가 안드로이드 공식문서상으로도 코루틴을 기반으로 비동기로 여러 값들을 제공한다고 되어있기 때문입니다. 사실상 Flow와 Coroutine은 떼놓기 힘든 개념이라고 볼 수 있겠습니다. 이 Flow란 친구는 Coroutine의 데이터 스트림으로서 코루틴을 이용한 반응형 프로그래밍을 쉽게 작성할 수 있도록 지원하는 요소입니다. 반응형 프로그래밍.. 2023. 8. 10.
728x90