전체 글 280

[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년과 비교해보면 ..

⏳ 회고 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

2023.11.25

이번 글은 간단한 생각 정리글이다. 일하면서 부족함을 항상 느낀다. 나는 평소에 코드를 짤 때는 이런저런 생각을 많이 하지만 업무가 몰려올 때는 생각을 깊이 하지 않고 처리하는 경향이 있다. 업무가 몰려와도 한 번 더 검증을 해보기로 다짐한다. 좋은 사수분들이 있다는 점이 나에겐 정말 복인 것 같다. 항상 사수는 잘 만나는 것 같다고 생각이 든다. 나에게 무슨 복이 있어 이런 기회를 주신걸까 (사주 보면 나이 들수록 점점 인생이 핀다는데 진짜 맞는 것 같다. -미신임) 정리를 잘하시는 본부장님을 보면 나도 정리를 저렇게 잘하고 싶다. 언제나 주도적으로 일 처리하는 사수분을 보면 나도 저렇게 통찰력 있는 리더가 되고 싶다라고 생각이 든다. 그냥 나에게 단비 같은 회사였고 인생의 전환점 같다. 모든 일에 감..

카테고리 없음 2023.11.26

[Flutter] InheritedWidget 에 대한 고찰 1 - BuildContext.dependentOnInhheritedWidgetOfExactType

Flutter 의 InheritedWidget 에 대해 알아보기 전에 BuildContext.dependentOnInhheritedWidgetOfExactType 에 대해 이해하는 것이 중요하다. 플러터 공식 문서에도 InheritedWidget 의 설명을 보면 BuildContext.dependentOnInheritedWidgetOfExactType 에 대한 설명이 먼저 표기되어 있다. 참고로 우리 프로젝트에서는 주 고객층이 연령대 높으신 분들이 많은데 이 분들은 폰 설정에서 텍스트 크기를 크게 설정하시는 분들이 많았다. 그래서 UI 가 일부 안 보이거나 UI overflow 가 되는 현상이 많은데 사실 이러면 안되지만, 폰 설정에서 텍스트 크기를 크게 설정하여도 우리는 텍스트 크기를 고정시켜 커지지 ..

🐦 Flutter 2023.10.14

[Flutter] 만보기 개발 기록

※ 본 글은 정보 공유성의 글이 아니라 개인 회고글에 가까우니 참고 바랍니다. 우선 Flutter 로 초보 개발자가 만보기 서비스를 런칭한다고 하면 어려울 수도 있을 것 같다는 생각이 든다. 단순히 걸음수만 표시해주는 간단한 기능이라면 그나마 낫겠으나 추가적으로 기능이 더 붙는다면 힘들 수 있을 것 같다는 내 개인적인 의견이다. 물론 사람마다 개발 실력이 다르다 아쉽게도 코드 공유 없이 설명을 이어나가야 할 것 같다. 나야 물론 코드를 공유하고 싶은 마음이 크지만 내가 개발한 서비스는 회사 소유이기에 코드를 공개할 수 없다. 하지만 헤맸던 과정을 블로그에 남겨 두는 것은 괜찮지 않을까 문제는 iOS 우선 우리 서비스는 안드로이드는 크게 문제가 없었다. 문제는 iOS 였다. 꽤나 많은 이슈가 있었고 테스트..

⏳ 회고 2023.09.24

factory 생성자에 대한 고찰2 - 일반 생성자와 다른 차이점

지난 시간에는 json 파싱할 때 factory 생성자를 왜 쓸까? 에 대한 포스팅을 했었다. 2023.09.21 - [🐦 Flutter] - factory 생성자에 대한 고찰1 - Json 파싱 근데 지난 포스팅에도 봤다시피 factory 생성자는 일반 생성자와는 다른 모양이었다. 그러니까 일반 생성자 는 객체를 다음과 같이 초기화할 수 있다. Album({this.userId, this.id, this.title}); 반면 factory 생성자 는 다음과 같이 초기화한다. factory Album.fromJson(Map json) { return Album( userId: json['userId'], id: json['id'], title: json['title'], ); } factory 생성자는 ..

🐦 Flutter 2023.09.23