반응형

DART 9

Flutter 패키지 & 플러그인 개발 완벽 가이드: 코드 재사용성 극대화하기

플러터(Flutter) 생태계에서 패키지와 플러그인은 코드 재사용성과 생산성을 극대화하는 핵심 도구입니다. 패키지는 순수 Dart 코드로 작성된 라이브러리, 플러그인은 Dart와 네이티브(Android/iOS 등) 코드를 모두 포함해 플랫폼 고유 기능을 확장할 수 있습니다.아래에서 패키지/플러그인 개발부터 테스트, 배포까지 실전 절차를 단계별로 정리합니다.패키지 vs 플러그인: 차이점패키지(Package)Dart 코드만 포함모든 플랫폼에서 동작예: 날짜 계산, 문자열 처리 등플러그인(Plugin)Dart + 네이티브(Android, iOS, Web 등) 코드 포함플랫폼별 기능 연동(센서, 카메라, 파일 등)Method Channel 활용패키지 개발 절차패키지 프로젝트 생성flutter create --t..

플러터 children과 child의 차이점

플러터에서 UI를 구성할 때 위젯들을 조합하는 과정에서 자주 마주치게 되는 두 가지 매개변수가 있습니다. 바로 'child'와 'children'입니다. 이 두 매개변수는 위젯의 자식 요소를 정의하는 방식에서 명확한 차이가 있습니다. child와 children의 핵심 차이childchild는 단일 위젯만을 자식으로 받는 매개변수입니다. 한 개의 위젯만 포함할 수 있으며, 주로 Container, Center, Padding 등과 같은 기본 위젯에서 사용됩니다.Container( color: Colors.blue, child: Text("단일 위젯"),)  child를 사용하는 대표적인 위젯들:ContainerCenterPaddingSizedBoxCardScaffold (body, appBar 등의 ..

Dart 비동기 프로그래밍: Future, async, await, Stream

Dart에서 비동기 프로그래밍은 효율적인 앱 개발을 위한 핵심 요소입니다. 특히 Flutter 앱에서 네트워크 요청이나 파일 작업 같은 시간이 걸리는 작업을 처리할 때 필수적인 개념입니다.Future란?Future는 미래의 어느 시점에 완료될 작업의 결과를 나타내는 객체입니다. 키오스크에서 음식을 주문하고 주문번호를 받은 후 기다리는 것과 유사합니다.import 'dart:async';Future futureNumber() { // 3초 후 100이 반환됩니다 return Future.delayed(Duration(seconds: 3), () { return 100; });}void main() { Future future = futureNumber(); future.then((val) {..

다트(Dart)의 객체지향 프로그래밍(OOP) 개념

클래스와 객체클래스는 객체를 생성하기 위한 청사진입니다. Dart에서 클래스를 정의하고 사용하는 방법은 다음과 같습니다:class Person { String name; int age; Person(this.name, this.age); void introduce() { print("안녕하세요, 제 이름은 $name이고, 나이는 $age세입니다."); }}void main() { Person person = Person("Alice", 30); person.introduce();}  생성자Dart에서는 여러 종류의 생성자를 정의할 수 있습니다:기본 생성자class Coffee { String name; Coffee(this.name);}  네임드 생성자class Coffee { S..

[Dart 완전 정복] 다트 함수와 람다, 예외처리 마스터하기

Dart 언어에서 함수는 코드의 재사용성과 구조화에 핵심적인 역할을 합니다. 이 글에서는 Dart의 함수, 람다 표현식, 그리고 예외 처리에 대해 상세히 알아보겠습니다. 함수의 기본 구조와 특징기본 함수 정의int add(int a, int b) { return a + b;}void main() { print(add(5, 3)); // 출력: 8}  반환값이 없는 함수void printMessage() { print("Hello, Dart!");}  포지셔널 파라미터void greet(String name, int age) { print("안녕하세요, $name! 당신의 나이는 $age 세입니다.");}   네임드 파라미터void showInfo({required String name, int a..

[Dart 완전 정복] 다트 연산자와 제어문 마스터하기

Dart 언어는 다양한 연산자와 제어문을 제공하여 효율적이고 유연한 프로그래밍을 가능하게 합니다. 이 글에서는 Dart의 주요 연산자와 제어문을 상세히 살펴보고, 실제 사용 예제를 통해 이해를 돕겠습니다. 연산자1. 기본 수치 연산자Dart에서는 다음과 같은 기본 수치 연산자를 제공합니다:void main() { int a = 10; int b = 3; print(a + b); // 덧셈: 13 print(a - b); // 뺄셈: 7 print(a * b); // 곱셈: 30 print(a / b); // 나눗셈: 3.333... print(a % b); // 나머지: 1 print(a++); // 후위 증가: 10 (a는 11이 됨) print(++b); // 전위..

[Dart 완전 정복] 다트 컬렉션(Collection) 마스터하기: List, Map, Set, Enum 총정리

Dart 언어는 데이터를 효율적으로 관리하기 위한 다양한 컬렉션 타입을 제공합니다. 이 글에서는 Dart의 주요 컬렉션인 List, Map, Set, 그리고 Enum에 대해 상세히 알아보고, 실제 사용 예제를 통해 각 컬렉션의 특징과 활용법을 살펴보겠습니다. 1. List: 순서가 있는 데이터 집합List는 순서가 있는 데이터의 집합으로, 인덱스를 통해 각 요소에 접근할 수 있습니다.주요 특징과 사용법:리스트 생성 및 접근List numbers = [10, 20, 30, 40, 50];print(numbers[0]); // 출력: 10 길이 확인List fruits = ['apple', 'banana', 'cherry'];print(fruits.length); // 출력: 3  값 추가List numbe..

[Flutter 입문 가이드] 크로스 플랫폼 개발의 혁명, Flutter 완벽 이해하기

Flutter는 구글이 개발한 혁신적인 오픈소스 UI 프레임워크로, 단일 코드베이스로 다양한 플랫폼에서 고성능 애플리케이션을 개발할 수 있게 해 줍니다. 이 가이드에서는 Flutter의 핵심 개념과 특징을 상세히 살펴보겠습니다. Flutter의 핵심 특징크로스 플랫폼 개발Flutter의 가장 큰 장점은 하나의 코드로 여러 플랫폼에서 동작하는 앱을 만들 수 있다는 것입니다. 지원되는 플랫폼은 다음과 같습니다:모바일: iOS, Android웹: 모든 주요 브라우저데스크톱: Windows, macOS, Linux이는 개발 시간과 비용을 크게 절감할 수 있게 해줍니다.높은 성능Flutter는 Skia 그래픽 엔진을 사용하여 UI를 직접 렌더링합니다. 이는 WebView를 사용하는 다른 크로스 플랫폼 프레임워크와..

[Dart 완전 정복] 다트 프로그래밍 언어의 핵심 개념과 기초 문법 총정리

다트(Dart)는 구글이 개발한 현대적인 프로그래밍 언어로, 웹, 모바일, 서버 애플리케이션 개발에 사용됩니다. 원래 자바스크립트를 대체하기 위해 만들어졌지만, 웹 환경의 복잡성으로 인해 자바스크립트로 컴파일되는 방식으로 발전했습니다. 다트의 주요 특징객체 지향 프로그래밍: 다트는 클래스 기반의 객체 지향 언어입니다.강력한 타입 시스템: 정적 타입 검사를 지원하면서도 타입 추론을 통해 동적 언어의 편의성을 제공합니다.JIT와 AOT 컴파일: 개발 시에는 JIT(Just-In-Time) 컴파일로 빠른 개발을, 배포 시에는 AOT(Ahead-Of-Time) 컴파일로 높은 성능을 제공합니다.가비지 컬렉션: 자동 메모리 관리를 통해 개발자의 부담을 줄여줍니다.비동기 프로그래밍: async와 await 키워드를 ..

반응형