Posts flutter (rn 개발자를 위한 정리 1)
Post
Cancel

flutter (rn 개발자를 위한 정리 1)

진입점

1
2
3
main() {
    // 항상 최상단 앱의 진입점 main() 이 있어야함.
}

콘솔

1
print("hello world")

변수

  • dart 는 타입검사를 하는 언어
  • 정적 타입 검사와 런타임 타입검사를 동시에 사용하며, 변수의 값이 변수의 정적타입과 항상 일치하는지 검사함.
  • 타입 추론을 하기에 일부 타입표기는 생략가능
1
2
String name = 'dart';	// 명시적 타입 선언
var othername = 'dart';	//타입 추론
  • 초기화하지 않은 변수는 null값을 가짐.
1
2
var name;		// null
int x;		// null

null, 0 체크

  • dart에서는 bool 값 true만 true로 취급한다.
  • 따라서 null, 0 값은 그 값으로 대응 되는지 확인해야함.
1
2
3
4
5
6
7
8
var myNull = null;
if (myNull == null) {
    print("is null");
}
var zero = 0;
if(zero == 0) {
    print("is 0")
}

함수

  • 자바스크립트하고는 선언에서 차이가 남.
1
2
3
4
5
6
7
fn() {
    return true;
}

bool fn() {
    return true;
}
  • 한줄 함수일때는 화살표함수 사용가능
1
bool fn() => true;

비동기 프로그래밍

  • dart에서는 Future 객체를 사용하여 비동기를 지원함

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    import 'dart:convert';
    import 'package:http/http.dart' as http;
      
    class Example {
      Future<String> _getIPAddress() {
        final url = 'https://httpbin.org/ip';
        return http.get(url).then((response) {
          String ip = jsonDecode(response.body)['origin'];
          return ip;
        });
      }
    }
      
    main() {
      final example = new Example();
      example
          ._getIPAddress()
          .then((ip) => print(ip))
          .catchError((error) => print(error));
    }
    
  • 또 async, await로 비동기를 처리할 수 있음.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import 'dart:convert';
import 'package:http/http.dart' as http;

class Example {
  Future<String> _getIPAddress() async {
    final url = 'https://httpbin.org/ip';
    final response = await http.get(url);
    String ip = jsonDecode(response.body)['origin'];
    return ip;
  }
}

main() async {
  final example = new Example();
  try {
    final ip = await example._getIPAddress();
    print(ip);
  } catch (error) {
    print(error);
  }
}
This post is licensed under CC BY 4.0 by the author.

LocateC

flutter (rn 개발자를 위한 정리 2)

Comments powered by Disqus.