플러터 레이아웃플러터 렌더링 엔진은 한 가지 정해진 레이아웃 시스템을 사용하지 않는다는 특징이 있다.위젯은 뷰를 묘사하는 고수준 클래스이며, 위젯을 화면에 그리는 부분은 저수준 객체가 담당한다.Row와 ColumnColumn, Row 위젯으로 플렉시블 레이아웃을 활용할 수 있다.Column은 자식들을 열로 배치하고, Row는 행으로 배치한다.레이아웃 제약 조건플러터는 UI 라이브러리이며, 렌더링 엔진이기 때문에 레이아웃 제약 조건은 중요한 개념이다.플러터 개발 중에 flutter layout in-finite size(플러터 레이아웃 무한 크기)에 대한 오류를 겪게 된다.제약 조건이 어떻게 동작하는지 이해하여, 오류에 대응해야 한다.RenderObject이 클래스는 내부에서 사용되는 클래스이므로 플러터 ..
플러터 프로젝트 구조플러터 프로젝트를 만들면 디렉터리가 생성된다.모든 디렉터리를 알 필요는 없으며, 사용하지 않는 디렉터리도 있다.counter_app=> android => ios=> lib => main.dart // 프로젝트 진입점, main을 포함=> test // 비즈니스 로직 검증 => widget_test.dart=> pubspec.yaml // 모든 다트 프로젝트에 필수, 의존성과 메타데이터 관리=> pubspec.lock // 편집하면 안 되는 잠금 파일 생성 => README.md플러터 앱 내부플러터의 많은 기능은 다트 라이브러리로 이루어져 있다.구글의 머티리얼 디자인 시스템 기본 위젯을 사용할 수 있다.앱 진입점앱의 맨 윗부분에 main 함수를 선언한다.runApp이라는 메서드로 최상..
다트 프로그램 내부모든 다트 프로그램은 main 함수를 반드시 정의해야 한다.모든 변수는 형식을 가져야 하며, 형식(or void)를 반환해야 한다.입출력과 다트 라이브러리다양한 라이브러리를 제공하지만, dart:core 라이브러리만 자동 로드된다.dart:html, dart:async, dart:math 등 다양한 라이브러리를 사용할 수 있다.dart:io를 활용하여 서버 응용프로그램이나 명령줄 응용프로그램을 구현할 수 있다.import 'dart:io';void main() { stdout.writeln('Greet Somebody'); String? input = stdin.readLineSync(); return helloDart(input);}void helloDart(String? nam..
플러터플러터는 구글에서 만들어 오픈 소스로 공개한 모바일 SDK다.렌더링 엔진, UI 컴포넌트, 테스트 프레임워크 도구, 라우터 등 앱을 만드는 데 필요한 모든 기능을 제공하는 플랫폼이다.플러터를 활용하면 개발자는 앱 특유의 도메인 기능에만 집중할 수 있다.플러터와 다트다트는 플러터를 위한 프로그래밍 언어로 생산성이 좋고 예측 가능하다.다트는 객체지향이므로 마크업 언어를 사용하지 않고, 다트 언어만으로 사용자 경험을 구현할 수 있다.다트는 JIT(just-in-time) 컴파일과 AOT(ahead-of-time) 컴파일을 모두 지원한다.AOT 컴파일러다트 코드를 효율적인 네이티브 코드로 전환대부분의 기능을 커스터마이즈JIT 컴파일러핫 리로드 지원빠른 개발 속도와 반복을 지원누가 플러터를 사용할까?개인 개..