Flutter를 1년 정도 사용하면서 얻은 노하우
플러터가 뭔데?
하나의 코드로 여러가지 플랫폼에서 사용할 수 있는 앱을 만드는 프레임워크요~
나름 플러터 헤비 유저로서 플러터로 개발할 때 유용하게 쓸 수 있는 지식들을 끄적여봤어요.
Flutter SDK 설치처럼 가장 기본부터 Dependency Injection이라는 복잡한 사용 방법까지 넓게 담아봤습니다.
Flutter를 사용하고 계신 메이커 분들, 개발자 분들이라면 get이라는 라이브러리를 들어보셨을텐데, get은 pub.dev에서 like 순으로 정렬한 페이지를 봤을 가장 많은 like를 차지하고 있는 라이브러리에요
이렇게 많은 사람들에게 사랑 받고 있는 라이브러리이지만 개인적으로는 이 라이브러리가 주는 한계에 너무 많이 부딪혔어요. 라이브러리 설명에도 있듯이 get하나만으로 state management, dependency injection, routing등이 다 되고 그것이 context 없이 가능하다고 되어있죠.
근데 Flutter에서 context는 가장 중요한 대원칙 중 하나라고 볼 수 있는데 이걸 무시하고 있으니 아무래도 제약이 있을 수 밖에 없었어요.
그래서 이 모든 것을 정리하는 느낌으로 Flutter의 매력에 빠진 이유와 Flutter에서 멋진 개발 환경을 설정하는 내용을 글로 써보았습니다!
모바일 앱 개발을 좋아하는 분들은 재미나게 읽어볼 수 있을 것 같아요 :) 만약 Flutter를 안 쓰신다면 Flutter의 매력에 빠져보시는 것은 어떠할지.. 흠흠
최근에 만들게 된 Soak이라는 프로젝트도 학교 선배의 꼬심에 당해 일주일 동안 Flutter로 만들어낸 앱이에요! 만약에 Flutter가 아니였다면 제 기간에 만들지 못했을 겁니다,, 쏙과 관련된 메이커로그도 나중에 시간 나면 써보도록 하겠습니다 😊
인공지능을 사용한 링크 저장, 요약 서비스
댓글
로그인 후 댓글을 남길 수 있습니다.
상태관리, 라우팅, 로컬라이제이션, 스낵바 등등의 많은 기능.. 을 모두 한번에 제공한다는 라이브러리가 있다고? 저는 이 사실에 오히려 거부감이 들더라구요. 원하는 기능만 사용하면서 lean 하게 프로덕트를 구성하고 싶은데 하나의 기능만 쓰더라도 다른 기능까지 패키지를 받아야 하니까요. 또 컨텍스트를 무시한 코드 구조도 그렇구요. 여러모로 꺼림직한 라이브러리여서 결국 getx 를 제거하기 위해 다 리팩토링 했던 기억이 있네요. 개인적으로 getx 를 제외한 플러터 상태 관리 라이브러리를 고르는게 너무 어려웠는데 bloc 의 경우에는 러닝 커브가 너무 가파르고(bloc 패턴이라는거가 너무 어려웠음) 보일러 플레이트 코드가 너무 많다는 느낌을 받았고 riverpod을 쓰다가 개발 경험이 안좋아서 결국은 공식 docs에서 권장하는 provider 로 회귀했던 경험이 있습니다. bloc 쓰시면서 어렵거나 복잡하거나 하지는 않으셨나요?
getx에 대해서 저와 비슷한 생각을 하신 분이 있군요! 그래서 다른 패키지를 고민 하던 중 bloc패턴은 생소해서 선택하기 꺼려졌는데 한번 만져보니 react의 context API와 비슷한 점이 많이 보이더라고요. 이렇게 연결해서 생각하니까 쉽게 접근할 수 있었습니다! 물론 보일러플레이트 코드가 많다는 것은 동의합니다. 이 부분은 freezed라이브러리를 사용해서 어느정도 보완하는 편입니다. bloc을 사용하게 되면 위젯이 엄청 중첩될 수 있는데, 위젯 분리를 많이 해서 해소하고 있습니다.
https://pub.dev/packages/states_rebuilder 요거 플러터로 3년쯤 개발하면서 getx, mobx, provider 등 거르고 걸러서 정착한 라이브러리인데 추천합니다
get 라이브러리에서 상태 관리와 관련된 부분만 남기고 상태 관리에 도움이 될 수 있는 유틸격의 함수가 많이 보이네요! get을 대체하기 위해 가장 적절한 라이브러리인듯 싶어요. 적절한 부분(필요할 때에는)에서 BuildContext를 명시적으로 사용할 수 있다는 것도 인상 깊네요. 좋은 라이브러리 추천 감사합니다 :)
보성님 메이커로그가 Must Reads #254에 선정되었습니다! https://stib.ee/Aby8
와 저는 최근에 플러터 공부 시작해서 어제 막 sdk 설치 끝냈습니닼ㅋㅋㅋ디콰에서 플러터 글을 보니 반갑네요!!!