일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- android
- Compose
- Button
- intent
- DART
- 안드로이드
- data
- ScrollView
- viewmodel
- drift
- Kotlin
- LifeCycle
- livedata
- 테스트
- Navigation
- binding
- scroll
- 계측
- TEST
- textview
- CustomScrollView
- activity
- 앱
- Flutter
- appbar
- 앱바
- Dialog
- Coroutines
- tabbar
- textfield
- Today
- Total
목록Dart (10)
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..
✍ 비동기 작업 비동기로 작업할 때 여러 가지 요청(ex. 서버 request)을 해야할 경우, 한 요청이 끝날 때까지 기다렸다가 끝나면 다른 요청을 시작하는 식으로 순차적으로 진행할 경우 시간이 오래 걸릴 수 있다. 이럴 때, 다수의 요청을 한 번에 시작하고 끝나는 것을 기다린다면 시간을 단축시킬 수 있다. 😶 순차적인 진행일 경우 Future fetchData() async { print("start ${DateTime.now()}"); for(int i=0; i
✍ Enum type 열거형 타입(Enum type)은 고정된 수의 상수 값을 나타내는 데 사용되는 특수한 종류의 클래스이다. 색상을 나타내는 enum type 을 예시로 하면 다음과 같이 사용할 수 있다. enum Color { red, green, blue } void main() { Color color = Color.green; // green switch(color) { case Color.red: print("red"); break; case Color.green: print("green"); break; case Color.blue: print("blue"); break; } } 😶 values enum Color { red, green, blue } void main() { // List ..
✍ 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(..
✍ 비동기 프로그래밍? 비동기 프로그래밍(비동기 처리)은 현재 실행 중인 것이 완료되지 않더라도 다음 코드를 실행하는 방식을 말한다. 일반적으로 코드를 실행하면 위에서부터 아래로 순차적으로 실행한다. 중간에 시간이 오래 걸리거나 대기시간이 있는 작업이라고 해도 순서대로 실행하게 된다. 코드 순서가 A ▶ B ▶ C 인 프로그램이 있다고 하자. 이 프로그램의 B 과정이 중간에 대기시간이 있다고 하면 일반적인 동기 프로그래밍은 대기시간이 있더라도 대기하며 순차적으로 A ▶ B ▶ C 를 실행하게 될 것이다. C 과정이 A와 B에 직접적인 관련이 없는 작업이라면 대기시간 동안 C 과정을 일부 혹은 전부 실행하고 나머지 B 과정을 처리하는 게 효율적일 것이다. 이것을 가능하게 하는 것이 바로 비동기 프로그래밍이..
✍ Map() void main() { List fruit = ["사과", "바나나", "수박", "파인애플"]; final newfruit = fruit.map(x) { return '신선한 $x'; } // ("신선한 사과", "신선한 바나나", "신선한 수박", "신선한 파인애플") print(newfruit); final newfruit2 = newfruit.map((x) => "상한 $x"); // ("상한 사과", "상한 바나나", "상한 수박", "상한 파인애플") print(newfruit2); String number = "12345"; final parsed = number.split('').map((y) => '$y.png'); // ("1.png", "2.png", "3.png", ..