전체 글 280

[Flutter] iOS 웹뷰 흰 화면 뜨는 현상

얼마 전 웹뷰 업무를 연동하였다. (근데 일반적이지 않는 웹뷰였다.)앱에 3D 이미지를 붙이기 위해서 유니티 WebGL 이라는 기술을 사용해서 웹뷰를 띄워보기로 했다.유니티와 플러터..? 정말 듣기만 해도 너무 멋진 기술 통합 같았는데.. 결과는 좋지 않았다.  왜 그러한 사례가 없었는지를 생각해봤었어야 했다.나는 웹뷰를 연동하면서 심각한 오류와 문제를 맞이하게 되었고 이를 기반으로 앱에 3D 이미지를 띄운다는 것은 정말 쉽지 않은 일이구나를 깨달았다.  아마 유니티 WebGL 이어서 더 쉽지 않은 일인 것일 수도 있다.. 왜냐하면 WebGL의 JavaScript 환경은 싱글 스레드이기에..  유니티의 경우, 게임 엔진이 멀티스레딩을 지원하여 물리 계산이나 그래픽 렌더링 등을 별도의 스레드에서 처리할 수..

🐦 Flutter 2024.10.21

글또 10기 다짐글

글또 8기부터 시작하여 어느덧 10기까지 왔다. 🍂신기한 점은 8기를 처음 시작했을 때와 다른 마음가짐인 것 같다.  글또 8기 (영유아기)8기는 그저 다른 개발자들과 커피챗?! 신난다!! 하며 참여했었다.이런 마음가짐으로 참여해서 그런지 글을 대충 쓴 것도 있었고 지금 보니 글 퀄리티가 형편없다고 느낀다. (첫 글짓기 걸음마 대실패)마치 어릴 때 작성한 일기장을 훔쳐 보는 느낌이다.   글또 9기 (청년기)9기를 시작하고 나서는 주로 회사 이슈 업무에 대해서 포스팅을 하였다.회사 이슈 업무에 대해 포스팅한 이유는.. 사실 나는 회사 업무가 재밌고 (매번 다른 프로젝트를 하니 사이드 프로젝트라고 생각하고 있다) 연차가 쌓여서 그런지 회사 일이 점점 많아지면서 일과 삶은 혼연일체가 되었다.   주로 회사..

카테고리 없음 2024.10.02

cocoapods could not find compatible versions for pod "firebase/analytics"

