Android 17

안드로이드 해시키(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..

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

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

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

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

안드로이드 앱배포(2.구글 스토어 배포)

두번째 구글 플레이 스토어 앱배포시간입니다. 첫번째 시간에 만들었던 APK파일을 이제 앱을 올리기 위해서 사용해야합니다. 구글 플레이 스토어에 들어온다면 애플리케이션 만들기 버튼이 있을것입니다. 버튼을 클릭하여 뜨는 팝업창에 국가와 앱명을 적어주시면 되겠습니다. 위와 같이 앱명과 기본언어를 선택하여 만드셨다면 아래와 같은 화면들이 나오는데 * 표시가 보이는 곳은 다 입력을 해주셔야합니다. 스토어 등록정보에서 제목, 간단한 설명, 자세한 설명등을 입력해주셔야합니다. 밑부분 스크린샷을 추가하는 부분이 있습니다. 여기서 고해상도 아이콘 같은 경우는 말은 그럴듯하지만 설명하는 스크린샷 제일 앞에 들어가는 것입니다. 그래픽 이미지는 구글 스토어에서 앱을 검색하였을 경우 젤 최상단에 있는 이미지를 말하는것입니다. ..

안드로이드 앱배포(1. APK 생성)

이번에는 구글스토어에 앱을 올리는 방법에 대하여 알아 보도록 하겠습니다. 구글 앱 스토어에 앱을 올리기 위해서는 준비물이 필요합니다. 첫번째 앱을 올릴수 있는 결제가 되어있는 구글계정 두번째는 앱이 작업되어있는 프로젝트입니다. 제가 설명할 내용에서는 첫번째 결제과정에 대하여는 설명하지 않도록 하겠습니다. 다만 결제가 되어있지 않는 경우 https://play.google.com/apps/publish/?hl=ko 사이트에서 자연스럽게 결제로 유도되도록 되어있을것입니다. 그럼 이제 제가 첫번째로 설명할 내용은 앱을 바로 구글스토어에 올릴수 있도록 파일을 만드는것입니다. 1. 안드로이드 스튜디오에서 Build -> Generate Signed APK 를 클릭하도록 합니다. 2. 위를 따라 클릭을 하시면 아래..

네이버맵 API 사용하기(2.좌표찍기, 마커찍기)

두번째 네이버맵에 좌표찍거나 해당지역을 처음부터 띄어주는것을 하도록 하겠습니다. 네이버맵을 이용해서 맵을 띄웠을경우 setMapCenter 이라는 함수를 이용하여 해당위치를 처음부 터 보이도록 할수 있습니다. setMapCenter함수에 입력하는 위도, 경도 값이 건물이여선 않됩니다. 넓은 영역이여야하죠. 만약 건물의 좌표를 입력하였다면 아래와같은 화면이 뜰것입니다. 대략적으로는 네이버 개발자 센터 android안에서 제가 사용한 함수들을 보시면 아주 잘 이해하실수 있으실거 같습니다.(https://developers.naver.com/docs/map/android/) setMarker라는 함수가 마커를 만드는 함수입니다. 그리고 테스트 하기 위해서 delay를 주었구요. 네이버에서 제공하고 있는 샘플에..

네이버맵 API 사용하기(1.네이버앱 등록 및 기본 맵 띄우기)

이번에는 네이버맵에 대한 사용법을 알아볼 예정입니다. 여기저기 맵에 대한 사용 의뢰 또는 사용할 일들이 많기 때문에 미리 연습해보면 좋을거 같습니다. 제가 네이버맵을 사용하는 이유는 구글맵은 유료가 되었고 다음카카오 맵을 이용할려 하는데 최근에 바뀌면서 에러가 난것인지 다음 개발자 센터에 등록된 키를 사용하는 앱은 정상작동하고 카카오에 등 록하면 오류가 나서 안되는건지 에러로 인하여 만들어 볼수 없었던 관계로 네이버맵을 적용하기로 하 였습니다.(제가 실력이 부족해서 못한것일수 있음을 알려드립니다.) 1. 첫번째 방법입니다. “네이버 개발자센터” 를 검색하여 네이버 개발자센터 홈페이지로 들어갑니다. 그 후 네이버 계정을 이용하여 로그인을 한후 위에 보이는 상단메뉴에서 Application -> 어플리케이션..

APK에서 개인정보처리 방침이 필요한 권한을 사용합니다.

안드로이드 Release용 apk파일을 이용하여 앱 배포시 아래와 같은 문구가 뜬다면 앱정보에서 개인정보처리방침에 대한 대한 url을 등록하지 않아서 나는 오류이다. 앱정보 -> 스토어 등록정보 -> 젤밑으로 스크롤 한다면 개인정보 처리방침이 나오는데 여기에 개인정보 처리방침이 처리된 url이 들어가야한다. 그렇지 않은 이상은 업을 업로드 할수 없다. 개인정보 처리방침은 아래 홈페이지에 들어가서 만들수 있습니다.

1 2