본문 바로가기

안드로이드

(161)
[Kotlin] Filter 함수로 For문 대체하기 코틀린의 Filter함수를 사용하면 for문과 if문을 보다 간결하게 표현할 수 있습니다. 성능상 이점을 확인하긴 어렵지만 프로그램의 규모가 커질수록 가독성 부분에선 이점을 확실하게 확인할 수 있습니다. 러닝커브가 높진 않지만 활용하려면 조금 생각을 해야합니다. 하지만 for문과 if문은 평소에 많이 사용하기 때문에 익숙해질수록 좋다고 생각합니다. 아래 5명의 사람중 선택된 사람의 이름들만 뽑는 메소드를 만든다고 가정하겠습니다. 결과 : "사람1,사람3,사람5 " data class Person(val name: String, val isSelect: Boolean) var list = listOf( Person("사람1",true), Person("사람2",false), Person("사람3",true..
[AOS] Custom QR Reader 만들기 일전에 qr reader에대해 가볍게 포스팅을 작성한 적이 있는데 테스트 목적으로 작성되다보니 부족한 부분도 많고 업데이트된 내용들이 있어서 새로 포스팅을 작성합니다. zxing에서 제공하는 라이브러리를 사용해 구현하는데 기본적인 화면은 아래 사진과 같습니다. github 에 가시면 샘플 프로젝트를 다운받아서 실행시켜볼 수 있는데, 구현 가능한 기능들이 정리되어 있어 한번 다운 받아서 실행시켜 보시고 코드 분석 후 필요한 기능을 구현하시면 좋을것 같습니다. 해당 포스팅에 담길 내용 네이버 렌즈와 같은 QR Reader 앱을 구현하는데 필요한 사항들입니다. - 투명한 Status bar - 연속 QR 인식 - QR 화면 Custom - 실행중 카메라 전환 기본 QR 구현 AndroidManifest.xml..
[AOS] 토스 하단 버튼 애니메이션 구현하기 앱 개발을 하다보면 '00처럼 해주세요'를 많이 듣게 됩니다. 같은 부류의 후발주자가 아닌데도 그런 얘기를 많이 듣는 이유는 많은 사람들이 그 앱을 사용하고 있고 그로 인해 좋은 경험을 했기 때문이 아닌가 생각합니다. 저는 개발자로서 디자이너가 요청한 UI는 최대한 수용해주고자 하는데 제가 봐도 이해되지 않는 UI가 아닌 이상 디자이너의 생각을 실현해주는게 개발자의 역할중 하나라고 생각하기 때문입니다. 참고 화면 제가 구현하는 화면은 토스처럼 정보수정 화면 아니였지만 하단에 버튼이 있고 스크롤이 가능하고 입력폼이 있는 화면이였습니다. 그리고 사용자 경험이 많이 발생하는 화면은 아니였지만 간단한 화면이라도 사용자에게 좋은 경험을 줄수 있다면..시간을 투자해야죠! 분석 어려운 애니메이션은 아니지만 명확하게 ..
[AOS] 테마 적용하기 하는 방법 2가지 제가 현재 운영중인 '톡썰만들기'에는 테마 색상을 변경하면 주요 화면의 아이콘등의 배경색들이 변경됩니다. 테마 기능을 많은 유저분들이 원하셨지만 망설였던 이유가 색깔별로 아이콘 리소스를 생성해서 바꿔주는거 말곤 방법이 떠오르지 않았기 때문입니다. 혼자서 다 진행하다보니 현생도 있고..가정도 있고 쉽지 않았는데 괜찮은 방법을 찾아서 공유드립니다. 사실상 2가지 방법이지만 첫번째는 비효율적인 방법입니다. | 테마별 리소스 생성 및 대체 ( 안좋은 사례 ) 앞으로도 추가될수 있는 테마들을 어떻게 하면 보다 짧은 코드로 적용할 수 있을지 고민하다 찾은 방법이 리소스명에 테마 인덱스 숫자를 붙여서 적용하는 방법입니다. binding.ivChattingRealLike.setImageResource( getIdent..
[AOS] Mopub Migration MAX ( 광고 SDK ) 기존에 애드몹과 애드핏을 사용중이였지만 글로벌 출시를 하면서 외국인 유저를 대비해 Mopub 광고 Sdk를 연동했었습니다. ( 카카오 애드핏 광고의 경우 국내 유저 대상으로만 권고하고 있습니다. ) 외국인 유저가 많지 않아 애드몹으로도 커버가 될 수 있지만 광고가 부족해 실패가 떨어질 경우 Mopub을 호출했습니다. 그러다 Mopub이 AppLovin에 인수되어 'MAX'라는 이름으로 변경됐다는 소식을 듣고 변경작업 진행했습니다. ※작성일 기준 (22.2.15)에는 Mopub Delveloper에 접속은 가능합니다. | 구현 과정 1. AppLovin 계정이 없는 경우 새로 가입하고 2. MAX 광고 Unit을 생성하고 3. Api key를 발급 받는 | Unit 생성 회원 가입후 로그인을 하고 'Med..
[AOS] 데이터 보안 양식 제출 요 근래 '데이터 보안 양식 제출 하세요'란 메일을 구글로부터 받았습니다. ( 아래 사진 참조 ) 2월부터 앱 스토어 등록정보에 '데이터 보안 섹션'이 표시되는데 해당 내용을 4월까지 승인 받지 않으면 4월 이후에 앱 업데이트가 거부될 수 있다고 합니다. 시간적 여유는 있지만 최근 UGC 정책 위반으로 고생한걸 생각하면 빠르게 대응하는게 뒤탈이 없습니다. ( ugc 정책 위반 대응은 포스팅을 참고해주세요. ) AOS - UGC 정책 위반 해결하기 작년 말(21.11월)부터 저를 포함한 많은 개발자들이 'UGC 정책 위반'으로 인한 리젝으로 업데이트시 고통을 겪고 있습니다. 대부분의 사람들이 '기존에는 괜찮았는데 갑자기 왜 리젝이지?' 라며 의 superwony.tistory.com 데이터 보안 제출 시작..
[AOS] 이모지 깨짐 현상 ( 파편화 대응 ) 이모지란? 이모지(Emoji)는 Unicode의 그림 문자열을 뜻합니다. 예로 채팅시 디바이스별 제공되는 아래와 같은 친구들입니다. 이모지 파편화 안드로이드나 아이폰 끼리도 다르고 심지어 같은 삼성폰이여도 표현하는 방식들이 다릅니다. 그리고 페이스북이나 트위터와 같은 SNS 플랫폼에서도 각기 다르게 표현합니다. 그래서 이모지가 의도와 다르게 보여지거나 깨져서 안보일 수 있습니다. 예를 들어 서버에서 이모지 스트링을 내려줘서 앱내에 보여줘야 하는 경우 대중적인걸 사용한다고 해도 어떤 기기가 깨지는지 모두 확인하는 건 어렵습니다. ( 테스트시 s10에서는 깨지는데 s21에서는 안깨짐 ) 이모지 파편화 대응 구글에서 이모지가 깨지지 않도록 라이브러리를 제공합니다. ( 공식문서 ) TextView, EditTe..
[AOS] 페이스북 로그인 에러 해결 이번 페이스북 로그인을 연동하면서 발생한 문제가 2가지 있었습니다. - '로그인 오류 : 앱에 로그인 하시는데 오류가 발생 했습니다. 나중에 다시 시도하세요' 란 문구와 함께 로그인이 진행되지 않는 경우 - Invalied key hash. The key hash '~~' doen not math any stored key hashes. Configure your app key hashes at https://develpoers.facebook.com/apps/{appId} 테스터 추가 먼저 첫번째 에러의 경우 developer에 등록되지 않은 계정일 경우 발생하는 이슈였습니다. 아래 사진처럼 로그인 후 좌측에 '역할' 메뉴에서 테스터나 개발자등 알맞는 역할에 추가하면 됩니다. 추가시 페이스북 로그인 계..