반응형 안드로이드/코틀린37 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. AAC Navigation의 특징 오늘은 안드로이드의 Navigation에 대한 내용입니다. 머테리얼 디자인의 바텀 내비게이션과 같은 그런 것을 이야기하는 것은 아닙니다. 안드로이드 Jetpack 라이브러리에 동봉되어 있는 프래그먼트의 흐름의 가시성을 높여준다고 하는 navigation 그래프에 관한 내용입니다. AAC Navigtaion이란? 제가 설명할 내비게이션은 Jetpack 라이브러리 내에 속해있는 요소입니다. 기존 프래그먼트의 경우, FragmentManager를 통해(childFragmentManager든, parentFragmentManager든) 프래그먼트를 add 하거나 replace하는 등의 효과를 통해 프래그먼트를 변경해주는 작업을 진행했습니다. 이는 딱히 큰 문제가 되지는 않았지만 각 프래그먼트의 다음 프래그먼트가.. 2023. 6. 2. JvmStatic 어노테이션 회사에서 작성중인 안드로이드 코드가 거의 대부분 자바로 이루어져 있어 코틀린으로 변환하는 중에 있는데, 코틀린으로 작성할 때 상호작용하는 자바코드를 신경써야 하다보니 이것저것 많이 찾아보게 되는 것 같습니다. 이번에 시간이 남아 사용중인 것들을 하나씩 정리해야겠습니다. @JvmStatic 이 어노테이션의 경우, java의 static처럼 사용할 수 있도록 도와주는 어노테이션입니다. 코틀린에서 객체를 선언하지 않고 바로 참조하는 static 형태의 경우 companion object 및 object 키워드를 통해 사용하곤 하는데, 이렇게 사용하는 경우 자바 코드에서는 Class.Companion.method 혹은 Class.INSTANCE.method 형태로 바꿔 사용해야 합니다. 코틀린에서는 큰 차이를 .. 2023. 3. 16. 이전 1 2 3 4 5 ··· 7 다음 728x90 반응형