Flutter 7

Flutter - GetX에 대해

안녕하세요 오늘은 Flutter의 상태 관리, 화면 전환 네비게이션 관리, 의존성 관리 패키지인 GetX에 대해 알아볼까합니다. https://pub.dev/packages/get get | Flutter packageOpen screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX.pub.dev Flutter를 처음하게 되면 거의 Provider를 통해서 상태관리를 하게 되는데요. 하지만 조금 더 다양한 상태 관리 툴을 찾다보면, GetX를 알게 됩니다.GetX는 아주 쉽고 간단하게 상태를 관찰하여, UI에 보여줍니다. 찾아보면서 알게 됐는데, GetX는 상태관리 뿐만 아니라, 네비게이..

Flutter 2024.11.27

Flutter - DevTool로 Provider 값 모니터링하기(Feat-DevTool Extension)

안녕하세요 오늘은 Flutter 개발을 하는 도중 신기했던 기능이 있어서 가져왔습니다. Flutter의 가장 큰 장점 중 하나라고 생각하는게 DevTool인데요!이 DevTool에서 Provider 값을 모니터링 할 수 있는 탭이 어느 날 생겼더라구요.  상태를 지켜보면서 리팩토링 할 때 유용하게 썼었던 기억이 있습니다. 그런데 알고보니까 이게 플러터에서 만들어준게 아니라 Extension으로써 만들어진거더라구요. https://docs.flutter.dev/tools/devtools/extensions DevTools extensionsLearn how to use and build DevTools extensions.docs.flutter.dev 그래서 저 DevTool 탭에 있는 Provider도 ..

Flutter 2024.11.21

Flutter - 플러터의 메모리 관리

플러터에서는 어떻게 메모리 관리를 하는지 알아보고자 합니다. Dart는 Class 생성자를 사용하면 heap(힙) 이라고 불리는 메모리에 저장합니다. (Swift랑 똑같네요 :))  heap의 메모리는 Dart의 VM에서 관리를 하게 됩니다. Dart VM은 가비지 컬렉터(쓰레기 수집가?)가 존재해서객체가 필요할 땐 할당을 해주고, 필요가 없으면 해제를 해줍니다. https://medium.com/flutter/flutter-dont-fear-the-garbage-collector-d69b3ff1ca30 Flutter: Don’t Fear the Garbage CollectorFlutter uses Dart as a development language and as a runtime. Dart’s run..

Flutter 2024.11.12

Flutter - Class의 확장 방법

Flutter를 개발할 때는 Dart를 사용합니다. iOS 개발을 오래 했던 저는 Swift가 익숙합니다. 이번에는 Dart와 Swift를 비교하면서 Class의 확장 방법들을 한번 알아보도록 할게요. Dart에 Class 확장하는 방법 중 abstract, extends, Implements, with 에 대해 알아보도록 하겠습니다. abstractabstract는 Swift의 Protocol 과 비슷한 것 같습니다.  인터페이스를 잡아주고, 구체적인 구현은 하지 않는 모습이 비슷하다고 생각했습니다.Dartabstract class Vehicle { void moveForward(int meters);} Swift protocol Vehicle { func moveForward(meters: I..

Flutter 2024.11.11

Flutter - secure_storage || KeyChain 사용법 (feat. Method Channel)

안녕하세요 :) iOS 에서는 계정 토큰 관련된 정보는 보안을 위해 KeyChain이라는 곳에 저장하는데요. KeyChain은 Apple이 제공하는 보안 저장소라서, 암호화되어 저장됩니다. Flutter도 이렇게 민감한 정보들을 저장할 때는 Native 쪽의 암호화가 되어 있는 곳에 저장해야 합니다.  그래서 iOS인 경우는 Method Channel을 통해서 통신을 하고 데이터를 전달한 다음, KeyChain에 저장해야 합니다.이렇게 로컬에 저장하는데, Method Channel 로 요청을 보내고 Native에서 작업을 진행하려면 꽤 작업이 들어가는데요. 이러한 작업을 간단하게 도와줄 패키지가 있습니다. https://pub.dev/packages/flutter_secure_storage flutter..

Flutter 2024.11.10

Flutter State Management - 1. Provider, ChangeNotifier 에 대해

오늘은 Flutter의 상태관리에 대해 알아보려 합니다. Flutter에서 데이터 상태관리를 하기 위해서는 여러가지 방법이 있습니다.Provider, GetX, Bloc, ... 등등.. 하지만 Flutter를 입문자라면 아마도 Provider를 통해서 데이터 상태관리를 할 것 입니다. Flutter 공식 문서에서도 Flutter에서 Provider를 사용하는 것은 이해하기 쉽고, 코드를 많이 사용하지 않는다고 말합니다. 저도 provider가 Flutter에 기본적으로 내장되어 있는 줄 알았는데, 상태관리를 하기 위해서는 package를 설치해야 하더라구요. https://pub.dev/packages/provider provider | Flutter packageA wrapper around Inhe..

Flutter 2024.11.09

Flutter - Build Context란?

flutter 를 이용해 개발하면서 특이했던 Context에 대해 알아보고자 합니다. class Exmple extends StatelessWidget {const Exmple({ Key? key }) : super(key: key); @override Widget build(BuildContext context){ return Container(); }} 처음 위젯을 만들면 이렇게 Widget Build에 context가 매개변수가 들어가게 됩니다.  이 context는 위젯 트리에서 위젯의 위치에 대한 정보를 갖고 있습니다.위젯이 트리 구조로 이루어져 있기 때문에, 자식 위젯에서 부모 위젯까지 찾아오기 쉽습니다. 그리고 주의할 점은 BuildContext 인스턴스를 저장하면 안됩니다.위젯이..

Flutter 2024.11.08