Flutter 35

[Flutter - Error] Unhandled Exception: FormatException: Unexpected character (at character 1)

xml을 파싱하는 과정에서 뜬 에러이다. var body = await json.decode(response.body); print(body); 위 코드를 다음 코드로 수정하면 에러가 사라진다. var body = utf8.decode(response.bodyBytes); print(body); 그런데 "Unhandled Exception: type 'String' is not a subtype of type 'List ' in type cast" 에러와 같이 한글이 깨지는 것을 확인할 수 있었다. 한글이 깨지는 경우는 다음 링크를 통해 해결해보자. [Flutter - Error] Unhandled Exception: type 'String' is not a subtype of type 'List' in..

Develop/Flutter 2022.01.01

[Flutter] 플러터 MultiProvider를 통해 BottomNavigationBar 구현

이전에 Provider를 통해 count를 하는 UI를 구현해보았다. Provider에 대해서 잘 모른다면 다음 링크를 통해 알아보면 좋을 것 같다. [Flutter] 플러터 ChangeNotifierProvider를 통해 Provider 구현 이번에는 ChangeNotifierProvider를 통해 Provider를 구현해보자. ChangeNotifier는 Flutter SDK에 포함된 클래스로 청취자에게 변경 알림을 제공해주는 것이다. 즉, ChangeNotifier를 통해 변화에 대해 구독할 수.. fre2-dom.tistory.com 이번에는 2개 이상의 Provider를 사용하기 위해 MultiProvider를 사용하면서 BottomNavigationBar를 구현해보도록 하자. 코드의 이해를 돕..

Develop/Flutter 2021.12.30

[Flutter] 플러터 Bloc 패턴 구현

이번에는 Flutter에 Bloc 패턴에 대해서 알아보고 구현해보자. 이전에도 설명했듯이 Bloc 패턴의 목적은 상태 관리, UI와 비즈니스 로직의 분리를 하기 위한 것이다. [Flutter] 플러터 Bloc 패턴과 Provider 패턴 Flutter 앱을 개발하다 보면 자주 등장하는 Bloc 패턴과 Provider 패턴에 대해서 간단하게 알아보자. Bloc 패턴은 Google 개발자가 권장하는 Flutter의 상태 관리 시스템이다. 프로젝트를 관리하는데 도움 fre2-dom.tistory.com Bloc 패턴이 상태 관리, UI와 비즈니스 로직의 분리를 해준다는 것은 알겠는데, 그러면 우리는 왜 Bloc 패턴을 써야 하는가? 의문이 들 수 있다. 예를 들어 배포를 위한 앱을 개발할 때 복잡한 구조의 위..

Develop/Flutter 2021.12.27

[Flutter - Error] INSTALL_FAILED_INSUFFICIENT_STORAGE

INSTALL_FAILED_INSUFFICIENT_STORAGE와 같은 에러가 나온다면 에뮬레이터의 저장 공간이 부족한 것으로 에뮬레이터 저장 공간을 늘려주거나 에뮬레이터 안에 있는 앱을 제거해주면 된다. 그렇다면 에뮬레이터 저장 공간을 늘려주는 방법을 알아보자. 에뮬레이터를 확인하기 위해 AVD Manager을 클릭한다. AVD Manager를 클릭하면 다음 이미지처럼 에뮬레이터들이 나온다. 여기서 저장공간을 늘릴 에뮬레이터에 Edit를 클릭한다. 해당 에뮬레이터를 편집하기 위해 Show Advanced Settings를 클릭한다. 클릭 후 스크롤을 통해 아래로 내리게 되면 Internal Storage가 나오게 된다. 원하는 만큼 용량을 늘린 후 Finish를 클릭 해 에뮬레이터를 편집한다. 편집이 ..

Develop/Flutter 2021.12.24

[Flutter] 플러터 ChangeNotifierProvider를 통해 Provider 구현

이번에는 ChangeNotifierProvider를 통해 Provider를 구현해보자. ChangeNotifier는 Flutter SDK에 포함된 클래스로 청취자에게 변경 알림을 제공해주는 것이다. 즉, ChangeNotifier를 통해 변화에 대해 구독할 수 있다. Provider는 이전에 간단하게 알아보았으므로 구현하는 방법에 대해서 바로 알아보자. [Flutter] 플러터 Bloc 패턴과 Provider 패턴 Flutter 앱을 개발하다 보면 자주 등장하는 Bloc 패턴과 Provider 패턴에 대해서 간단하게 알아보자. Bloc 패턴은 Google 개발자가 권장하는 Flutter의 상태 관리 시스템이다. 프로젝트를 관리하는데 도움 fre2-dom.tistory.com 라이브러리 아래 링크에 들어가..