[!] cocoapods could not find compatible versions for pod "firebase/analytics": in snapshot (podfile.lock): firebase/analytics (= 10.20.0) in podfile: firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`) was resolved to 10.8.0, which depends on firebase/analytics (= 10.18.0)  위 오류 메시지는 cocoapods 가 podfile 과 podfile.lock 사이에서 호환되지 않는 버전의 의존성을 발견했음을 의미한다.즉, podfile.lock 은 10.20.0을 사..

🐦 Flutter 2024.08.24

만보기와 안드로이드 배터리 최적화 관련 분석

우리 회사에서는 만보기 서비스를 메인으로 하여 어플을 운영하고 있다.안드로이드 만보기는 지난 1년간 문제 없이 동작했었는데 갑자기 근 몇달 간 만보기 관련 CS 가 쏟아지기 시작했다.아무래도 안드로이드 OS 가 업데이트 되면서 백그라운드 작업에 대한 제한이 강화된 것으로 추측한다.(최근 업데이트 내용을 보면 백그라운드 관련 내용이 자주 언급되었다)   안드로이드 만보기는 백그라운드를 바탕으로 철저히 돌아가는 서비스이다.근데 백그라운드 작업을 제한한다고..? 제대로 서비스를 유지할 수 없을 것이다.   나는 아이폰 사용자였지만, 이 문제를 해결하기 위해 며칠 간 안드로이드 타사 만보기 앱을 사용해 보았다. 그리고 다른 앱들이 백그라운드 제한을 어떻게 극복했는지 분석할 기회를 가졌다. 이번 글에서는 그 분석..

👩🏻‍💻 TIL 2024.04.28

[Flutter] Sliver TabBarView hide 이슈

위에 컨텐츠들이 있고 하단에 탭이 있다고 가정하자. 스크롤 시에는 탭이 상단에 고정되어 있어야 한다. 이 경우, 위젯을 어떻게 구성할 수 있을까? Flutter 공식문서에서는 위와 같은 뷰는 NestedScrollView 클래스 를 통해 구성하라고 한다. NestedScrollView 클래스 The most common use case for this widget is a scrollable view with a flexible SliverAppBar containing a TabBar in the header (built by headerSliverBuilder, and with a TabBarView in the body, such that the scrollable view's contents va..

🐦 Flutter 2024.03.31

나에게 아직은 어려운 앱 설치 광고

얼마 전 다른 회사의 SDK 를 연동하여 우리 회사 앱 설치 광고 업무를 해본 적이 있다. (AOS 만) 또한 다른 업체의 API 를 통해서도 모바일 앱 설치 광고를 해본 적이 있는데 (API 를 호출해서 여러 광고 리스트를 불러오는 형태 - 모바일 앱 설치 광고는 CPI 라고 불리는 것을 이때 알기 시작했다) 이때 심사 리젝도 당해보면서 상황이 겹겹이 겹치다 보니 대체 모바일 앱 설치 광고는 어떻게 구현하는 것인가.. 에 대한 호기심이 생겼다. 나는 이 기회를 바탕으로 모바일 앱 설치 광고에 대해 공부해서 정보 공유 글을 공유하려고 했는데 며칠을 공부해도 구현 방법을 찾지 못하였다. (내가 못 찾는 걸 수도 있다..) 결국 내가 알아본 정보를 최대한 활용하여 기록 글의 형태로 가기로 맘을 먹었다. 나중..

카테고리 없음 2024.03.17

2023 회고록

키워드 🌱- 아침 스터디- 노션 스터디- 학교 스터디- 글또 8, 9기- 이직 💼- iOS 만보기 이슈 수정 🏃- 첫 해외여행- 요리 시작- 블로그 일일 방문자수 500명 달성!- iOS 공부  2월에 쓰는 늦은 회고이지만 2023 회고록을 쓸 생각을 하고 있어서 핸드폰 메모장에 2023년에 한 것들을 생각나면 늘 하나씩 키워드를 적어나갔다.2023년에 무얼 했는지 키워드를 먼저 살펴 보니 생각보다 많은 것을 이룬 해였으며, 1년은 길었다는 것을 느낀 해였다.늘 한 것도 없이 시간은 빨리 지나간다고 생각했었는데 이번 년도엔 다른 생각이 든 것을 보니 나름 바쁘게 살았음을 느낀다.  2023년은 내가 개발자로의 직업을 시작한지 1년차이다. (0년차부터 셈)그래서 2022년과 비교해보면 2022년은 출..

⏳ 회고 2024.02.11

Flutter NavigationController 에서 iOS 로 이동(push)해보기

Flutter 로 개발하면서 어려웠던 점은 Native SDK 연동을 해야했던 부분인데 보통 SDK 연동 문서를 보면 안드로이드, iOS 연동 방법만 적혀 있고 React native 나 Flutter 개발자를 위한 연동 방법은 적혀있지 않다. (따라서 일단 SDK 를 호출하는 부분까지는 업체의 문서를 보며 네이티브 코드를 작성해야 하고, Flutter 에서는 MethodChannel 메서드를 써서 이를 연결시켜줘야 한다.) 그래서 문서를 보고 연동하려면 네이티브 지식을 어느 정도 갖고 있으면 수월한 편인데 6개월 전에 나는 iOS 공부를 하지 않았던 상태였다. 어느 날, 회사 업무에서 다른 업체의 iOS SDK 를 연동하며 아래 메시지를 받았고 이게 무슨 뜻인지 이해하지 못했다. *****View.Ge..

🐦 Flutter 2024.01.13

광고 모듈화했던 경험

운좋게 2023년 송도에서 열리는 마지막 devfest 에 참여하였다. 나는 여러가지 세션을 들었는데 그 중 하나의 세션이 정말 감명 깊었다. 그 세션은 바로 '플러터 모듈화 - git submodule 를 이용한 프로젝트 코드 재사용 전략' 이었는데 아마도 내가 그때 당시 '중복 코드를 어떻게 패키지 코드처럼 나눌 수 있을까?' 에 대한 고민이 많아서 감명 깊지 않았을까 생각한다. 또한 이것이 모듈화라고 불린다라는 사실을 몰랐어서 듣고 나서 더 충격적으로 다가옴(?)도 있었던 것 같다. 모듈화를 적용해 볼 기회가 오다 개념을 알고 나서 그런가 모듈화를 적용해 볼 기회가 빨리 왔다. 요즘 회사에서 한창 겪고 있는 이슈가 광고 관련인데 그 이유는 애드몹의 엄격한 제한 사항이 원인이었다. 그래서 애드몹 광고..

⏳ 회고 2023.12.29

Debounce, Throttle

오늘은 프론트 개발자라면 중요한 개념인 Debounce, Throttle 에 대해서 좀 더 파헤쳐 보려고 한다. 서버에 사용자의 요청을 적절히 전달하는 것은 프론트엔드 개발자의 중요한 역할 중 하나라고 생각한다. 실제 상황에서 많이 발생하는 일 중 하나가 있는데 사용자가 버튼을 누를 때 단 한 번의 요청을 의도했음에도 불구하고, 그 요청을 실행 중이었는데 사용자는 실행 중인지 몰라 버튼을 또 누르게 되는 경우가 있다. (이거 왜 반응을 안 하는거야..?! 이러면서..) 이때 모든 요청을 곧이 곧대로 서버에 보내게 되면 서버는 이 요청을 모두 처리해 사용자는 예상치 못한 문제를 겪게 된다. 개발하면서 생각보다 이런 일들이 많이 발생하는데 그 중 하나의 방어책이 바로 로딩 표시를 버튼 위에 덮어씌워 사용자가..

🐦 Flutter 2023.12.09