분류 전체보기75 안드로이드 인앱 업데이트 테스트 방법 인앱 업데이트를 테스트는 FakeAppUpdateManager 라이브러리를 이용한 방법, 내부 앱 공유로 테스트하는 방법 두가지가 있습니다. 저는 내부 앱 공유로 테스트하는 방법을 이용해서 인앱 업데이트를 테스트 했습니다. 내부 앱 공유를 이용한 테스트 방식은 버전이 상이한 두개의 .aab파일을 업로드 한 후에 버전이 낮은 앱을 실행하여 업데이트를 테스트하는 방식입니다. 1. 버전이 매우 높은 버전을 https://play.google.com/console/u/0/internal-app-sharing 내부 앱으로 공유합니다. 버전이 높은 앱을 공유한 이유는 낮은 버전의 앱의 버전을 1씩 높여가면서 지속적으로 테스트 하기 위함입니다.(앱 버전은 build.gradle의 versionCode 및 versio.. 2022. 2. 14. 안드로이드 인앱 업데이트(유연한 업데이트, 즉시 업데이트) 적용하기 오늘은 제가 진행중인 프로젝트에 인앱 업데이트(유연한 업데이트, 즉시 업데이트)를 적용했던 과정을 적어보겠습니다. 인앱 업데이트는 유연한 업데이트와 즉시 업데이트 두가지가 있습니다. - 유연한 업데이트는 앱을 업데이트하면서 앱을 사용할 수 있습니다. - 즉시 업데이트는 앱을 업데이트하는 도중에는 앱을 이용할 수 없습니다. 저는 필수 업데이트에 대한 flag를 서버에 저장해두고, flag가 "0"이면 유연한 업데이트, "1"이면 즉시 업데이트를 적용했습니다. requestUpdate() 메소드 1. checkAppVersion("AOS") 함수는 서버의 저장된 앱의 버전, 업데이트 필수 여부 등을 호출하는 api입니다. 업데이트 여부를 통신으로 받아서 isEssential 변수에 필수 업데이트가 아니면 .. 2022. 2. 11. 안드로이드 TTS(텍스트 음성 변환) 음성인식 문제 해결 프로젝트를 여러 기기로 테스트 하다가 다음과 같은 에러가 발생하는 스마트폰이 있었다. 음성인식을 위한 코드를 작성하면 RecognitionListener의 onReadyForSpeech가 호출이 되면서 스마트폰이 음성인식 청취상태에 들어간다. 하지만 문제가 발생한 기기는 청취상태에 들어가지 않는다는 것을 로그로 확인했다. 결국 음성인식 청취상태에 들어가지 않아서 onPause에서 음성인식 listening을 해제하기 위한 코드에서 연결된 SpeechRecognizer가 없다고 에러를 뱉어내고 있었다. 같은 코드인데 왜 이런 에러가 발생는건지 이해할 수 없었다. 그래서 스마트폰의 구글 어시스턴트의 음성인식이 되는지 확인해보기로 했다. 안드로이드의 홈버튼을 길게 누르면 구글 어시스턴트가 호출이 되는데, 문제.. 2022. 2. 9. 안드로이드 카카오맵(다음맵) net.daum.mf.map.api.MapView.MapView constructors should get Activity instance as context input parameter 에러 프로젝트에서 fragment에 카카오 맵을 표시하다가, 해당 내용을 activity로 옮기게 되었다. activity로 코드를 옮기고 실행해보니 위와 같은 오류가 발생했다. 해결 방법은 mapview의 객채를 생성할 때, 파라미터에 applicationContext를 넘겨줬었는데, context가 아닌 activity를 넘겨주면 된다. val mapView = MapView(this@HospitalDetailActivity) 위와 같이 수정하니까 지도가 잘 표시됨을 확인했다. 2022. 2. 4. 안드로이드 Recyclerview의 ListAdapter 삽질 기록 해당 글은 Recyclerview의 Adapter를 ListAdapter로 구현하다가 고생한 내용입니다. 앱을 만들다가 Recyclerview의 Adapter를 ListAdapter로 구현했고, 스크롤하여 뷰를 그릴때마다 onBindViewHolder가 호출이 되길래, DiffUtil.ItemCallback의 areItemsTheSame과 areContentsTheSame이 잘못 구현이 된 줄 알고 착각하고 하루를 날렸다.. 원래 Recyclerview는 스크롤 할때 가려지는 뷰를 재활용하여 새로운 뷰를 그리는 형식이다. 따라서 스크롤 시 onBindViewHolder가 호출이 되어 뷰를 그리는것은 당연한 일이다.. 하지만 나는 areItemsTheSame과 areContentsTheSame에서 비교하고.. 2022. 1. 27. [안드로이드] 머티리얼 디자인 - Text fields(EditText) 이번에 알아볼 머티리얼 디자인의 component는 Text fields 입니다. Text fields는 EditText와 똑같다고 보시면 됩니다. 아래의 예시를 참고해주세요. Text fields를 구현하기 위해서 Material Design 홈페이지에 접속합니다. https://material.io/components/text-fields Material Design Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences. material.io IMPLEMENTATIO.. 2022. 1. 25. 이전 1 ··· 7 8 9 10 11 12 13 다음