본문 바로가기

Flutter

[Flutter] 싱글톤 패턴에 대해서 알아보자! 싱글톤(SingleTon)이란? 보통의 경우에는 객체를 인스턴스화 시키면 하나의 인스턴스가 생기는데, 생성자를 호출할 때마다 인스턴스 1, 인스턴스 2, 인스턴스 3, .... 이런 식으로 여러 인스턴스가 생성자를 한번 호출할 때 마다 생기게 된다. 고로, 같은 객체이지만, 인스턴스 안에 멤버 변수들은 이름은 같아도 각각 다른 값을 부여받을 수 있다. 이를 방지하기 위해서 하나의 인스턴스를 만들어서 그 안에 멤버 변수들의 값을 공유하는 것이 싱글톤 패턴이다. 즉, 새로운 생성자를 만들디 않고, 딱 한 번만 인스턴스를 사용하여 하나의 생성자 값만을 가질 수 있다. 그러므로 최초에 생성된 단 하나의 생정자만 사용되고, 값이 있으면 원래 값으로 리턴해준다. Factory 싱글톤 패턴을 사용할 때 쓰는 예약어이.. 더보기
[PAKAGE] Shimmer Loading 시에 너무 좋은 Pakage 🔗 https://pub.dev/packages/shimmer shimmer | Flutter Package A package provides an easy way to add shimmer effect in Flutter project pub.dev 더보기
[Widget] Material Widget Material Widget은 property가 없는 여러 widget에 material widget이 가진 property를 넘겨줄 수 있다. Clipping Material widget은 shape, type, borderRadius 와 같은 property를 주입할 수 있다. Clipper 1. ClipOval 2. ClipRect 3. ClipRRect 4. ClipPath Default는 cilpBehavior는 Clip.none 이다. Clip.none VS Clip.none (x) Elevation Elevation을 줄 수도 있다! 투명도를 줄 수 있다! Ink Effect Material shows lnk effects implemented by InkFeatures like inkSpl.. 더보기
[Widget] MaterialStateProperty of Button ✔️ State 에 따라서 Button의 state에 맞는 시각적인 요소를 지정할 수 있다. Material Design에서 지정하고 있는 버튼의 상태 - enabled : 상호작용 가능한 버튼 상태 - pressed : 사용자가 탭 했을 때 - hover : 사용자가 마우스 커서를 상호작용 가능한 버튼 위에 올려두었을 때 - focus : 사용자가 키보드나 음성과 같은 입력 방법을 사용해서 강조표시한 상태 - disable : 상호작용 불가한 버튼 상태 State별로 버튼 시각적 요소 지정 1) MaterialStateProperty.resolvewith : State 별로 상태 변화를 지정할 수 있다. (개인적인 코드 방식) ElevatedButton( style: ButtonStyle( backgr.. 더보기
[GETX] GetX- 종속성 관리: Binding Binding Binding 관리는 의존성, 종속성 관리라고 부른다. 효율적인 메모리를 관리하기 위해서는 인스턴스 시킨 객체를 사용하고, 사용하지 않을 때는 없애주는 과정이 필요하다. 이러한 과정을 효율적으로 도와줄 수 있는게 Binding이다. Getx에서는 Binding을 지원하고 있으며 굉장히 효율적이고 간단하게 Binding을 관리 할 수 있다! 그럼 어떻게 Binding 관리를 할 수 있을까? #1. Page를 이동할 때 binding을 함께 넘겨준다. 페이지를 이동할 때 binding을 함께 넘겨줄 수 있다. 코드를 보면서 살펴보자! Get.to( GetPutPage(), binding: BindingsBuilder(() { Get.put(DependencyController()); }), ).. 더보기
[PAKAGE] auto_size_text Container 안에 Text를 입력할 때 maxLine에 맞도록 자동으로 Text의 사이즈를 줄여주는 Package이다. [링크] 🔗 https://pub.dev/packages/auto_size_text#-readme-tab- auto_size_text | Flutter Package Flutter widget that automatically resizes text to fit perfectly within its bounds. pub.dev 더보기
[GRAMMAR] VoidCallback(), Function(x), ValueChanged<T> 위와 같은 함수들이 많이 헷갈렸기 때문에 이를 정리하기 위함이다. Function(x) Function의 경우에는 Parmeter를 넘겨줄 수도 있고, 리턴값 또한 받을 수 있다. 만약 부모로 부터 return 값을 받고 싶으면 Function(x)를 사용하면 된다. 예제를 살펴보면 확실하게 알 수 있다. import 'package:flutter/material.dart'; import 'count.dart'; class CounterPage extends StatefulWidget { _CounterPageState createState() => _CounterPageState(); } class _CounterPageState extends State { int count = 0; @override.. 더보기
[GRAMMAR] as, parse, to as TYPE (ex. as Map, as Pizza..) as는 다른 타입으로 바꿔주는 문법인데 클래스를 다운그레이드 시킬 때 많이 사용한다. type.parse(string) parse는 String 변수를 int 또는 double 등의 정수형 타입으로 바꿀 때 자주 사용한다. toInt, toString, toDouble .. to(TYPE)은 형 변환할 때에 가장 많이 사용하고 유용하다. 더보기