본문 바로가기

안드로이드

(161)
[AOS] Firebase Authentication 400 Error 안드로이드에 firebase를 사용하여 애플로그인을 연동하고 있는데 애플 로그인 클릭시 400 error가 발생합니다. 관련 에러를 찾아보니 sha1, sha256용 디버그 키가 추가되지 않거나 부적절한 키가 추가 됐을때 발생한다고 합니다. 기본적으로 파베를 연동하고 테스트 해보려면 sha1, sha256키가 필요하기 때문에 기존에 사용하던 방법을 사용해서 키를 추가했는데도 발생했습니다. 그래서 다른 방법으로 sha1, sha256키를 발급 받았는데 기존에 추가한 키와 다른걸 발견하고 기존 발급 방식이 잘못 됐다는걸 알았습니다. SHA-1, SHA-256키 발급 스튜디오 우측 'Gradle'을 클릭하셔서 Tasks -> android -> signingReport를 더블클릭 하시면 됩니다. Tasks 자..
[AOS] UGC 정책 위반 해결하기 작년 말(21.11월)부터 저를 포함한 많은 개발자들이 'UGC 정책 위반'으로 인한 리젝으로 업데이트시 고통을 겪고 있습니다. 대부분의 사람들이 '기존에는 괜찮았는데 갑자기 왜 리젝이지?' 라며 의문을 품었습니다. UGC 정책에 있어 구글에서 강력하게 요구하는건 2가지 였습니다. 사용자가 직접 작성할 수 있는 컨텐츠에는 신고 기능이 있을 것 신고한 사용자나 그 게시물이 즉시 차단조치 되어 보이지 않게 할 것 그 외 요구 사항은 이용약관등에 해당하는 가벼운 내용이니 공식 문서를 참고해주세요. ( 아니 심지어 애플도 권고 사항인데... ) 여기서 주목해야 할 사항은 '사용자가 직접 작성할 수 있는 컨텐츠'의 범주 입니다. 가볍게 생각하면 인스타나 페이스북등 본인의 피드를 갖는 앱이 떠오를수 있는데 구매한 ..
[AOS] Expected @HiltAndroidApp to have a value. Did you forget to apply the Gradle Plugin 오류 해결 최근에 hilt를 공부했을때 진짜 편리하다고 생각해서 개인 프로젝트에도 적용하려고 큰 맘을 먹고 작업을 시작하고 빌드했을때 'Expected @HiltAndroidApp to have a value. Did you forget to apply the Gralde Plugin' 오류를 직면했습니다. [AOS] Dagger Hilt - DI 요즘 mvvm 검색하면 항상 붙어 나오는 키워드중 하나가 DI인것 같습니다. ( 요즘이 아니라 한참 오래전이긴 함 ) MVVM을 적용해보면서 코인은 써봤지만 hilt는 'Dagger'의 학습곡선이 상당하다는 얘기 superwony.tistory.com 검색을 해보니 kotlin버전이 1.5.20일때 발생하는 문제로, 버전을 낮추거나 높히면 에러를 해결할 수 있고 또 다른..
[AOS] 카메라로 촬영한 이미지 경로 가져오기 ( targetSdk 30 대응 ) 많은 수의 앱에서 갤러리에서 사진을 업로드하고 카메라로 사진을 찍어서 올리는 행위를 합니다. 인스타그램이나 페이스북처럼 sns을 통해서 자신의 일상을 사진의 형태로 공유하기 때문인데요. 그러다보니 저도 앱들을 개발하면서 이미지 관련 포스팅을 여러개 남겼습니다. 웹뷰에서 이미지 업로드 , 카메라 갤러리에서 이미지 가져오기 (코틀린), 카메라 갤러리에서 이미지 가져오기 (자바) Webview 이미지 업로드 구현하기 ( 카메라, 갤러리 ) 웹뷰가 아닌 네이티브만 작업하시는 분들은 제 블로그에 다른 포스팅을 참고해주세요 ! ( 그리고 해당 포스팅은 minsdk 21, Kotlin 기준으로 작업됐습니다. ) [안드로이드/코틀린] 카메라와 갤러리에 superwony.tistory.com 그런데 또 같은 주제로 포스..
[AOS] Dagger Hilt - DI 요즘 mvvm 검색하면 항상 붙어 나오는 키워드중 하나가 DI인것 같습니다. ( 요즘이 아니라 한참 오래전이긴 함 ) MVVM을 적용해보면서 코인은 써봤지만 hilt는 'Dagger'의 학습곡선이 상당하다는 얘기만 들어서 엄두도 못내다가 이직한 회사에 힐트가 적용되어 있어 공부한 내용을 정리해봅니닷 | DI 필요성 ( 의존성 주입 ) A 클래스에서 B 클래스를 객체화 해서 사용하는 경우를 예를 들어보면 아래와 같습니다. class A{ val b = B() ... } class B{ ... } 만약 B클래스의 기능 변화로 객체화시 넘겨줘야 하는 변수가 생긴다면 B클래스를 객체화 하는 클래스를 모두 찾아서 그에 맞게 변경 해줘야 합니다. class B constructor(val number: Int){ ..
[AOS] ParseError at [row,col]:[4,2] - 명확하지 않은 에러 잡기 브런치 머지하는 과정에서 충돌을 해결할때 위와 같은 에러가 발생했습니다. 형상관리 툴로는 소스트리를 사용하고 있고, 충돌된 파일들을 알맞게 수정했는데 빌드시 'ParseError at [row,col]:[4,2]' 에러가 발생했습니다. 어떤 파일이 문제가 있는지 명확하게 나오지 않아 구글링을 해보니 xml 파일의 태그를 닫지 않았거나, 잘못된 문자가 들어갈 경우 발생하는 문제라는걸 알 수 있었습니다. 그래서 할 수 있었던건 변경된 xml 파일들을 뒤져서 충돌이 미쳐 해결되지 못했다거나, 잘못된 파일이 있는지 모두 검사했을때 발견할 수 있었습니다. 요약 정확한 에러 파일이 나타나지 않으면 변경한 xml 파일 모두를 뒤져봅시다.
[AOS] 하단 네비게이션 배경색 변경 안드로이드 유저에게 익숙한 하단 네비게이션의 색상을 변경해 조금 더 자연스럽게 연출할 수 있습니다. 작은 부분이지만 일부 유저에겐 감동(?)을 줄수 있습니다. 아래 예시 사진을 보면 제가 개발한 '식물일기'입니다. 안타깝게도 제 앱에도 아직 적용하지 못했네요.. 지금 한창 디자인 개선중에 있는데 언능 출시해야하는데 맘처럼 쉽지 않네요 ㅠ 코드 구글링 했을때 배경색 바꾸는 코드들은 많았는데 버튼 색상 변경하는 코드들이 버전을 타는 이슈들이 있었는데 아래 코드는 minSDk 21인 앱에도 문제 없지 작동했습니다. window.navigationBarColor = ContextCompat.getColor(this,R.color.white) // 배경색 변경 WindowInsetsControllerCompat(..
[AOS] adb pair로 빌드 간편하게 하기 adb pair 기능으로 빌드를 USB 연결을 하지 않아도 가능합니다. 있다는건 알고 있었지만 나중에 해야지 하면서 익숙함에... 실제로 usb 연결이 잘 안되서 ( 전력문제인지 종종 끊겨서 재연결 하거나 그래야함 ) 불편했는데, 연동 방법은 5분도 안걸리니 다들 적용하셔서 편하게 개발 하세요 ! adb는 앱 설치 및 디버깅과 관련된 작업을 도와주는 라이브러리로 브릿지 말고도 편리하게 사용할 수 있으니 사용 안해보신 분은 꼭 사용해보세요 ! [포스팅] [안드로이드/Android] ADB 사용하기 이번 포스팅은 ADB(Android Debug Bridge)입니다. ADB는 애뮬레이터나 연결된 안드로이드 기기에 통신을 통해 앱 설치, 캐시삭제등을 명령해 생산성을 높히는 관리도구 입니다. 테스트 환경 Win..