Android/프로젝트 개발
[Android] Menu 데이터는 어디에 저장하는 게 성능이 좋을까? (RoomDB vs Object)
들어가기 전모바일 휴대폰의 설치된 어플리케이션 목록처럼, 화면에 이동 가능한 Activity 버튼들이 나열되어 있는 화면을 구현하고 있습니다. RecyclerView로 구현하여 각 item에 담을 리스트 데이터가 저장되어 있는데 .. 이 리스트를 RoomDB에 저장하는게 좋을지, Object에 선언하는 것이 좋을지. 성능 측면에 이점이 궁금해 각각을 알아보고, 분석을 하고자 합니다.
[Android] PDF 뷰어 띄우기 / Activity 내에 PDF 뷰어 넣기 feat. 파일관리
기능 요구사항Activity내가 아닌 pdf 뷰어만 보여준다.Activity 내에 pdf 뷰어를 띄워 보여준다.각각 요구사항을 만족시키는 방법에 대해 작성하였다.[공통] Android Studio PDF File 준비하기1. assets 폴더 생성projcet > app > src > main 아래에 new directory 진행assets 를 선택 한 후 폴더를 생성한다.2. 폴더에 pdf 담기생성한 assets 폴더 안에 뷰어에 띄우고자 하는 pdf 파일을 넣는다.[들어가기 전] IputStream / OutputStream 이란file의 copy를 다루면서 inputStream과 outputStream을 사용하게 되는데해당 개념이 헷갈려서 정리해둔다.이미지 출처 : https://lannstark..
[Android/JAVA] Zxing 활용 바코드/QR 스캐너 구현하기
기능 요구사항바코드, QR코드 스캔을 통해 데이터를 가져올 수 있도록 한다.Zxing을 활용한 바코드 구현Zxing이란Zxing (Zebra Crossing) : zxing은 오픈소스로 다중형식의 1D/2D 바코드 이미지를 처리하는 자바 라이브러리이다. zxing을 활용해서 바코드를 생성하고 읽을 수 있으며 지원하는 바코드 형식 또한 다양하다. 아래 repository를 통해서 안드로이드에서 zxing을 활용할 수 있다.https://github.com/journeyapps/zxing-android-embedded카메라 권한 설정바코드, QR코드 스캐너는 사용자의 카메라를 통해 스캔한다. 따라서 앱에서 카메라를 사용할 때 사용자의 카메라 권한이 필요하다. 카메라 권한을 설정하는 방법은 다음과 같다.1. ..
[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개가 필요하다!