일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- TEST
- CustomScrollView
- textview
- viewmodel
- activity
- Coroutines
- Dialog
- textfield
- 앱
- Button
- binding
- livedata
- Navigation
- DART
- drift
- Compose
- Flutter
- intent
- ScrollView
- scroll
- 안드로이드
- 앱바
- 테스트
- 계측
- Kotlin
- appbar
- android
- data
- tabbar
- LifeCycle
- Today
- Total
목록DART (9)
Study Record
🎁 생성자 클래스가 생성될 때 생성자를 부르면서 인스턴스가 생성된다. 기본적으로 상속받은 클래스가 슈퍼 클래스(super)의 생성자를 상속받지 않는다. 따라서 상속받은 클래스는 생성자를 선언하지 않으면 기본생성자(Default Constructors)만 가진다. 따라서 상속을 사용하는 클래스일 경우 슈퍼 클래스(상속하는 클래스)의 생성자를 직접 실행하는 작업이 필요하다. 클래스 생성자 기본 모양 class Person { bool isMan = false; Person(bool isMan) { this.isMan = isMan; } } class Student extends Person { String name; // this 키워드를 사용하여 직접 사용 Student(this.name, bool isM..
pub get 을 실행하던 Dart Sdk version 이 2.19.0 이상이 필요하다고 해서 프로젝트의 dart version 을 바꿔보려 한다. ✍ dart 버전 다운받기 Flutter SDK releases 를 다운받을 수 있는 사이트에서 원하는 dart version 에 맞는 Flutter SDK 를 다운받는다. Flutter SDK releases All current Flutter SDK releases, stable, beta, and master. docs.flutter.dev 2.19.1 버전을 다운로드하였다. ✍ 안드로이드 스튜디오 프로젝트의 dart 설정하기 다운로드한 Flutter Sdk releases 의 압축을 풀고 ./flutter/bin/cache/dart-sdk/ 파일 경..
✍ 비동기 작업 비동기로 작업할 때 여러 가지 요청(ex. 서버 request)을 해야할 경우, 한 요청이 끝날 때까지 기다렸다가 끝나면 다른 요청을 시작하는 식으로 순차적으로 진행할 경우 시간이 오래 걸릴 수 있다. 이럴 때, 다수의 요청을 한 번에 시작하고 끝나는 것을 기다린다면 시간을 단축시킬 수 있다. 😶 순차적인 진행일 경우 Future fetchData() async { print("start ${DateTime.now()}"); for(int i=0; i
✍ Conditional expressions if-else 문이 필요할 수 있는 식을 간결하게 평가할 수 있는 두 가지 연산자가 있다. 😶 condition ? expr1 : expr2 condition 이 참이면 expr1 거짓이면 expr2 를 반환한다. void main() { String value = 13 > 9 ? "13이 9보다 크다." : "13이 9보다 작다."; // 13이 9보다 크다. print(value); } 😶 expr1 ?? expr2 expr1 값이 null 이 아니면 expr1 을 반환하고 null 일 경우 expr2 를 반환한다. void main() { String? a = null; String value = a ?? "a는 null"; // a는 null prin..
✍ .. "." 을 사용해서 함수를 실행하고 return 값으로 실행한 함수의 return 값이 반환된다. 하지만 ".." 은 리턴값으로 함수를 실행한 대상이 리턴된다. int a = 3; String aStr = a.toString(); final aInt = a..toString(); // true print(aInt is int); a = 5; print(aInt);// 3 print(a);// 5 위의 예시와 같이 a.toString() 을 했을 때 toString() 의 리턴값은 String 인데 a..toString() 하면 a 를 리턴받아 aInt 의 타입은 int 이 된다.
✍ 난수 생성하기 Dart 에서 난수를 생성하려면 Random() 클래스를 사용한다. import 'dart:math'; void main(){ final random = Random(); } 3가지 타입(bool, double, int)의 난수를 생성할 수 있다. var intValue = Random().nextInt(10); // intValue is >= 0 and = 50 and = 0.0 and < 1.0. doubleValue = Random().nextDouble(..
✍ DateTime Dart 에서 날짜 계산을 할 때 유용한 class 이다. 현재 날짜 DateTime now = DateTime.now(); print(now);// 2023-01-31 23:40:53.435 print(now.year);// 2023 print(now.month)// 1 print(now.day);// 31 print(now.hour);// 23 print(now.minute);// 40 print(now.second);// 53 print(now.millisecond);//435 특정 날짜 // DateTime() 인자값 DateTime( int year, int month = 1, int day = 1, int hour = 0, int minute = 0, int second =..
✍ 비동기 프로그래밍? 비동기 프로그래밍(비동기 처리)은 현재 실행 중인 것이 완료되지 않더라도 다음 코드를 실행하는 방식을 말한다. 일반적으로 코드를 실행하면 위에서부터 아래로 순차적으로 실행한다. 중간에 시간이 오래 걸리거나 대기시간이 있는 작업이라고 해도 순서대로 실행하게 된다. 코드 순서가 A ▶ B ▶ C 인 프로그램이 있다고 하자. 이 프로그램의 B 과정이 중간에 대기시간이 있다고 하면 일반적인 동기 프로그래밍은 대기시간이 있더라도 대기하며 순차적으로 A ▶ B ▶ C 를 실행하게 될 것이다. C 과정이 A와 B에 직접적인 관련이 없는 작업이라면 대기시간 동안 C 과정을 일부 혹은 전부 실행하고 나머지 B 과정을 처리하는 게 효율적일 것이다. 이것을 가능하게 하는 것이 바로 비동기 프로그래밍이..