본문 바로가기

전체 글141

[Flutter] Pagination *코드팩토리님의 강의 내용 참조 pagination state의 5가지 가능성 1. 정상적으로 데이터가 있는 상태 2. 데이터가 로딩중인 상태 (현재 캐시 없음) 3. 에러가 있는 상태 4. 첫번째 페이지부터 다시 데이터를 가져올때 5. 추가 데이터를 paginate 해오라는 요청을 받았을 때 마지막 데이터에 도달했을때 loading 표시 혹은 마지막임을 알려주기 위해서는 ListView의 itemCount를 data.length +1 로 하고 itemBuilder 내부에서 if (index == data.length) { return Padding( padding : const EdgeInsets.symmetric( horizontal : 16.0, vertical : 8.0, ), child : Ce.. 2023. 6. 28.
[Flutter] constrain box size 위젯의 크기를 제한하고 싶을때는 ConstrainedBox() 위젯을 사용할 수 있다. ConstrainedBox( constraints : const BoxConstraints( maxWidth : _maxWidth, ), child : Widget(), ), // Container를 사용할 수 도 있다. Container( constraints : const BoxConstraints( maxWidth : _maxWidth, ), child : Widget(), ), 2023. 6. 10.
[Flutter] collection if with several widgets Widget을 조건에 따라 rendering할 경우에 collection if 를 사용할 수 있다. 조건에 해당하면 collection if 는 하나의 대상에 대해 작동할 것이다. 그러나 그 조건과 관련된 widget이 여러개인 경우가 존재한다. 이럴때는 widget들을 List안에 넣어주어 사용한다. if(condition) ...[ Widget(), Widget(), Widget(), ] 이때 "..."은 list를 풀어주는 역할을 수행한다. 2023. 6. 10.
[Flutter] 버튼 정렬 버튼 내부의 아이콘은 왼쪽 정렬, 텍스트는 가운데 정렬을 하고 싶을때가 있다. 이때는 Row 대신 Stack을 사용한다. Stack( alignment: Alignment.center, children: [ Align( alignment: Alignment.centerLeft, child: icon, ), Text( text, textAlign: TextAlign.center, ), ], ), 2023. 6. 7.
[Flutter] FractionallySizedBox 하위 위젯들의 사이즈를 각 각 지정하지 않고 같은 UI를 구현하는 방법이 있다. 자식 위젯의 너비를 부모 위젯의 사이즈에 비례해서 만드는 FractionallySizedBox 위젯을 사용하는 것이다. 이 위젯은 widthFactor, heightFactor 라는 파라메터를 사용해서 부모 위젯 크기기에 비례하여 몇 배율로 해당위젯을 렌더링할 것인지 조작할 수 있다. https://api.flutter.dev/flutter/widgets/FractionallySizedBox-class.html FractionallySizedBox class - widgets library - Dart API A widget that sizes its child to a fraction of the total availabl.. 2023. 6. 7.
[Flutter / Dart] 기초 지식 노마드코더 강의 내용을 학습하면서 정리한 내용 Variables var : 어떤 타입을 넣어도 상관없다. 변수에 처음으로 지정한 타입으로 설정됨. dynamic : 어떤 타입을 넣어도 상관없다. 처음에 지정한 타입과 달라도 변수를 변경할 수 있다. late : 변수의 선언을 나중에 할 수 있다. final : 한 번 선언하고 변경되지 않는 변수에 사용한다. const : 컴파일 시점을 기준으로 변경되지 않을 변수. 앱스토어에 올라간 이후에 API로 받는 데이터와 같이 어떤 데이터가 올지 모르는 값을 쓸 수 없다. Data types List collection if 와 collection for를 지원한다. // collection if bool isBabyBorn = true; List family =.. 2023. 6. 5.
[Flutter / GetX] Exception has occurred._CastError (Null check operator used on a null value) 개발된 프로젝트에서 Feature들을 재사용하기 위해 코드를 추출하는 과정중이었다. Get.dialog()를 사용할때 제목과 같은 에러가 발생했다. chatGPT의 답변 내용은 다음과 같다. Get.dialog() 메서드를 호출할때 Get 개체가 null임을 나타내므로 Get 패키지를 올바르게 가져오고 초기화했는지 확인 Get 패키지의 올바른 사용방법을 참고 패키지의 호환 가능한 버전을 사용하고 있는지 확인 위 답변을 참고하여 다시 생각해보니 GetMaterialApp으로 변경해주지 않았음을 알게되었다. void main() async { await dotenv.load(fileName: '.env'); runApp(GetMaterialApp( // 변경 // runApp(MaterialApp( debu.. 2023. 5. 30.
[Flutter] vscode dart formatter python은 black formatter를 사용하고 있는데 dart는 무엇을 사용하면 좋을지 찾아보았다. 대부분 아래와 같은 설정을 하는 것 같다. // settings.json "[dart]": { "editor.defaultFormatter": "Dart-Code.dart-code", "editor.formatOnSave": true, } 참고 https://stackoverflow.com/questions/64669962/is-there-a-way-to-auto-format-flutter-with-vscode Is there a way to auto-format flutter with vscode? I was wondering if there is a library like Eslint for F.. 2023. 5. 24.
[Flutter] lint / linter Lint 또는 Linter 는 프로그래밍 오류, 버그 , 문체 오류 및 의심스러운 구문을 표시하는 데 사용되는 정적 코드 분석 도구 입니다 . (위키피디아) Flutter project에 Lint 를 적용하기 위해 조사를 해본 결과, 다음과 같이 요약할 수 있을 것 같다. 혼자 개발하거나 팀으로 개발하거나 Lint는 효율적인 개발 퍼포먼스에 도움이 된다. Flutter v2.3.0 이후부터 flutter create로 생성된 Flutter 앱, 패키지 및 플러그인은 Lint가 미리 정의된 analysis_options.yaml 파일과 함께 기본 제공된다. 프로젝트 내부에 analysis_options.yaml 파일에 linter rule을 설정할 수 있다. linter: rules: always_decl.. 2023. 5. 24.