본문 바로가기

안드로이드

(26)
[AOS] 카카오 애드핏 사용 개발자들이 알아야될 구글 정책 최근 구글로부터 '데이터 보안 양식 제출' 이라는 메일들을 발송해 조치를 권고 했었고 저 또한 관련 포스팅을 남겼었습니다. AOS - 데이터 보안 양식 제출 요 근래 '데이터 보안 양식 제출 하세요'란 메일을 구글로부터 받았습니다. ( 아래 사진 참조 ) 2월부터 앱 스토어 등록정보에 '데이터 보안 섹션'이 표시되는데 해당 내용을 4월까지 승인 받지 않 superwony.tistory.com 간략하게 Google Play에서 사용자가 앱을 다운로드하기 전에 앱에서 사용자 데이터중 어떤걸 수집하고 어떻게 공유 하는지 파악하고 앱을 선택하도록 하기 위함입니다. 갈수록 보안에 신경쓰고 있네요 아직 진행하지 않으신분들은 시간이 얼마 걸리지 않으니 제출하는걸 추천드립니다. 미루다가 업데이트에 맞춰 진행하려고 하면..
[AOS] Custom QR Reader 만들기 일전에 qr reader에대해 가볍게 포스팅을 작성한 적이 있는데 테스트 목적으로 작성되다보니 부족한 부분도 많고 업데이트된 내용들이 있어서 새로 포스팅을 작성합니다. zxing에서 제공하는 라이브러리를 사용해 구현하는데 기본적인 화면은 아래 사진과 같습니다. github 에 가시면 샘플 프로젝트를 다운받아서 실행시켜볼 수 있는데, 구현 가능한 기능들이 정리되어 있어 한번 다운 받아서 실행시켜 보시고 코드 분석 후 필요한 기능을 구현하시면 좋을것 같습니다. 해당 포스팅에 담길 내용 네이버 렌즈와 같은 QR Reader 앱을 구현하는데 필요한 사항들입니다. - 투명한 Status bar - 연속 QR 인식 - QR 화면 Custom - 실행중 카메라 전환 기본 QR 구현 AndroidManifest.xml..
[AOS] TextView에 Auto size 적용하기 textview에 auto size를 적용시 한정된 영역에 글자를 모두 담지 못할 경우 사이즈가 줄어 드는 원리기 때문에 원칙적은 width / height를 고정 해줘야합니다. ( 구글은 wrap_content 비권장 ) 하지만 height를 고정하면서 글자가 짤리지 않고 불필요한 여백을 갖지 않게 하는건 번거롭기 때문에 wrap_content를 사용하고 maxLines를 1로 지정해주면 됩니다. - autoSizeTextType : uniform으로 지정 - autoSizeMinTextSize : 작아질 최소 사이즈를 지정합니다. - autoSizeStepGranularity : 영역에 넘칠 경우 크기를 줄일 단위를 지정합니다. ( 위 코드는 1dp씩 줄어듬, 클수록 부자연스러움 ) - autoSiz..
[Android/Kotlin] Transformations를 사용해 Livedata 활용하기 Livedata는 양방향 데이터 바인딩이나 Transformation과 함께 쓸수록 더 유용하게 사용할 수 있습니다. Transformation은 하나의 Livedata가 변경될때마다 다른 Livedata를 변경해줄때 사용하면 유용합니다. >> Transformations.map ( 공식문서 ) 첫번째 인자로 Livedata 넘겨준다. 두번째 인자 리턴 형태가 있는 함수를 넘겨주는데 반환 타입에 제한은 없다 ( 리턴된 타입이 String이면 Livedata으로 반환된다.) var name = MutableLiveData() var displayName = Transformations.map(name){ mapName -> "우리${mapName}" } 디비에 저장된 이름을 불러오는 'name' 변수가 있..
TargetSdkApi 29 대응하기 이제 11월부면 신규앱도 구글 스토어에 등록할때 targetSdkApi를 29로 조정해야합니다. 등록하기 앞서 기존에 사용중이던 기능들이 제대로 작동하는지 파악해야합니다. 굵직한 변화들은 이미 많은분들이 포스팅을 통해 소개했기 때문에 실질적으로 마이그레이션시 신경써야 하는 부분들을 서술 하도록 하겠습니다. >> 비SDK 사용 금지 구글 문서에 공식화 되지 않은 SDK들로 강제로 사용하는 경우가 있다고 하네요. 생소해서 처음 들어보긴 하지만 blacklist(차단목록)에 포함된 인터페이스에 접근하려고 할때 에러가 발생할 수 있으니 사용중이라면 제거하고 출시하는게 맞을것 같아서 찾아 봤습니다. 먼저 비 SDK API는 3가지로 구분됩니다. blacklist ( 차단 목록 ) - 앱의 타겟 api 수준과 상관..
[안드로이드/Android] AndroidX 대응 28버전부터 라이브러리 패키지명을 androidx.*로 통일한다고 합니다. 기존에 서포트 라이브러리등을 사용할때 타겟 버전에 맞춰서 라이브러리 버전등을 변경하는 번거로움이 있었는데, 이번 androidx로 번거로움을 해결할 수 있습니다. 보다 자세한 내용은 여기를 참고해주세요! 리펙토링 androidstduio 3.2 버전부터 제공하는 androidx 리펙토링 기능을 사용하면 간편하게 할 수 있습니다. Rafactor > Magrate to AndroidX ※리펙토링을 진행하기전에 소스 파일 백업을 추천드리며, complieSdk는 28로 변경하셔야 합니다. 리펙토링 후 추가 기능을 위해 다른 포스팅을 참고할때 여기를 참고하시면 기존 라이브러리에 대응하는 androidX 목록을 보실 수 있어서 편합니다.
[안드로이드/Android] Firebase Database 시작하기 관련 포스팅Firebase Database 데이터 검색Firebase Database 데이터 수정 최초작성 : 17.11.101차 수정 : 18.01.25 ( 권한 설정 ) 안녕하세요. 요번 포스팅에서는 Firebase Realtime database을 적용시켜서 개발을 좀 더 쉽고 빠르게 진행 할 수 있는 방법에 대해 소개하고자 합니다.많은 1인 모바일 개발자들은 개인 프로젝트를 진행하다 여러 장벽에 부딪혀 포기 해야만 했던 기억들을 한번쯤은 갖고 있을 것이라 생각합니다.물론, 서버까지 혼자서 모두 수행하시는 분들도 계시지만 저 역시 그렇지 않기에 저와 같은 사람들을 위해 해당 포스팅을 쓰고자합니다. 1. 실시간 데이터 베이스를 사용 하기 앞서 Firebase 콘솔에 작업중인 프로젝트를 생성하셔야합니다..
[안드로이드/Android] 설치된 어플 확인 안녕하세요 요번 포스팅에서는 간단한 사항에 대해 다뤄보도록 하겠습니다. 앱을 개발하다보면 사용자 단말기에 sns등의 타앱 설치 유무를 체크해, 해당 앱을 실행하거나 설치를 유도할 경우가 있습니다. 수정내용2019.02.18 : 특정 앱 실행시키는 코드 추가 1. 특정 앱 설치유무 체크 패키지명을 파라미터로 받아 설치 유무를 리턴해주는 메소드 입니다. private boolean isInstallApp(String pakageName){ Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(pakageName); if(intent==null){ //미설치 return false; }else{ //설치 return true; } } 2..