전체 글
-
Infinite Scroll with Paging LibraryAndroid 2023. 3. 7. 00:00
안녕하세요. 안드로이드팀 12기 김현수입니다. 저는 무한스크롤을 ScrollListener로 원래는 구현했었는데 이번에 Android Paging Library를 공부하여서 Paging을 사용한 무한스크롤을 구현을 포스팅하고자 합니다. Jetpack Paging Library Android Jetpack 에서는 페이징을 위한 라이브러리를 제공합니다. Paging은 구글에서 권장하는 Android 앱 아키텍처에 맞게 설계되어 있으며, 다른 Jetpack 컴포넌트와 잘 동작할 수 있도록 설계되어 있습니다. 페이징 라이브러리를 사용하여 얻을 수 있는 이점은 다음과 같습니다. 페이징된 데이터의 메모리 내 캐싱. 이렇게 하면 앱이 페이징 데이터로 작업하는 동안 시스템 리소스를 효율적으로 사용할 수 있습니다. 요청..
-
ContentObserver 알아보기Android 2023. 3. 6. 22:29
개요 타 패키지의 DB 값을 ContentProvider 로 읽어오는 로직 개발 중 DB 값이 변경되었을 때의 이벤트를 수신하고 싶었다. 가장 쉽게 구현하는 방법으로는 DB 변경을 알려주는 Intent 규격을 하나 생성하는 것이겠지만, 구글링을 통해 내가 원하는 기능을 Android 플랫폼에서 자체적으로 제공한다는 사실을 알아냈다! (나만 몰랐던 이야기…?) 단, ContentObserver는 Oreo 이상에서만 동작한다. Oreo 미만 단말에서는 Intent 를 사용해야 하겠지요? ContentObserver 가 뭔데? 이름 그대로 ‘Content를 관찰’하다가 변경이 생겼을 때 알려주는 친구다. 즉, 우리는 변경을 관찰하고 싶은 URI 를 등록하기만 하면 된다. BroadcastReceiver 사용할..
-
Jetpack Compose 이미지 blur 처리하기Android 2023. 3. 6. 22:27
안녕하세요. 안드로이드 12기 김현국입니다. 프로젝트를 진행하면서, 이미지를 흐리게 처리해야 하는 부분이 생겨서 jetpack compose를 이용하면서 이미지를 blur 처리하는 방법을 공유하면 좋을 것 같아서, 이미지 블러 처리에 대한 글을 작성하게 되었습니다~!. 제가 최종적으로 만들려고 하는 카드는 다음과 같습니다. 하단에 이미지가 blur 처리되어 있는데요. 이것을 compose로 구현하기 위해서는 어떻게 구현을 해야 하는지 알아보도록 하겠습니다. API 31 이전까지는 Render Script를 사용하여 Blur 처리를 할 수 있었습니다. val bitmap = BitmapFactory.decodeResource( LocalContext.current.resources, R.drawable.y..
-
Android Unit Test that uses StateFlow and CoroutineAndroid 2023. 3. 6. 22:22
안녕하세요 안드로이드 12기 정민지입니다. 테스트 코드는 좋은 프로그램을 만들기 위한 필수적인 과정인 것 같습니다. 하지만 한편으로는 추가로 시간을 써야 한다는 점과 기능개발에 비해 당장 눈에 보이는 성과가 적은 느낌이어서 지금까지 테스트 코드 작성을 미루고 있었는데요… 이번 글을 통해서 Coroutine(StateFlow)를 사용하는 Android Unit Test 방법과 전체적인 흐름을 알아보려고 합니다! ♡⁺◟(●˙▾˙●)◞⁺♡ 본격적으로 시작하기 전, 테스트 코드를 왜 작성해야 하는지 다시 한번 생각해볼까요?! 💕 테스트 코드를 작성해야 하는 이유 코드의 결함을 사전에 방지하고 작성한 코드에 대해 자신감을 얻을 수 있습니다. 테스트 코드는 모든 상황에 대해 작성하기 때문에, 생각하지 못했던 결함을..
-
Kotlin Delegation 분석Kotlin 2023. 3. 6. 22:12
다른 언어들에 비해 코틀린이 제공해주는 독특한 기능이 있는데요. 바로 델리게이션입니다. 델리게이션을 지칭하는 위임 패턴은 이미 전통적인 디자인 패턴 중 하나이지만, 코틀린은 이러한 위임 패턴을 아주 간단히 구현할 수 있게 만들어, 언어 차원에서 위임 패턴 사용을 적극 권장하고 있습니다. 안드로이드 개발에서도 by lazy, by remember 등의 위임 패턴을 이미 많이 사용하는데요. 오늘은 코틀린 델리게이션에 대해 간단히 알아보는 시간을 가져볼까 합니다. 상속과 위임이란 무엇일까? 코드의 재사용성은 프로젝트가 커질 수록 매우 중요해집니다. 재사용성을 늘리는 기법은 아주 많은데요, 그 중 상속과 위임 패턴도 아주 대표적인 재사용성을 늘리는 기법입니다. 객체지향 개발 방식에서는 상속을 자주 사용하게 되는..
-
Kotlinx-SerializationKotlin 2023. 3. 6. 22:07
안녕하세요 안드로이드 12기 이지은입니다. 입사한지 얼마 안되었을때, 팀장님께서 붙여놓은 @Serializable 어노테이션을 보고 parcelable과 맨날 비교하는 그 serializable(Java 인터페이스)인줄 알고 질문을 했던적이 있었습니다.ㅎㅎ 그때 처음으로 kotlinx Serialization라이브러리 라는것을 알게 되었고, 어떻게 사용하는지 왜 쓰는지 등이 궁금해서 이번 기회에! 정리해보려고 가져와봤습니다.😊 Serialization Android에서 서버통신을 할때 서버 데이터인 JSON 형식을 직렬화 및 역직렬화를 하면서 Gson, Moshi 등의 라이브러리를 많이들 사용하시죠! 저도 원래는 제일 익숙한 Gson만 사용하다가, 구글 코드랩에서 Moshi를 사용하는걸 보고 Moshi도..
-
Scope Function BasicKotlin 2023. 3. 6. 21:18
안녕하세요 안드로이드 12기 주혜진입니다~ 회사에서 리뷰 받을 때 주로 제가 스코프 함수를 잘못? 사용해서 권장되는 사용법을 알려주시는 코멘트를 많이 받았었는데요~ 그래서 요번 블로그 주제로 스코프 함수로 정해봤습니다! 이전에 스코프 함수 글이 있긴 하지만! 저는 공식문서를 번역하면서 공부한 글이라 쉽게 쓱 읽기 좋을 것 같아요! 그럼 본론으로 고고! 목적 Executing a lambda on non-null objects: let Introducing an expression as a variable in local scope: let Object configuration: apply Object configuration and computing the result: run Running statem..
-
매쉬업 안드로이드 블로그 만들기와 그 후기기타 2023. 3. 6. 21:13
안녕하세요 이 글은 Mash-Up Android 블로그를 티스토리로 이전하기 전 운영했었던 깃허브 블로그에 글을 작성하는 방법 및 후기에 대한 Android Team 유정님의 글입니다 :) 깃허브 블로그에 많은 기여를 해주시고 열심히 운영해주셨던 유정님 감사합니다 이전 블로그 사이트 주소는 여기입니다 https://mashup-android-yuchocopie.vercel.app/ 오늘 목차 위의 정해둔 양식, 즉 아래 코드블럭 안에 들어간 양식은 반드시 지켜야 해요!ㅎㅎ 안그러면 다이,, --- title: "제목입력" date: "2020-12-03" tags: ["start", "mash-up", "chocopie"] // #키워드 작성하기! description: "미리보기글" cover: "./..