프로그램/Android 56

안드로이드 google-services.json을 여러개 사용하기

회사 서비스 프로젝트를 런칭하고 난 뒤 지속적으로 유지보수를 진행하며, 추가 개발을 진행하여야 해서 프로젝트 관리를 관리하는 부분에 대하여 체크하다가 Firebase에 프로젝트를 추가로 만들어서 google-services.json을 2개를 활용하여 관리하고 싶어졌다. 이유는 사내에서 테스트를 돌려서 발생한 크러쉬 리포트와 릴리즈용 리포트를 별도로 체크를 하는것이며, 각종 수집 데이터 등등 테스트케이스까지 쌓고 싶지가 않아서, 해당부분들을 분리시키기 위해서 작업을 진행하도록 하였다. google-services.json을 2개를 활용하는 방법은 간단하였다. FlavorDimensions을 사용하면 간단하게 할수있다. 1. Firebase에서 프로젝트를 2개 생성(릴리즈용, 개발용) 2. FlavorDim..

안드로이드 해시키(Hash Key) 추출

앱 개발을 진행하면서 페이스북, 카카오sdk를 사용하기 위해서는 해시키(Hash key)를 등록해야한다. 해시키(Hash key)는 기본적으로 디버그용과 릴리즈용이 있으므로 배포전 반드시 체크하여 해시키값을 추출하여 등록하여야한다. private fun getHashKey() { var packageInfo: PackageInfo? = null runCatching { packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES) }.onFailure { it.printStackTrace() }.onSuccess { for (signature in packageInfo!!.signatures) { runCatc..

BottomSheetBehavior 사용법 및 후기

회사 신규 서비스 프로젝트를 진행하면서 골머리를 앓게 만들었던 BottomSheetBehavior... 기본적으로 사용하는 이런 기능은 BottomSheetDialog와 BottomSheetBehavior가 있다. 회사 프로젝트는 바텀시트에서 지속적으로 스택이 쌓여야 하는 기획이므로 BottomSheetBehavior를 사용할수 밖에 없었다. 기본적으로 BottomSheetBehavior를 사용하는 방법이다. behavior_expandedOffset : 바텀시트를 끌어 올렸을때 Top영역부터의 마진값 behavior_fitToContents : 바텀시트 half를 사용할 것인지 유무 behavior_halfExpandedRatio : 바텀시트 half를 화면에서 몇퍼센트정도의 비율로 할것인지 beha..

안드로이드 드래그앤 드롭(drag&drop) 사용법

안드로이드 리사이클러뷰의 아이템을 클릭하여 옮기는, 순서를 바꾸는 기능에 대한 설명입니다.(드래그앤 드롭) 일단 기본적인 구조로 리사이클러뷰를 만드신 뒤 아이템을 추가합니다. 그리고 ItemTouchHelper.Callback 을 상속받는 클래스를 생성해야합니다. 클래스를 만들고 상속 받았을경우 필수로 사용해야하는 override 메소드는 getMovementFlags, onMove, onSwiped 3가지 입니다. getMovementFlags 에서는 리사이클러뷰 아이템을 움직일 방향을 설정합니다. onMove 에서는 아이템을 움직였을경우 순서를 바꿔주면 됩니다. onSwiped 는 위아래로만 움직이는 기능이므로 사용을 하지 않습니다. isLongPressDragEnabled, isItemViewSwi..

안드로이드 세로 ViewPager

안드로이드 세로로된 ViewPager 입니다. 기본적으로 튜토리얼이나 이미지 리스트들 보여줄때 사용하는데 사용하는 것입니다. 틱톡(Tiktok)처럼 해볼까 하여 만들었습니다만 틱톡처럼 할수 없을거 같습니다. 기본적으로 스크롤 해서 넘길경우 라이프사이클이 대로 영상등을 제어 해야할것 같기 때문입니다. 그런식으로 할려면 Fragment형 ViewPager를 사용하시기 바랍니다. 한참전에 만들어 놓은 샘플소스라서 잘 기억이 나진 않지만 검색해보니 FragmentPagerAdapter 인거 같습니다. 파일은 ViewPager 를 상속받은 CustomViewPager 와 PageAdapter 를 상속받은 SampleAdapter 그리고 기본적인 Activity 가 있습니다. 1. ViewPagerActivity...

안드로이드 레이아웃 PDF 변환

안드로이드 레이아웃 PDF파일로 변환 방법입니다. itextpdf 라는 라이브러리를 이용하여 간단하게 변환 시킬것입니다. 기본적으로 돌아가는 구조는 현재 레이아웃을 jpg 이미지로 변환하여 저장한 후 그 저장된 이미지 파일을 읽어서 PDF을 만듭니다. 이렇게 되면 파일이 2개가 생기게 되므로 이미지로 만든 파일은 PDF파일로 변환후 삭제하는 방식으로 샘플코드를 만들었습니다. Gradle에 추가해야할 라이브러리 입니다. implementation 'com.itextpdf:itextpdf:5.0.6' 이미지파일을 만드는중 레이아웃을 Bitmap으로 변환하는 방법이 아래와 같습니다.(relativeLayout 최상단 레이아웃) relativeLayout.setDrawingCacheEnabled(true); r..

안드로이드 FCM 푸시(2.페이로드 및 테스트)

FCM 관련 두번째 시간입니다. 저 또한 FCM 테스트를 하며 많은 삽질을 하였습니다. 안드로이드 페이로드에 관한 부분인데요. 이 페이로드란 Push 데이터 형식, 포맷을 말하는 것입니다. 이 페이로드안에 형태에 따라 백그라운드일때 onMessageReceived에 데이터가 들어올때가 있고 않들어올때가 있습니다. 그 형태가 바로 페이로드에 notification이 있을경우인데요. 이 부분을 잘 유의하여 테스트해야 합니다. 아무것도 모르는 채로 페이로드에 다른곳에서 나와 있는 형태 그대로 notification을 사용한다면 onMessageReceived가 실행이 되지 않아서 고생 하실것 입니다. onMessageReceived를 백그라운드와 포그라운드 상태에서 계속 실행되게 할려면 notification..

안드로이드 FCM 푸시(1.프로젝트 셋팅 및 구현)

안드로이드 FCM 관련 글입니다. 구글에서는 예전부터 지속적으로 GCM이 아닌 FCM사용을 권고하였습니다. 그리고 안드로이드 신규 버전인 9.0파이버전부터는 GCM이 정상적인 작동을 하지 않습니다.(관련 링크) FCM프로젝트를 생성 및 푸시 테스트까지 진행해 보도록 하겠습니다. FCM관련 콘솔 홈페이지로 접속합니다(링크) 구글계정이 로그인 되어있는 상태에서 위의 링크를 클릭하면 아래와 같은 화면으로 진입합니다. 화면에서 프로젝트 추가를 클릭합니다. 다음부터는 스크린샷을 따라서 해주시면 되겠습니다. 아래 디버그 서명 인증서는 선택사항이며 꼭 하지 않으셔도 됩니다. 하지만 밑줄친 기능을 사용하실려면 등록하시면 됩니다. 위의 스크린샷에서 처럼 google-service.json 파일을 다운받은 뒤 현재 FCM..

안드로이드 SNS 카카오톡 로그인

안드로이드 SNS 로그인 인증 Kakao 관련 입니다. 보통 SNS로그인을 고객사가 요청하면 국내에서는 필수중의 필수라고 할 수 있죠. 이번에도 샘플에 대하여 간단한 정리를 해놓겠습니다. 카카오 역시 API를 사용하려면 카카오 Developer 사이트를 방문해야 겠지요?(링크) 그 후 우측상단에서 어플리케이션에 들어가셔서 페이스북과 기타 API 사이트들과 다르지 않게 어플리케이션을 생성합니다. 조금 까다로운 부분이 있다면 역시나 키 해쉬를 적는부분입니다. 그부분은 이전글 페이스북 관련을 참조하시면 될거같습니다. 카카오 관련 로그인을 하기 위해서 일단 AndroidManifest.xml에서 키값을 넣어 줍니다. AndroidManifest를 셋팅하셨다면 첫번째로 해야할건 KaKaoAdapter를 선언하고 ..

안드로이드 SNS Facebook 로그인

안드로이드 SNS 로그인 인증 FaceBook 관련입니다. 요즘 앱개발시 로그인을 할때 SNS를 이용하여 개발을 해달라는 경우가 많이 있어서 최근에 샘플을 만들고 간단하게 정리를 해놓도록 하겠습니다. 첫번째 다른 서비스의 API를 이용하기 위해서는 항상 그 페이지에 가셔서 앱을 생성하여야 합니다. 그러기 위해서 페이스북 Developer 사이트를 방문합니다(페이스북 페이지 링크) 1. 새 앱 만들기를 클릭합니다. 2. 앱명을 적어 간단하게 만든 후 제품추가에서 사용할 Facebook 로그인을 클릭하여 줍니다. 3. 안드로이드 추가를 클릭하셔야겠죠? 4. Gradle 프로젝트 관련에서 아래녀석들을 추가합니다.mavenCentral()implementation 'com.facebook.android:face..