목록전체 글 (245)
말랑한 하루
기본적으로 Firebase와의 연결과, Firebase.initializeApp을 통해 초기화를 진행해 주어야 한다. 관련 내용은 이전에 작성한 [ Firebase Remote Config ] 글의 "🥕 Flutter에 Firebase 추가" 단락을 참고하여 진행해 주길 바랍니다. ※ reference : https://firebase.google.com/docs/firestore/quickstart?hl=ko&_gl=1*30ps05*_up*MQ 🐇 개발 환경 설정 flutter pub add cloud_firestore 🥕 앱 체크 ※ reference : https://firebase.google.com/docs/app-check?hl=ko&_gl=1*1w5bp70*_up*MQ 🐇 Cloud Fire..
사용자들에게 비공개 테스트를 진행하면서, 새로운 버전을 업데이트하여 제공해야 하는 경우가 발생합니다. 하지만 사용자들은 앱을 설치하고 나면, 애플리케이션 페이지로 다시 접속할 일이 없죠. 리뷰를 작성하지 않는다면요! 특정 앱 버전에서 문제가 발생하는 경우, 또는 앱의 버그를 고치는 경우가 새로운 버전이 나오는 시기이기 때문에 사용자들에게 앱이 업데이트가 되었음을 명시적으로 알리고, 업데이트를 진행할 수 있도록 안내해야 합니다. 그래서 이번 포스트는 강제 업데이트를 적용시키기 위해 어떤 과정을 거쳐야 하는지, 필요한 것은 무엇인지 알아보겠습니다. 🥕 구현 강제 업데이트를 구현해 내기 위한 최적의 UI는 애플리케이션 로딩 화면이라고 생각한다. 애플리케이션에서 필요한 정보를 가져오는 등, 내부 비즈니스 로직이..
Firebase에서 제공하는 Remote Config는 사용자가 앱 업데이트를 다운할 필요 없이 앱의 동작과 모양을 변경할 수 있는 클라우드 서비스입니다. Firebase Console과 Remote Config backend API를 활용하여 모든 앱 사용자 또는 특정 사용자들에게 인앱 기본값을 재정의할 수 있습니다. 업데이트를 적용할 시점에서 앱을 제어할 수 있으며, 성능에 거의 영향을 주지 않고 업데이트를 자주 확인하여 적용할 수 있습니다. Remote Config에 저장된 key-value로 구성된 매개변수에 저장해놓은 버전 정보와 packageManager를 활용해 현재 애플리케이션의 버전을 비교하여 앱을 Store로 Redirect 해주는 방식이라 생각하면 편합니다. 애플리케이션을 업데이트 하..
🐇 천지인 키보드 지원 캐릭터를 검색하는 시점에 TextField에서 키보드 자판을 통해 문자를 입력받는 구간이 있다. 기존에는 무분별한 입력을 막기 위해 모음 선행 입력을 막아놨으나, 천지인 키보드에서는 입력이 되지 않는 다는 피드백을 받았다. 생각해보니, 입력 자체에는 문제가 없어야 하고 검색 시에는 무분별한 입력을 막아놓는 UX로 변경되어야 함을 깨달았다. 또한, 천지인 키보드의 경우 Middle Dot이 있는데, 이 문자에 대한 입력을 신경써 주어야 함을 알게되었다. // 기본 천지인키 ᆞᆢ // 삼성 한손모아키 ㆍ 위 세가지 Middle Dot에 대해 정규표현식에 추가해주며, 천지인 키보드를 지원할 수 있게 만들었다. 🐇 데이터 요청 로직 변경 나는 Notifier를 사용하지 않을 때 자동으로 ..
비공개 테스트는 약 20명의 테스터를 선발하여 2주 동안 진행하는 과정이다. 신입 개발자 계정은 바로 프로모션으로 출시할 수 없고 이 과정을 반드시 거쳐야 한다는 흠이 있다. 2023년 12월 이후 개정된 사안으로, 애플리케이션 출시 전 앱 자체의 성능과 개선 사항을 해결하면서 사용자에게 맞는 앱으로 탄생할 수 있게 하자는 취지이다. 이런 비공개 테스트를 약 2주 동안 진행하면서, 내가 고쳐왔던 그리고 고치고 싶었던 내용과 보안 이슈 등에 관하여 서술할 예정이고, 추후 고도화를 위한 작업을 진행하면서 새로운 버전의 앱을 출시하고, 사용자들로 하여금 새로운 버전을 다운 받을 수 있게 하는 행위까지 경험해보려 한다. 🐇 dio request exception CRUD를 진행하면서 한 요청에 하나의 쿼리를 진..
리젝을 해결하기 위한 기간이 꽤나 오랜 기간이 걸렸다. 실질적으로 Play Console에서 주는 답변은 특정 항목란에 문제가 있음을 제기하지만, 정확히 어떤 것이 문제인지는 알려주지 않았다. 나는 메이플스토리라는 게임의 애플리케이션을 만들었기 때문에, 관련 단어를 자주 사용했다. 하지만, 스토어 등록정보 권장사항을 바라봤을 때 앱 설명란에 다음의 항목이 존재함을 알아차릴 수 있었다. 🍒 다른 사용자 및 앱과 관계를 오해할 만한 단어 및 문구를 사용하지 않습니다. 즉 메이플스토리라는 게임과의 관계를 오해할 수 있다 판단하여, 적절치 못한 사용이라고 내게 계속 안내해준 것 같았다. 그래서 설명란의 해당 단어를 한쪽은 유지하고, 한쪽은 배제한 채 작성한 채 다시 심사를 진행했다. 이후 배제한 항목은 리젝 사..
무한 캐러셀에 대한 Demo 및 Code는 다음 경로를 참고하세요. ※ reference : https://github.com/Jisup/flutter_sample/tree/main/lib/page/infinityCarousel 무한 캐러셀은 사용자가 처음부터 끝까지 스크롤하지 않고도 계속해서 다음 콘텐츠를 볼 수 있도록 설계된 디자인을 말합니다. 웹 또는 앱에서 여러 이미지나 콘텐츠를 순환하거나 끊임없이 UI요소를 보여주는 UI 방식입니다. InfinityScroll과 가장 큰 차이점은 사용자가 정확히 하나의 콘텐츠를 인지하고 넘길 수 있는 UX를 제공하는 것입니다. 🐇 PageView ※ reference : https://api.flutter.dev/flutter/widgets/PageView-cl..
무한 스크롤에 대한 Demo 및 Code는 다음 경로를 참고하세요. ※ reference : https://github.com/Jisup/flutter_sample/tree/main/lib/page/infinityScroll 무한 스크롤은 사용자 경험 디자인 패턴 중 하나로, 사용자가 스크롤을 활용하여 콘텐츠를 제공받을 때 일정량의 정보를 소비하고 나면 자연스럽게 다음 콘텐츠로 넘어갈 수 있도록 새로운 콘텐츠를 자동으로 추가하여 페이지를 넘기는 번거로움 없이 연속적인 내용을 볼 수 있게 해주는 방식입니다. 개발을 진행함에 있어 신경 써야 하는 부분은 Viewport, Content의 크기 관리와 사용자의 스크롤 제스처 조작입니다. 사용자가 Viewport 내에서 Content의 개수, 크기와 관련되어 일..