분류 전체보기 372

<Flutter> SliverFillRemaining - 스크롤뷰 내부 위젯들이 높이를 가득채우지 못할 경우 나머지를 채우는 방법

🧭 CustomScrollView 스크롤뷰가 포함하는 자식 위젯들의 형태(높이 등)를 원하는 대로 수정하기 위해 CustomScrollView를 사용합니다. CustomScrollView는 Sliver로 시작하는 몇개의 위젯들을 자식으로 가질 수 있습니다. SliverFillRemaining 그 중에 SliverFillRemaining을 다뤄보고자 합니다. 위젯들의 전체 높이가 화면을 초과하는 경우 가장 쉽게 생각할 수 있는 방법은 전체 위젯을 SingleChildScrollView로 감싸는 것입니다. 그런데 표현하는 내용에 따라 위젯들의 전체 높이(노란색)가 화면의 일부만 채우는 경우 어떻게 될까요? 아래 이미지의 하단과 같이 흰 여백이 생길 것입니다. 이 여백을 채우기 위해서는 SingleChildS..

<TIL> iOS 하단 노치 대응, FutureBuilder 사용시 API 호출 시점

🧭 Flutter MediaQuery.of(context).viewPadding.bottom 아이폰 X 이후로 등장한 하단 노치는 높이 값이 34입니다. 플러터에서는 MediaQuery.fo(context).viewPadding.bottom으로 34라는 값을 얻을 수 있습니다. 안드로이드이거나 IOS이더라고 하단 노치가 없다면 위의 값은 0이 됩니다. 하단 노치에 대한 대응으로 SafeArea로 감쌀 수도 있고, 해당 값을 확인해서 따로 여백을 둘 수도 있습니다. https://medium.com/flutter-community/a-flutter-guide-to-visual-overlap-padding-viewpadding-and-viewinsets-a63e214be6e8 A Flutter guide t..

클래스/└ TIL 2022.09.01

<Flutter: 실험실> initState 안에서 비동기 함수 호출하기

🧭 initState 내에서 비동기 함수를 호출한다면? Flutter의 StatefulWidget은 initState, dispose 같은 메서드를 오버라이드해서 사용하게 됩니다. 다만, API 통신과 같은 비동기 함수를 initState 안에서 호출하면 아래와 같은 에러가 발생합니다. 비동기 함수 외부에서 정의 initState 메서드 내에서 비동기 함수를 호출할 수 없기 때문에, 아래와 같이 async/await를 생략한 비동기 함수를 사용하는 예제를 종종 접합니다. TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Rus..

<독서> 너무 잘하려고 애쓰지 마라 - 나태주

📖 위로없이 위로가 되는 시 제목처럼 직접적인 위로의 말을 건네기도 하지만위로의 말 없이 위로가 되는 글귀들이 많았습니다. 지금 서 있는 곳이 어디든 따뜻한 기운으로 감싸 안으며마음을 차분하게 해주었습니다. http://www.yes24.com/Product/Goods/110160097 너무 잘하려고 애쓰지 마라 - YES24 “그래도, 그래도 말입니다.두 손에 아직도 시가 쥐어져 있으니 이 얼마나 다행한 일인지요!”힘든 시간을 지나 다시 반짝이는 오늘 앞에 선 우리에게나태주 시인이 전하는 위로와 응원의 인사 www.yes24.com

클래스/모험가 2022.08.27

<독서> 물고기는 존재하지 않는다 - 룰루 밀러

