mash-up
-
repeatOnLifecycle, launchWhen...에 대해서Android 2023. 3. 7. 00:15
최근에 저는 LiveData에서 StateFlow로 넘어가면서 항상 코드에 다음과 같이 작성해주었습니다. viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) { viewModel.someDataFlow.collect { // Process item } } } 그런데 어느 정도는 알지고 있었지만, 제대로 알지 못해 더 자세하게 알고 싶어서 포스팅하게 됐습니다. 먼저 lifecycleScope는 Android Developer를 보면, LifeCycle이 DESTROYED일 때 장기적인 job을 자동으로 취소해준다고 되어있습니다. 그런데 취소해주는 것과 별개로, 특정 상황에..
-
Jetpack Compose Side EffectAndroid 2023. 3. 7. 00:11
안녕하세요🙌🏻 Mash-up Android 12기 백다연입니다. Jetpack Compose를 프로젝트에 도입해보면서 조금 더 깊게 공부해보고 싶다는 생각을 갖게 되어 Compose Side Effect 라는 주제로 글을 작성해보려고 합니다! Side Effect가 무엇인지, 어떻게 처리하는 지 등 간단하게 소개해보도록 하겠습니다. Side Effect란? 💡 Composable 범위 밖에서 발생하는 앱 상태에 대한 변경 Composable을 사용할 때 여러 Composable을 겹쳐서 사용합니다. 이 경우 시스템은 각 Composable에 대한 LifeCycle을 만들게 됩니다. 또한, 기본적으로 Composable은 바깥쪽에서 안쪽으로 State를 내려줍니다. 하지만, 안쪽 Composable에서 바..
-
Android EventBusAndroid 2023. 3. 7. 00:07
Event Bus 안녕하세요 Mash-Up 안드로이드 10기 양민욱입니다 :) Activity, Fragment, 혹은 Service 간의 데이터 송수신. 여러분들은 어떤 방식을 사용하고 있으신가요? intent, bundle부터 Receiver, ViewModel까지 다양한 방법들이 머릿속에 떠오르실 거라 생각이 드는데요. 제가 오늘 소개해드릴 EventBus 라이브러리는 역시 Android 내에서 데이터를 공유하는 방법의 하나입니다. 저도 입사 전에는 전혀 모르고 있던 라이브러리인데요. 회사 내에서 여러 프로젝트를 개발할 때 EventBus 라이브러리 덕분에 쉽고 빠르게 개발을 완료할 수 있었던 좋은 기억들이 많아서 오늘 간단한 사용 방법과 현업에서 어떻게 사용하고 있는지 소개해보려고 합니다. Eve..
-
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 사용할..
-
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: "./..