Flutter Template 종류

Application 어플리케이션

: 일반적으로 플러터 어플 만들 때 사용

  • 기본적으로 comments(주석)과 test가 적혀있음
  • 폴더구조: android, build, ios, lib, macos, test, web, windows
    : native setting이 필요하다면 각 native folder에서 수정
    : 코드 작업은 주로 lib 에서 진행
  • fully(충분한) 기능을 갖춰 그 자체만으로 동작 하는 Flutter Application

Module 모듈

: 기존 Anroid 또는 iOS로 개발 되어있는 앱에 플러터 뷰나 기능을 넣고 싶을 때 사용

  • 플러터로 구현 된 모듈을 각 플랫폼(Android, iOS ..)에 배포해 사용할 수 있음
  • 폴더 구조: .android, .ios, lib, test
  • 모듈 뜻: 기능을 독립적인 부품으로 분리 되어 사용
    (앱에서 사용하려는 fuction set)
  • 보통 사용처 상황 예시:
    • 클라이언트 개발사에서 native로 개발 중이고 현재 회사가 Flutter로 서비스를 운영 중인데 자사 서비스 기능 중 하나를 클라이언트 native 개발에 붙여달라고 요청이 들어왔을 때
    • 규모가 큰 native개발을 flutter로 변환하는 작업 도중 기능 별로 flutter 변환 작업이 문제없이 돌아가는 걸 확인할 때

참고.


Package 패키지

: 모듈식 다트 코드를 포함하는 공유 가능한 flutter project

  • native function과는 관련 없음, dart 코드만을 사용하여 작성
  • 패키지를 사용하면 쉽게 공유할 수 있는 모듈식 코드를 만들 수 있음
  • 폴더 구조: lib, test

참고.


Plugin 플러그인

: Android, iOS에 대한 플랫폼별 구현과 Dart Code로 작성된 API를 포함된 공유 가능한 flutter project


참고.


Skeleton 스켈레톤

: 일반적으로 플러터 어플 만들 때 사용2
application으로 만들면 카운터 앱이 기본으로 뜨지만 스켈레톤으로 만들면 더 복잡한 리스트 페이지가 예제로 기본으로 만들어짐
(다크모드와 라우팅, 상태관리도 포함되어있음)

  • Flutter 2.5 이상 버전에서 생성됨
  • 폴더 구조: 어플리케이션과 동일



package vs plugin

간단 요약 시,
패키지(package)는 다트 코드만을 사용
플러그인(plugin)은 다트 코드와 플랫폼 구현 까지 포함

package types

  • Dart package
    : dart로 작성된 일반 패키지
    (ex. 'path' package)
  • Plugin package
    : 하나 이상의 플랫폼 구현과 결합된 Dart 코드로 작성된 API를 포함하는 특수 패키지
    (ex. url_launcher package)
  • FFI Plugin packages
    : Dart FFI(Android, iOS, macOS)를 사용하는 하나 이상의 플랫폼별 구현과 결합된 Dart 코드로 작성된 API를 포함하는 특수 Dart 패키지
    (dart:ffi 라이브러리를 각 플랫폼에서 어떻게 사용하는지는 공식문서에 기입되어있음 -> Android, iOS)

    FFI?
    :Foreign Function Interface
    프로그래밍 언어에서 다른 프로그래밍 언어 코드를 호출하기 위한 인터페이스 뜻함

    • A 언어로는 불가능한 일이 B언어로는 가능한 경우
    • A 언어로는 비효율적인 일이 B언어로는 효율적인 경우
    • B로 쓰여진 코드가 이미 제공하는 기능을 A로 번역없이 그대로 사용하고 싶은 경우

    A언어에서 FFI를 통해 B의 코드를 이용할 수 있다.

profile
𝙸 𝚊𝚖 𝚊 𝚌𝚞𝚛𝚒𝚘𝚞𝚜 𝚍𝚎𝚟𝚎𝚕𝚘𝚙𝚎𝚛 𝚠𝚑𝚘 𝚎𝚗𝚓𝚘𝚢𝚜 𝚍𝚎𝚏𝚒𝚗𝚒𝚗𝚐 𝚊 𝚙𝚛𝚘𝚋𝚕𝚎𝚖. 🇰🇷👩🏻‍💻

0개의 댓글