📖 나에 대한 다른 사람의 말을 믿지 않을 수 있는 멘탈이 필요해 책의 초반부에는 물고기를 연구하는 데이비드 스타 조던 이야기가 주구장창 나와서 무슨 얘기를 하고 싶은 건지 파악하기 어려웠습니다. 후반에 접어들면서 물고기라는 분류는 분지학의 관점에서는 존재하지 않는다는 내용이 등장합니다. 일반적으로 알고 있는 생각에 반하는 내용이 등장하면서 흥미를 유발하는 대목입니다. 이어서 우생학적인 관점, 양성애 등과 연관지어서 생각해 볼 수 있도록 안내합니다. 물에서 헤험치며 사는 생명체를 물고기라고 간단하게 구분지어 버리듯이, 주변 사람들을 혹은 나 스스로를 특정 부류로 한정한 적은 없었는지 돌아보게 됩니다. http://www.yes24.com/Product/Goods/105526047 물고기는 존재하지 않는다..

클래스/모험가 2022.08.20

<GitHub> Error: unexpected end of file from server..

🎸 unexpected end of file from server... 어제까지 잘되던 GitHub 코드 푸시가 되지 않았습니다. 에러 내용은 대략 아래와 같았습니다. invocation failed unexpected end of file from server java.lang.runtimeexception:... git push caused by: java.net.socketexception: unexpected end of file from server... Invalidate Caches... 안드로이드 스튜디오 > File > Invalidate Caches... 기능으로 캐시를 정리하니 정상적으로 푸시되었습니다. https://stackoverflow.com/questions/71535668/..

<독서> 행성 1 - 베르나르 베르베르

📖 고양이의 시선을 빌려 관찰하는 인간의 행동 멀지 않은 미래,쥐들의 개체수가 폭발적으로 늘어나 인간을 포함한 나머지 동물들이 설 자리를 잃게 됩니다. 인간들은 쥐들을 물리치기 위해 처절하게 대항합니다. 와중에 똑똑한 고양이 한 마리가 인간을 돕게 됩니다. 인간을 돕는다기보다 쥐들을 물리쳐 본인의 가치를 드높이는게 본 목적이긴 하지만요. 이 똑똑한 고양이의 시점에서 인간들의 행동을 관찰하는 과정이 꽤 흥미롭습니다. 고양이는 이성적이며, 효율을 추구하는 가치관을 가지고 있는 것으로 보이며, 불필요하고, 소모적인 갈등, 과거에 대한 집착 등을 무용하다고 여깁니다. 비슷한 생각을 많이 해와서 그런지 소설 속 고양이에 많은 공감을 하며 읽어나갈 수 있었습니다. 2권에서는 어떤 모습이 펼쳐질지 기대됩니다. htt..

클래스/모험가 2022.08.14

<Flutter> GetX 화면 전환이 안되는 경우

🧭 Get.toNamed GetX로 route를 관리한다면 Get.toNamed를 사용해서 페이지를 전환하게 됩니다. 이 때 GetX는 사용자의 이중 클릭 등으로 페이지를 2번 호출하지 않도록 같은 페이지에 재진입을 막도록 되어 있습니다. preventDuplicates 재진입을 막는 속성은 preventDuplicates로 페이지에 재진입을 허용하고 싶은 경우 해당 프로퍼티를 false 값으로 반영하면 됩니다. TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesi..

<TIL> Flutter GetxController 간 데이터 전달

🧭 GetxController 상태관리를 위해 Getx 라이브러리를 사용하게 된다면 GetxController를 상속한 컨트롤러를 활용하게 됩니다. 서비스할 앱의 각 페이지와 컨트롤러를 1:1 대응으로 사용하는 것이 가장 간단한 방법이라고 할 수 있습니다. 컨트롤러 간 데이터 전달 다만 여러 페이지에 공통적으로 반영되어야 할 상태가 있는 경우 컨트롤러 간에 데이터 전달이 필요합니다. 가장 간편한 방법으로는 하나의 컨트롤러를 여러 페이지에서 걸쳐서 사용하는 것입니다. 또다른 방법은 공유할 상태를 파라미터로 전달하고 전달받은 페이지의 컨트롤러에서는 전달해준 페이지의 컨트롤러를 찾아서 상태를 변경하는 것입니다. (전달해준 페이지의 컨트롤러를 유지한다는 조건 하에 가능)

클래스/└ TIL 2022.08.11