DART
-
[Dart] 변수 선언 시 var와 그 외의 타입을 지정하는 경우Flutter 2024. 1. 15. 16:44
Dart의 변수 지정 방식은 크게 2가지가 있다. 첫째로 var name = 'dart'; 와 같이 var로 지정해주는 방식과 둘째로 String name = 'dart'; 와 같이 name의 type을 미리 지정해주고 선언하는 것이다. 물론 var로 해도 dart 컴파일러가 알아서 name이 String 이라는 것을 알고 지정해주기 때문에 상관없다. 그렇다면 언제 var를 쓰고 언제 String같은 타입 지정 방식을 사용하는 것일까? 사실 어떻게 선언하든 코드는 돌아가지만 Dart 공식 스타일가이드의 권장방식은 var는 함수나 메소드 내부의 지역변수를 언선할 때 사용하고 String, double, int, bool 같은 타입 지정은 class 변수나 property를 선언할 때 사용하는 것을 권장한다..
-
[Flutter] private 변수(_)에 대해서...Flutter 2023. 12. 20. 15:10
다른 객체지향 언어를 학습하며 private와 public에 대한 개념이 어느정도 잡혀있다 하더라도 Flutter 개발을 혼자 하다보면 언제 어느 시점에 _를 붙여야할지 고민될 때가 있습니다. 다른 사람들의 오픈소스나 강의의 참고 코드를 봐도 누구는 붙이고 누구는 안붙이고 강의 같은 경우는 편의상 private 선언은 안하는 경우도 많고해서 ... 더 헷갈리더라구요. 또 getter와 setter에 대해서도 학습할 필요를 느꼈구요. 그래서 언제 변수명 앞에 _를 붙여야 할지에 대해 찾아보던 중 잘 정리된 글이 있어 두고두고 보려고 저장하는 김에 공유합니다. https://medium.com/@Toglefritz/embracing-private-variables-in-flutter-5f7fe4983a36
-
[Flutter] Don't invoke 'print' in production code. 뜨는 이유Flutter 2023. 12. 18. 10:54
Andriod Studio로 Flutter 개발을 할 때 변수값 확인을 위해 print를 사용하면 노란 밑줄이 뜨면서 Don't invoke 'print' in production code. (Documentation) Try using a logging framework. 라는 경고문구를 보게 된다. 이는 analysis_options.yaml 파일에 선언되어있는 include: package:flutter_lints/flutter.yaml 패키지 때문에 뜨는 경고문인데, 이 패키지는 Dart & Flutter의 코딩 규칙, 스타일의 일관성 등을 위해 기본으로 설치된 패키지이다. 다시 돌아와서 print 경고문을 번역기로 돌려보면 프로덕션 코드에서 'print'를 호출하지 마세요. (문서) 로깅 프레임..
-
[Dart] extends와 implements의 차이??Flutter 2023. 11. 2. 14:44
공통점 둘 다 class가 다른 class를 상속받을 때 사용한다. class A extends B{} class C implements D{} 차이점 Java 에서는 extends는 class가 class를 상속받을 때, implements는 interface를 상속받을 때 사용했는데 Dart에서는 조금 달라 정리해본다. Dart에서는 interface라는 키워드가 대신 이를 상속 받을때 extends로 하냐, implements로 하냐에 따라 부모 class 내의 method 내용을 채워야 하느냐 마느냐(재정의)에 차이를 둔다. Java에선 implements로 상속받으면 부모 interface의 method 안의 내용이 없기 때문에 자식 class에선 method안에 내용을 채워야 했다. Dart에..
-
[Dart] Dart에서의 static, const와의 차이점?Flutter 2023. 11. 1. 16:56
static static은 class 내에 귀속되어 고정되는 변수나 함수를 선언할 때 사용. 서로 다른 여러개의 인스턴스를 생성해도 static으로 지정한 값은 공유되어 참조한다. static을 사용한 변수는 내부에서도 this. 을 붙이지 않는다. static 키워드를 사용하여 생선한 method는 인스턴스를 생성하지 않고 직접 호출할 수 있다. = 좀 더 편리하게 사용하기 위해 사용 const class와는 상관없다. cosnt는 상수를 정의할 때 사용되고 런타임 때 변경 불가능하다. = 코드의 안정성을 위해 사용
-
[Dart] "toString"과 "as String" 차이?Flutter 2023. 10. 31. 13:10
"toString"과 "as String"은 애초에 전혀 비슷하지도 않은 다른 문법이다. 그냥 to랑 as 가 있어서 처음 보는 사람은 헷갈릴 여지가 있는 것 뿐. toString toString은 타입을 변환시켜주는 것이다. int a = 4; a.toString(); 하면 a가 String으로 변환돼어서 '4'가 되는 것 String을 다시 int로 변환시켜주고 싶다면 int.parse(a); as String 이건 그냥 as 뒤에 String이 붙은 것 뿐이다. String 뒤에 다른 어떤 class나 타입이 들어가도 상관없다. 그래서 dart에게 이건 String 타입이라고 알려주는 것 뿐 String a = '4'; final b = a as String; 이렇게 하면 a가 String이 아니면..