Android/프로젝트 개발

    [Android] Retrofit에서 XML 데이터 통신 및 파싱 방법 / RecyclerView XML 데이터 받아오기

    들어가기 전 현재 'ITda' 라는 이주 노동자들을 위한 서비스를 개발하고 있다. 나는 현재 뉴스페이지를 개발하고 있고 이 뉴스는 문화체육관광부의 정책뉴스 공공 API를 활용하기로 했다. 하지만 해당 API는 Json이 아닌 XML 형태로만 데이터를 보내주기 때문에 기존에 사용하던 JSON 파싱이 아닌 XML 데이터를 Retrofit에서 파싱해야했다. 따라서 이번 포스팅에서는 XML 데이터를 파싱해 전달받는 방법을 소개하고자 한다. 모든 예시는 아래 API와 함께한다. https://www.data.go.kr/data/15095335/openapi.do 문화체육관광부_정책브리핑_정책뉴스_API 문화체육관광부_정책브리핑_정책뉴스는 대한민국 정부의 중요한 정책뉴스, 카드뉴스, 인포그래픽, 사실은이렇습니다 등..

    [Android] 인앱 업데이트 구현하기 / 인앱 업데이트 테스트

    들어가기 전 엄빠는 어렸다 1.1.0 버전 업데이트 과정에서 사용자에게 업데이트를 권유 할 수 있는 업데이트 팝업을 구현하고자 했다. 따라서 이 포스팅에서 업데이트 팝업을 구현하는 방법을 알아보고자 한다. 업데이트 팝업이란? 어플에 새로운 기능이 추가되거나 버그가 수정되어 업데이트가 필요한 경우가 발생할 수 있다. 이 때 어플을 실행시키면 사용자에게 업데이트가 필요함을 알리는 팝업을 업데이트 팝업이라 한다. 위 사진과 같이 사용자에게 업데이트를 유도할 수 있다. 엄빠도 어렸다 서비스에서는 업데이트 팝업을 구현하기 위해서 인앱 업데이트 방식을 활용하였다. 인앱 업데이트란? 구글은 안드로이드 5.0 이상을 사용하는 기기에 인앱 업데이트 기능을 지원하고 있다. 이는 구글 플레이스토어를 거치지 않고 앱 업데이트..

    [Android] registerForActivityResult로 팝업 Activity를 만들어보자

    들어가기 전 엄빠도 어렸다 서비스를 만들면서 두 사용자가 7일차까지 모두 답변을 마쳤을 때 홈화면 대신 엔딩화면이 팝업처럼 띄워지도록 구현해야했다. registerForActivityResult를 통해서 이 기능을 구현한 과정과 겪은 트러블슈팅을 포스팅해보도록 하겠다. registerForActivityResult 란? 기존의 Activity간의 이동을 할 때 startActivity(intent : Intent )를 통해서 단방향 이동을 하고, 데이터값 전달과 함께 양방향 이동을 위해서는 startActivityForResult(intent:Intent, requestCode:Int) 을 사용했다. 하지만 startActivityForeResult는 콜백 수행의 안정성, 보일러플레이트 코드의 증가 이슈..

    [Android] 안드로이드 MaskFilter로 blur 효과 구현하기

    들어가기 전 엄빠도 어렸다 서비스를 만들면서 그림과같이 내가 답변을 하기 전에 상대가 답변을 할 경우 문답화면에서 상대 답변이 블러처리가 되어있는 디자인을 구현했어야 했다. 이 때 블러를 구현하기 위해서 사용했던 방법을 소개하고자 한다. Blur 효과 만들기 안드로이드 Paint BlurMaskFilter 사용 private fun setBlurText(isBlur: Boolean) { with(binding) { tvAnswerOther.setLayerType(View.LAYER_TYPE_SOFTWARE, null).apply { if (isBlur) tvAnswerOther.paint.maskFilter = BlurMaskFilter(16f, BlurMaskFilter.Blur.NORMAL) else..

    [SWith] 검색 무한스크롤

    스터디 검색 부분을 만들면서 필터링 검색 + 검색 결과 목록들은 무한스크롤로 구현하게 되었다. 무한스크롤이란? 위 이미지와 같이 게시물 리스트를 내리다가 끝 지점에 도착하면 다음 게시물 리스트를 불러오는 방법이다. 목록 끝 지점에 도착해 다음 게시물을 불러오는 중에 프로그레스바를 보여주고 로딩이 끝나면 프로그레스 바를 삭제하고 아이템뷰를 이어서 보여준다. => 홀더가 2개가 필요하다!