Develop/Flutter 2021.12.22

[Flutter] 플러터 Bloc 패턴과 Provider

Flutter 앱을 개발하다 보면 자주 등장하는 Bloc 패턴과 Provider 에 대해서 간단하게 알아보자. Bloc 패턴은 Google 개발자가 권장하는 Flutter의 상태 관리 시스템이다. 프로젝트를 관리하는데 도움이 되며 프로젝트의 중앙 위치에서 데이터에 액세스 할 수 있다. 이 아키텍처는 다른 아키텍처와도 연관시킬 수 있다. 예를 들어 MVP와 MVVM이 있으면, 여기서 Bloc이 MVVM에 ViewModel로 대체 가능하다. 하지만 간단한 로직 하나 구현하는데도 패턴을 적용하면 최소 4개의 클래스를 작성해야 하는 불편함이 있다. 그래서 등장한 것이 Provider 이다. Provider 는 Bolc 패턴보다 쉽게 적용할 수 있어, 데이터 공유와 로직의 분리를 좀 더 간단하게 할 수 있다. P..

Develop/Flutter 2021.12.21

[Flutter] 플러터 비동기 Future 와 Stream

앱 개발을 하면서 비동기는 아주 중요한 개념이라고 생각하여 Flutter에서 주로 사용되는 비동기인 Future와 Stream의 개념을 다시 한번 집고 넘어가려고 한다. 비동기란 동기 처리가 끝난 후에 실행되며 Firebase 같은 DB에서 데이터를 가져오거나 API, 크롤링 등 외부에서 데이터를 가져오는 경우와 반응형 프로그래밍을 할 때 쓰인다. Flutter에서 비동기 처리를 하기 위해서는 Future와 Stream에 대해서 잘 알아야 한다. Future는 이전에 설명했듯이 앨범에서 이미지 가져오기, 현재 배터리 표시, 파일 가져오기, http 요청 등 일회성 응답에 사용된다. Stream은 위치 업데이트, 음악 재생, 스톱워치 등 일부 데이터를 여러 번 가져올 때 사용된다. 즉, 계속해서 데이터의 ..

Develop/Flutter 2021.12.20

DevFest University: Devfest Campus Korea 2021 Flutter Relay Coding

전 세계 유일, 대학생 개발자를 위한 챕터인 GDG Campus Korea와 Google Developers Student Club의 14개 학교가 모여 DevFest University가 2021년 10월 30일부터 11월 14일까지 진행되었다. Devfest Korea 2021 Devfest Korea 2021 sites.google.com 행사는 Gatger Town인 온라인 플랫폼에서 진행되었고 행사가 진행되는 2주 동안, 매일 같이 출석(모각코)과 수업(세션)이 진행되었다. 행사에서는 GDSC Lead님과 Flutter Core Member분과 저 포함 총 3명에서 Flutter Relay Coding 세션을 맡아 진행하였다. 나는 여기서 Flutter Relay Coding 진행을 위해 메인 ..

[Flutter] 플러터 FutureBuilder를 사용한 비동기 처리

이전에 Dart 문법에 대해서 알아보면서 비동기 처리에 대해서 다뤄보았다. 이번에는 이전에 다뤘던 비동기 처리의 개념 중 자주 사용되는 FutureBuilder에 대해서 알아보자. [Flutter] 플러터 Dart(다트) 문법 정리 이번에는 플러터에서 사용되는 Dart 문법에 대해서 알아보자. DartPad dartpad.dev Dart 언어만을 다루기 때문에 위 링크를 통해 Dart 문법에 대해서만 확인하면서 진행하도록 하자. var와 dynamic Dart에서 Ja fre2-dom.tistory.com 비동기 처리에 대해서 잘 모른다면 위 링크를 통해 한번 읽어보고 오면 이해하기 더 좋을 것 같다. FutureBuilder는 Future를 사용하는 이유와 같이 데이터를 모두 다 받기 전에 먼저 데이터..

Develop/Flutter 2021.11.16