본문 바로가기
반응형

안드로이드/코틀린30

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.
Kotlin - Object 키워드(with SingleTon) 이직을 했습니다. 처음 마주한 코드는 SingleTon 형태의 자바 코드였습니다. 10년도 더 된 코드라 자바 코드가 많아 코틀린으로 넘어가려고 노력은 하지만, 점진적으로 천천히 이루어갈 예정이라고 합니다. 제가 면접때 강점을 마이그레이션이라고 표현했던 게 기억이 났습니다. 왜 이 곳에 합격했는지 알게되었고, 제가 할 수 있는 일이 좀 있겠다는 생각이 들었습니다. 그래서 그런 김에, 간만에 학생때 공부하던 SingleTon의 개념과, 그를 이용한 Kotlin의 Object에 대해 정리해야겠다는 생각이 들었습니다. 먼저 코틀린의 Object 키워드가 무엇인지 알아야 할 것 같습니다. https://kotlinlang.org/docs/object-declarations.html#object-declarati.. 2023. 2. 17.
728x90