개요이번 주제는 Flutter web을 빌드할 때 사용하는 --web-renderer의 대표적인 두 가지 옵션 html, canvaskit에 대해 알아보려고 한다.이번 주제에서는 가장 많이 사용되는 렌더러를 제외한 wasm은 보통 렌더러라고 하지 않아 이번 글에서는 논하지 않도록 하겠다.얼마 전에 플러터의 애니메이션을 최대한 활용한 플러터 웹을 만들고 있었다.개발용 PC의 성능이 좋아 최대한의 기능을 활용하여 몹시 아름다운 동적 웹사이트를 만드려고 했다.그리고 중간정도 완성을 한 후 배포 테스트를 위해 서버 PC에 있는 Nginx를 이용해 배포를 했다. 예상대로 내가 주로 사용하는 맥미니에서 배포된 웹사이트로 접근했을 때 개발할 때와 같은 모습으로 잘 렌더링이 되었다.하지만 내가 가지고 있던 기기 중 성..
개요서버용 라즈베리파이에 Code-Server를 설치한 후 코딩에 대한 제약 사항이 많이 개선되었다.아이패드에서 내 개인 Code-Server로 접속하여 NodeJS API 구현을 하는 등, 개발 취미에 대한 자유도가 많이 높아졌다. (디스코드 봇도 code-server를 통해 성공적으로 구현 완료). Code-Server 만세!!!!요즘에 Flutter Web을 통해 이런저런 실험을 진행하고 있는데, Flutter Web도 Headless-server를 근본으로 포트를 구성하여 Chrome이나 기타 브라우저에서 디버그가 가능하게 구현이 되어있는 듯했다.근데 이 녀석, 만약 외부에 접근할 수 있는 환경이라면, Code-Server를 통해서도 충분히 Flutter 개발이 가능하다면 어떨까?라는 생각이 들어..
1) 개요 플러터를 입문한 지 어느덧 3년 차가 되어간다. 그동안 상태관리툴로써 Provider를 가장 많이 사용해 왔었지만 언젠가는 Deprecated 된다는 Provider의 창시자의 말에 충격을 받게 되었다. 다른 상태관리툴을 익혀야 될 때가 된 것 같아 알아보던 도중 GetX와 BLoC에 눈을 들이게 되었는데 GetX의 경우엔 10개월째 패키지 업데이트가 이뤄지지 않고 있고 BLoC패턴의 경우는 간단한 프로젝에 어울리지 않으며 난이도가 어렵기 때문에 마지막으로 Provider의 계승자인 RiverPod을 알게 되었다. RiverPod 은 Provider의 철자에서 순서만 바뀐 단어이며 Provider에서 컴파일러 중에 발생하는 오류, 여러 문제점들을 최대한 개선하여 RiverPod으로 배포가 되었..
최근에 토이프로젝트로 진행 중인 Flutter Web 사이트의 버전을 바꾸게 될 일이 생겨 업데이트를 하려 하는데 문제가 생겼다. 최신버전을 반영한 이후 Flutter web의 빌드파일을 서버에 적용을 한 후 접속을 해보는데 캐시 된 이전 페이지가 그대로 보이는 것이다. 문제를 확인해 보니 플러터 웹은 main.dart.js를 가져오게 되는데 이 파일은 자바스크립트 파일이다 보니 갱신을 하려면 쿼리를 파라미터를 추가하여 버전을 올려줘야 신규 main.dart.js를 웹브라우저에서 인식을 하고 가져오는 것이다. 그럼 해결방법을 적어보도록 하겠다. 1.Flutter Web을 빌드한다 (flutter build web --web-renderer canvaskit --release) 2. 이후 빌드된 폴더에 이..
우리는 소프트웨어를 구현하면서 확장성, 유지보수성을 체계적으로 극복하기 위해 다양한 고민을 해왔다. 그리고 디자인 패턴은 그러한 불편함을 극복하기 위해서 다양한 방법으로 탄생해왔다. 물건을 생산하기 위해 가장 효율이 좋은 방법. 즉 패턴, 소프트웨어에서는 그러한 것들을 디자인 패턴이라 부르고 많은 개발자들은 확장성과 유지보수성을 위해 디자인 패턴을 따르고자 했다. 가장 단순하면서 널리 사용되며, 웹에서 아직까지도 사용 중인 MVC패턴, 그리고 MVC에서의 단점을 극복하기 위해 파생된 MVP패턴 그리고 MVC에서 또 한 번 파생되어 의존성 부분을 최소화시킨 MVVM 패턴까지, 시대를 거듭하면서 그 시대에 사용하는 Web이나 App 등 과 같은 서비스에서 요구하는 패턴이 있고, 위의 3가지 패턴은 그에 따라..
몇 시간 동안 삽질해서 겨우 알아낸 오류 하나를 잡게 되었다. 원인은 Flutter의 외부 dependency인 flutter_sounds를 사용하려고 추가를 한 다음 IOS에서 빌드를 하려 하는데 deploy버전이 안 맞는 등 각종 오류가 폭발하다가 flutter clean 또는 IOS 폴더를 통째로 지우고 flutter create . 를 쓰는 방법을 해봤다. 물론 해결은 안 됐다. 그리고 최종적으로 직면한 오류가 Undefined symbol: ___gxx_personality_v0 인데 Xcode 내에서 빌드를 하여도 동일한 문제가 발견되었던 것을 보았다. 구글에 여기저기 찾아보니 깃허브에서 해결방법을 올려준 것을 보았고 M1 맥북에서 자주 발생하는 오류로 보였다. IOS buildSetting에..