Flutter 6

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

[회고] 2023년

2022년 회고연말부터 해서 연초까지 건강이 좋지 않았다.. 그리고 여러 소식과 설날이 겹치면서 정신없이 지내다가 이제야 회고를 쓰게 되었다. 2023년 iOS 공부를 시작한 지 1년이 되었다. iOS 1년 차의 생각으koreamango.tistory.com 0. 서론2024년이 되어 2023년 회고록을 작성해보고자 한다. 지나고 나니 생각보다 너무 빠르게 지나갔던 올해였다.. 주변에도 올해가 너무 빠르다고 생각하는 사람이 많았다. 2022년 일들이 다 엊그제 같은데 벌써 1년이 지났다는게 새삼.. 문득... 더 나은 2024년을 위해 2023년 회고를 시작해보도록 하겠다. iOS MateList를 RxSwift로 리팩토링하면서 Observable Stream을 사용해 상태(데이터)를 변화시키고 전파시키..

회고록 2024.01.16