(퍼옴)
프로젝트를 만들기 앞서 플러터 폴더를 위치 하기 위한 폴더 구조를 어떻게 관리해야할지 찾아보다가 퍼왔습니다
.
Flutter File Structure
Keeping your code organized is absolutely essential for bigger projects. Even for smaller projects, I believe it’s good to keep things…
itnext.io
유투브 설명
Root Directory of App (루트 디렉토리)
Folder | 설명 |
assets | 대부분의 앱에서 반드시 사용, 로고나 사용자 지정 아이콘 및 앱 전체에서 사용되는 정적 이미지와 같은 항목, pubspec.yaml 에 등록 |
fonts | custom font 파일들 |
functions | Firebase Cloud Functions를 위해 사용했다고 함, 외부 function 사용 시 사용하는 곳(?) |
루트 디렉터리에는Assets, Fonts, Fuction 같은 세 개의 폴더가 있습니다. 이는 프로젝트 생성 시 만들어지는 기본 폴더가 아닙니다. 플러터에서 제공하는 기본 글꼴(Roboto)을 사용하려는 경우에는 Fonts 폴더가 필요하지 않습니다.
Assets 폴더는 거의 대부분의 앱에서 반드시 사용해야 합니다. Assets 폴더에는 로고나 사용자 지정 아이콘 및 앱 전체에서 사용되는 정적 이미지와 같은 항목이 포함되어야 합니다. 일단 이러한 요소들이 Assets 폴더에 저장되면, pubspec.yaml에 등록해주세요.
개인적으로 Firebase Cloud Functions에만 사용했던 Functions 폴더입니다. Firebase가 아닌 다른 데이터베이스를 사용하는 경우 별도의 설정이 필요할 수 있습니다. 저는 주로 Firebase를 사용하기 때문에 해당 함수는 모두 Functions폴더에 저장되어 있습니다. 그래서 실제 앱을 구동하는 코드와 구분할 수 있습니다.
Lib Directory (lib 디렉토리)
lib dirctory | 설명 |
models | Collections of data. 앱에서 사용되는 데이터들 |
screens | Screens of the app. 앱에서 보여지는 화면 |
services | Interactions outside of app. 외부에서 인터페이스 하는 모든 용도로 사용 |
utils | Functions used throughout the app. 앱 전체에서 사용되는 모든 기능. ex) validation, time, image capture, theme, etc |
widgets | Widgets used throughout app. 앱 전체에서 사용하는 위젯들을 여기에 배치, 같은 코드를 사용하는 화면이 여러 개일 경우 "widgets" 폴더에 넣는 것이 좋음. ex) appbar, posts, textfields |
main.dart | 여기서 main.dart는 navigation 역할을 함. |
코드의 주요한 골자를 포함하는 lib 디렉터리에서는 models, screens, service, utils, widgets 폴더로 나눌 수 있습니다.
models 폴더는 앱 전체에서 사용되는 데이터들을 저장하는 데 사용됩니다. 만약 여러분이 다른 언어를 사용해 본 적이 있다면, global 구조로 생각할 수 있습니다. 저의 경우에는 models폴더에 사용자 데이터나 우편 정보 등을 저장했습니다.
screens 폴더는 보이는 그 자체를 의미합니다. 앱의 모든 화면에는 고유한 화면을 표현하는 코드가 있어야 합니다. 간단한 화면인 경우 해당 폴더 안에 하나의 파일만 있으면 됩니다. 좀 더 복잡한 화면이라면 더 큰 위젯에 사용할 local_widgets 폴더도 포함시켜 코드를 깔끔하게 유지할 수 있습니다.
모든 화면(위젯으로 이해해도 좋을듯합니다)은 각각의 로컬 위젯 폴더에 위치해 있으므로 앱 전체에서 사용되는 위젯이 있으면 "widgets" 폴더에 배치합니다. 저는 코드의 중복은 좋지 않은 구조라 생각합니다. 따라서 같은 코드를 사용하는 화면이 여러 개일 경우 "widgets" 폴더에 넣는 것이 좋습니다.
그리고 UI를 그려주는 코드(widget)를 다시 쓰는 것을 좋아하지 않는 것처럼 어떤 기능을 포함하는 코드(비즈니스 로직)도 다시 쓰는 것을 좋아하지 않습니다. 따라서 앱 전체에서 사용되는 모든 기능은 "utils" 폴더에 저장합니다. 여기에 넣은 예로는 검증에 대한 폼, 시간과 관련한 함수, 이미지 캡처 로직 등이 있습니다.
그리고 마지막으로 마지막 폴더는 service입니다. 이 폴더는 응용 프로그램의 외부에서 인터페이스 하는 모든 용도로 사용됩니다. 저는 주로 파이어베이스에 사용했어요. 하지만 당신이 특정 API를 사용하신다면 service폴더에 저장하는것이 좋습니다.
'개발 > FLUTTER' 카테고리의 다른 글
Flutter Sample 1. 메인화면 구현으로 보는 앱바, 탭(AppBar, Tab) (0) | 2022.11.27 |
---|---|
Flutter로 무엇을 만들건가요? (0) | 2022.11.20 |
시작하기_02. 안드로이드 스튜디오에서 Flutter 기본 앱 만들어보기 (0) | 2022.11.17 |
시작하기_01. 윈도우에서 Flutter 설치하기 (0) | 2022.11.14 |
Flutter 를 시작하게 된 이유 (0) | 2022.11.13 |