DART 3

[Flutter] Flutter 폴더 및 내부 구조

플러터 폴더 구조 먼저 플러터 폴더 구조 중 크게 android, ios, lib, test 폴더가 있다. 여기서 가장 중요하게 볼 폴더는 lib 폴더이다. 폴더 이름 내용 비고 android Android 프로젝트 관련 파일 Android Studio로 실행 가능 ios IOS 프로젝트 관련 파일 X-Code로 실행 가능(Mac) lib 플러터 앱 개발을 위한 Dart 파일 플러터 SDK 설치 필요 test 플러터 앱 개발 중 테스트 파일 테스트 편의성 제공 먼저 lib 폴더에는 플러터 앱의 코드가 작성된 main.dart 파일이 존재한다. 그리고 android 폴더와 ios 폴더에는 각 운영체제에서 프로젝트를 시작할 때 필요한 피일이 있다. test 폴더에는 다트 코드로 함수를 테스트할 때 사용하는 ..

Application/Flutter 2022.11.21

[Flutter] 스트림(Stream) 통신하기

스트림(Stream) 통신이란 애플리케이션을 개발할 때 데이터를 순서대로 주고 받아야 할 경우가 있는데, 이와 같은 상황에서 데이터를 받을 순서를 보장할 때 스트림을 이용한다. 중간에 와이파이가 끊어져 데이터를 받지 못하거나 특정 API 호출이 늦어져 순서가 달라지면 애플리케이션이 원하는 흐름대로 동작하지 않는다. 이런 경우에 스트림을 이용하는데, 스트림은 처음에 넣은 데이터가 꺼낼 때도 가장 먼저 나오는 데이터 구조로 볼 수 있다. 따라서 스트림을 이용하면 데이터를 차례대로 주고받는 코드를 작성할 수 있다. 아래 예제는 스트림 통신의 예제이다. import 'dart:io'; import 'dart:async'; Future sumStream(Stream stream) async { var sum = ..

Application/Flutter 2022.11.21

[Flutter] Dart의 비동기 처리 방식과 스레드

다트는 비동기 처리를 지원하는 언어이다. 비동기(Asynchronous)란 비동기란 언제 끝날지 모르는 작업을 기다리지 않고 다음 작업을 처리하게 해주는 것을 의미한다. 만약 비동기를 지원하지 않고 동기(Synchronous)로만 처리한다면, 어떤 작업이 오래 걸릴 경우 사용자는 실행이 멈춘 것으로 생각할 수 있다. 일반적으로 네트워크에서 데이터를 가져오거나 데이터베이스에 쓰기, 파일 읽기 등의 작업은 상황에 따라 언제 끝날지 모르므로 비동기로 처리해야 한다. 아래 그림은 동기와 비동기 방식을 표현한 이미지이다. 동기 방식은 한 작업이 끝나면 다음 작업을 하고, 비동기 방식은 동시에 진행되는 것을 볼 수 있다. Dart의 비동기 프로세스 작동 방식 다트 언어에서는 async와 await 키워드를 이용해 ..

Application/Flutter 2022.11.21