10๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๋ด ์์ผ๋ก! ๐โโ๏ธ๐โโ๏ธ ์ด๋ก ์ ํ ๋๋ก ๋ฐฐ์ฐ๊ณ , ๋ค์ํ ๊ธฐ๋ฅ ๊ตฌํ๋ฐฉ๋ฒ์ ๋ฐฐ์์.
๊ต๋ณด๋ฌธ๊ณ 2023 ์๋ฐ๊ธฐ ๋ฒ ์คํธ์
๋ฌ ์ ์๊ฐ ์ง์ ๊ฐ๋ฅด์ณ์ฃผ๋ ๊ฐ์
์ปดํจํฐ/IT ๋ถ๋ฌธ 23์ TOP30 ์ด๋ด ์ ์ผํ ์ฑ ๊ฐ๋ฐ ์์
ํ๋ฌํฐ๋ง์ผ๋ก 2022๋
์ํผ๋ฃจํค ๋ฌ์ฑ!
2023๋
์ธํ๋ฐ ๋ฒ ์คํธ ์
๋ฌ!
๋๊ธฐ์
์์๋ ์ฐพ๋ ๊ฐ์! ๋ฆฌ๋ทฐ๊ฐ ์ฆ๋ช
ํ๋ ์ต๊ณ ์ ๊ฐ์ ๋ณด์ฅํด๋๋ฆฝ๋๋ค!
โฐ Flutter ์ด๊ธ ๊ฐ์'s ํ์๋ผ์ธ
2022๋
7์ 18์ผ : Flutter 3.0 ๋ฒ์ 100% ๋์์๋ฃ
2023๋
5์ 10์ผ : Flutter 3.10 ๋ฒ์ 100% ๋์์๋ฃ
2023๋
12์ 4์ผ : ์ต์ ํ๊ฒฝ์ ๋ง์ถฐ ํ๊ฒฝ์ค์ ๊ฐ์ ์ฌ์ดฌ์ ์๋ฃ
2024๋
04์ 22์ผ : ์ต์ ํ๋ฌํฐ ๋ฐ ํ๋ฌ๊ทธ์ธ ๋ฒ์ ๊ธฐ๋ฐ์ผ๋ก ๋ณธ ๊ฐ์์ ๋ฉด ์ฌ์ดฌ์ ์๋ฃ (2024๋
08๋
31์ผ์ ๊ตฌ๋ฒ์ ๊ฐ์๋ ์ญ์ ๋ฉ๋๋ค)
10๊ฐ์ ํ๋ก์ ํธ๋ฅผ ์๊ฐํฉ๋๋ค ๐ฉ
#1 Hello World
Android Studio์ ์นํด์ง๊ณ Flutter๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ UI๋ฅผ ๊ทธ๋ฆฌ๋ ๋ฒ ์์๋ณด๊ธฐ
Text ์์ ฏ ์ฌ์ฉํด๋ณด๊ธฐ
๋ฐฐ๊ฒฝ์๊น ๋ณ๊ฒฝํด๋ณด๊ธฐ
๊ธ์ ์๊น ๋ณ๊ฒฝํด๋ณด๊ธฐ
#2 Splash Screen
๋ชจ๋ ์ฑ์ ์ฒซ ๋ฒ์งธ ํ์ด์ง ์ญํ ์ ํ๋ Splash Screen ๊ฐ๋จ ์ ์
Asset ์ด๋ฏธ์ง ์ฌ์ฉํ๊ธฐ
Circular Progress Indicator ์์ ฏ ์ฌ์ฉํ๊ธฐ
Column ์์ ฏ์ ์ด์ฉํ ์์ ฏ์ ๋ฐฐ์น ์์๋ณด๊ธฐ
#3 ๋ธ๋ก๊ทธ ์น์ฑ
Web View ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํ์กดํ๋ ์น์ฌ์ดํธ๋ฅผ ์ฑ์ผ๋ก ํจํค์ง
์คํ์์ค ํจํค์ง ์ฌ์ฉํ๊ธฐ
ํ๋ซํผ ๋ณ Native ์ธํ
๋ณ๊ฒฝํ๊ธฐ
WebView ์์ ฏ ์ฌ์ฉํ๊ธฐ
Javascript ๊ถํ ์ด์ด์ฃผ๊ธฐ
HTTP ํ๋กํ ์ฝ ์ด์ด์ฃผ๊ธฐ
#4 ์ ์์ก์
๊ฐ๋งํ ๋๋ฉด ์๋์ผ๋ก ๋กค๋ง๋๊ณ ์ง์ ์ค์์ดํ์ด ๊ฐ๋ฅํ ์ ์์ก์ ์ ์
Page View ์์ ฏ ์ฌ์ฉํ๊ธฐ
Timer ํด๋์ค๋ก ์ฃผ๊ธฐ์ ์ผ๋ก ํจ์ ์คํํ๊ธฐ
Stateful Widget ์ค์ ์ ์ฌ์ฉํด๋ณด๊ธฐ
#5 ์ฐ๋ฆฌ ์ฒ์ ๋ง๋ ๋ U&I
์ฐ์ธ๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๋๋ฐ์ด ์ดํ ์ ์
Font ์ ์ฉํ๊ธฐ
Date Picker ์ฌ์ฉํ๊ธฐ
Date Time ํด๋์ค ์ค์ ์ฌ์ฉ
Flutter์์ ํ
๋ง ์ฌ์ฉ๋ฒ
Cupertino Dialog ํ์ฉํ๊ธฐ
#6 ๋๋ค์ซ์ ์์ฑ๊ธฐ
๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค, ์ง์ ํ ์ซ์ ์ดํ์ ๋๋ค ์ซ์ 3๊ฐ๊ฐ ์์ฑ๋๋ ์ดํ ์ ์
๋์ ์์ฑ
๊ฐ๋จํ Navigation ๋ฐ ๋ฐ์ดํฐ ์ก์์
Slider ์์ ฏ ์ฌ์ฉํ๊ธฐ
Functional ํ๋ก๊ทธ๋๋ฐ์ ํ์ฉํ ์์ ฏ ๋ ๋๋ง ๋ฐ ์ฝ๋์ ๋ฆฌ
#7 ๋์์ ํ๋ ์ด์ด
๋์์์ ์ฌ์ํ๋ ์ดํ ์ ์
Stack ์์ ฏ ์ฌ์ฉํ๊ธฐ
Image Picker ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ
Video Player ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํ๊ธฐ
์ฌ์, ์ ์ง, 3์ด ๋ค๋ก ๋๋ฆฌ๊ธฐ, 3์ด ์์ผ๋ก ๋๋ฆฌ๊ธฐ ๋์์ ์ปจํธ๋กค ์ ์ํ๊ธฐ
#8 ์ค๋๋ ์ถ๊ทผ
๊ตฌ๊ธ์ง๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์์น๊ธฐ๋ฐ ์๋น์ค ์ ์
๊ตฌ๊ธ์ง๋ ์ธํ
ํ๊ณ ์ฌ์ฉํ๊ธฐ
์์น์๋น์ค๋ฅผ ์ด์ฉํด์ ๋ด ์์น ์ง๋์ ํ์ํ๊ธฐ
ํน์ ์์น๊ฐ์ ๊ฑฐ๋ฆฌ ๊ตฌํ๊ธฐ
์ง๋์ ๋ง์ปค ํ์ํ๊ธฐ
์ง๋์ ์ ํ์ํ๊ธฐ
ํน์ ์์น๋ก ์นด๋ฉ๋ผ ์ด๋์ํค๊ธฐ
Material Dialog ํ์ฉํ๊ธฐ
Agora API๋ฅผ ์ด์ฉํ ์์ํตํ ์ฑ ์ ์
Agora API๋ฅผ ์ด์ฉํด์ ์์ํตํ ๊ธฐ๋ฅ ์ ์ํ๊ธฐ
Box Shadow ์ฌ์ฉํด๋ณด๊ธฐ
#10 ์บ๋ฆฐ๋ ์ค์ผ์ค๋ฌ
๋ฐ์ดํฐ๋ฅผ ์ฅ๊ธฐ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ ๋ฌ๋ ฅ ์ค์ผ์ค๋ฌ ์ฑ ์ ์
Drift ํจํค์ง๋ฅผ ํ์ฉํ SQ Lite ์ฌ์ฉํ๊ธฐ
๊ฐ๋จํ SQL๋ฌธ ๋ฐฐ์๋ณด๊ธฐ (select, insert, update, delete, join)
Bottom Sheet ํ์ฉํ๊ธฐ
Wrap ์์ ฏ ์ฌ์ฉํ๊ธฐ
Table Calendar ํจํค์ง ์ฌ์ฉํ๊ธฐ
Dismissible ์์ ฏ์ผ๋ก ์ญ์ ์ ๋๋ฉ์ด์
๊ตฌํํ๊ธฐ
Stream์ ํตํด ๋ฐ์ดํฐ์ ๋ณํ ์๋์ผ๋ก ๊ฐ์งํ๊ธฐ
HTTP ํต์ ์ ์ด์ฉํด์ ๋คํธ์ํฌ ์์ฒญํ๋๋ฒ ๋ฐฐ์ฐ๊ธฐ!
Dio ํจํค์ง๋ฅผ ์ด์ฉํ HTTP ์์ฒญ
์ ๋ถ Open API ์ฌ์ฉํด๋ณด๊ธฐ
Hive NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉํ๊ธฐ
์คํ๋ผ์ธ ์ง์ ๋ฐ ์บ์ฑ ๋ง๋ณด๊ธฐ
Drawer ์์ ฏ ์ฌ์ฉํ๊ธฐ
CustomScrollView ์ค์ ์ฌ์ฉ
์ด๋ก ๋ ๋์น ์ ์์ฃ ! โ
Row and Column Flutter์์ ์์ ฏ์ ๋ฐฐ์นํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ์์ ฏ์ธ Row์ Column ์์ ฏ์ ํ๋ผ๋ฏธํฐ์ ๋ํด ํ์ตํฉ๋๋ค.
Date Time Date Time ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์งยท์๊ฐ์ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ณ , Duration์ผ๋ก Date Time์ ์ด๋ป๊ฒ ์กฐ์ํ ์ ์๋์ง๋ ํ์ตํฉ๋๋ค.
Const Constructor Const Constructor๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ฑํ ๋๋ง๋ค ์๊ธฐ๋ ๋
ธ๋ Warning ์ค๋ค์ ์์ ๋ณด๊ณ ์ Const Constructor๋ฅผ ์ฌ์ฉํ๋๊ฒ Flutter ์ฑ ํผํฌ๋จผ์ค์ ์ข์์ง ๋ฐฐ์๋ด
๋๋ค.
Buttons Flutter์์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณตํด์ฃผ๋ Elevated Button, Text Button ๊ทธ๋ฆฌ๊ณ Outlined Button์ ์ฌ์ฉํ๊ณ ๊พธ๋ฏธ๋ ๋ฒ์ ํ์ตํฉ๋๋ค.
Navigation ํ๋ฉด ๊ฐ ์ด๋์ ํ ์ ์๋ Navigation์ ๊ฐ์ข
๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ณ , ํ๋ฉด ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฒ์ ๋ฐฐ์๋๋ค.
Stream Builder์ Future Builder ๋น๋๊ธฐ (async) ์์ฒญ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ํ๋ฉด์ UI๋ฅผ ๊ฒฐ์ ์ง์ ์ ์๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ด๊ณ ์ฌ์ด ๋ฐฉ๋ฒ์ธ Stream Builder์ Future Builder์ ๋ํด ํ์ตํฉ๋๋ค.
Buy vs Build ํน์ ๊ธฐ๋ฅ์ ๋ํด ์ง์ ์ ์ํ๋ ๊ฒ๊ณผ ์ ๋ฃ๋ก ๊ตฌ๋งคํ๋ ๊ฒ ์ค ์ด๋ค ๊ฒ ์ข์์ง ํ๋จํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฐฐ์๋ด
๋๋ค.
Scrollable Widgets Flutter์์ ์คํฌ๋กค์ ๊ฐ๋ฅํ๊ฒํด์ฃผ๋ ์์ ฏ๋ค์๋ํด ๋ฐฐ์๋ด์!
Flutter ํ๋ ์์ํฌ๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ์ฑ์ ์ค์ค๋ก ์ ์ํด๋ณด๊ธฐ ๐
Flutter vs React Native Google Trends
Flutter๋ ๋ฒ์จ ์๋ง์ ๊ธฐ์
๋ค์ด ์ฃผ๋ ฅ์ผ๋ก ์ฌ์ฉํ๊ณ ์๋ ๊ฐ๋ ฅํ ํฌ๋ก์คํ๋ซํผ ํ๋ ์์ํฌ ์ค ํ๋์
๋๋ค. ์ฐจํธ์์๋ ๋ณผ ์ ์๋ฏ, ์ค๋ ์๊ฐ ๋์ ์ต๊ฐ์์๋ React Native์ ์ ์น๊ณ ๊ธ๊ฒฉํ๊ฒ ์ฑ์ฅ ์ค์
๋๋ค.
๋ณธ ๊ฐ์๋ ์ด๋ณด์๋ค์๊ฒ ๊ฐ๋ณ๊ณ ์น๊ทผํ๊ฒ ๋ค๊ฐ๊ฐ ์ ์๋ ํ๋ก์ ํธ๋ค๊ณผ ์ด๋ก ์ ์ ์ ํ ์์ด ํฅ๋ฏธ์ ์ง์์ ๊น์ด๋ฅผ ๋ชจ๋ ์ก์ ์ ์๋๋ก ์ ์๋์์ต๋๋ค. ์ค์ ์ ์ธ ์ํฉ์ ์ค๊ณํ์ฌ, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ์ด ์ง์์ด ์ ์ต๋ํด์ผํ๋์ง ์ด๋๋ฅผ ํตํด ๋์ฑ ๊น์ ์ด๋ก ์ ํ๋ณผ ์ ์๋ ํํ๋ก ๊ตฌ์ฑํ์ต๋๋ค.
์๊ฐํ๊ธฐ๋ฅผ ๋ชจ์์ด์ ๐
๊ฐ๋ฐ ์
๋ฌธ์๋, Flutter ์ด๋ณด๋ ์ด ๊ฐ์๋ฅผ ๋ฃ๊ณ ๋๋ฉด Flutter์ ๋ํ ์์ ๊ฐ์ด ์๊ฒจ์ ํผ์์๋ ๋จ์ํ ์ฑ์ ๊ฐ๋ฐํ๊ณ ์ค์ค๋ก ์ด๊ธ ์ด์์ ์ง์์ ๊นจ์ฐ์น ์ ์๋ ์์ค๊น์ง ๋ค๋ค๋ฅผ ์ ์์ต๋๋ค.๐ญ ์ฝ๋ํฉํ ๋ฆฌ ์ ํ๋ธ ์๋ ๋ง์ ์ปจํ
์ธ ๋ค์ด ์์ต๋๋ค!
์ต๊ณ ์ ์ปค๋ฎค๋์ผ์ด์
๐ง๐ผโ๐ซ
๋งค์ฃผ ์ ํ๋ธ ๋ผ์ด๋ธ๋ฅผ ํตํด ์ง์์๋ต์ ๋ฐ์ผ๋ฉฐ ํ์๋ค๊ณผ ์ํตํฉ๋๋ค!
์ ํ๋ธ ๋ผ์ด๋ธ ํธ์ฌ์๋ฆผ์ ๋ฐ๊ณ ์ถ์ผ์๋ฉด ์๋ ์ฝ๋ํฉํ ๋ฆฌ ์ ํ๋ธ ์ฑ๋์ ๊ตฌ๋
ํด์ฃผ์ธ์!
> ์ฝ๋ํฉํ ๋ฆฌ ์ ํ๋ธ ์ฑ๋ ๋ฐ๋ก๊ฐ๊ธฐ
์ฝ๋ํฉํ ๋ฆฌ ์งํ ์์
Must Have ์ฝ๋ํฉํ ๋ฆฌ์ ํ๋ฌํฐ ํ๋ก๊ทธ๋๋ฐ ์์ ์ ์ ๊ฐ ์ค๋ ๊ธฐ๊ฐ ํฌ์ํด์ ์ง์ ์งํํ ์ฑ
์
๋๋ค! ์ด๊ธ ๊ฐ์์ ๊ณ์น๋ ๋ด์ฉ๋ ์๊ณ ์ด๊ธ๊ฐ์์๋ ์๋ Firebase ๋ฐ ๊ด๊ณ ๋ฑ์๋ํ ๊ฐ์๋ ์์ต๋๋ค! EBook์ด๋ ์ค๋ฌผ ์์ ์ ์ข์ํ์๋ ๋ถ๋ค์๊ฒ ์ถ์ฒ๋๋ฆฝ๋๋ค! ์์ ์ ๊ต๋ณด๋ฌธ๊ณ , Yes24, ์๋ผ๋๋ฑ ๋ฉ์ด์ ์์ ์์ ๋ง๋ ๋ณผ ์ ์์ต๋๋ค! ์๋ ์ด๋ฏธ์ง๋ฅผ ํด๋ฆญํด์ ์ด๋ํด์ฃผ์ธ์!
๊ธฐํ ์ฌํญ โ๏ธ
์์ ์ง๋ฌธ์ ๋ฏธ๋ฆฌ ๋ตํด๋๋ฆฝ๋๋ค ๐ฌ
Q. Flutter๋ฅผ ์ ๋ฐฐ์์ผ ํ๋์?
Flutter๋ ํฌ๋ก์คํ๋ซํผ ์ฑ ๊ฐ๋ฐ ํ๋ ์์ํฌ์์. ์๋๋ iOS์ฑ๊ณผ Android ์ฑ์ ๋ชจ๋ ๋ค๋ฅธ ์ธ์ด์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด์ ๊ฐ๋ฐํด์ผํ๋๋ฐ, Flutter๋ ํ๋์ ์์ค์ฝ๋๋ก ๋๊ฐ์ ํ๋ซํผ์ ๋ชจ๋ ์ถ์ ๊ฐ๋ฅํด์. ๊ทธ๋์ ์ฑ์ ๊ฐ๋ฐํ๋๋ฐ ๋๋ ๊ธ์ ์ ๋น์ฉ๊ณผ ์๊ฐ์ ๋น์ฉ์ ๋ง์ด ์๋ ์ ์์ด์. ์ถ๊ฐ์ ์ผ๋ก Google์ด ์ ์ํ ํ๋ ์์ํฌ์ด๋ฉด์๋ ์์ฆ Google์์ ๋ง์ด ๋ฐ์ด์ฃผ๊ณ ์์ด์ ๋ฏธ๋๊ฐ ๋ ๊ธฐ๋๋๋ ํ๋ ์์ํฌ๋ผ ๋ฐฐ์๋๋ฉด ์ข์์.
Q. React Native๋ Native๋ณด๋ค Flutter๋ฅผ ๋ฐฐ์ฐ๋๊ฒ ๋ฌด์กฐ๊ฑด ์ข๋์?
๋ชจ๋ ํ๋ ์์ํฌ๋ ์ํฉ๊ณผ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฅ๋จ์ ์ด ์๊ธฐ์ ์ด๋ฐ ๋ฅ์ ์ง๋ฌธ์ ๋๋ต์ ํญ์ 'NO'์์. Flutter๋ ํ๋์ ์์ค์ฝ๋๋ก ๋งค์ฐ ๋น ๋ฅด๊ฒ iOS, Android ๋ ํ๋ซํผ์ ๋ชจ๋ ์ฑ์ ์ถ์ํ ์ ์์ง๋ง Native๋ณด๋ค ์์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๋ ๋ง์ด ๋ชจ์๋ผ๊ณ ์์ฑ๋์์ ์ฝ๊ฐ ๋ค์ณ์ ธ์. React Native๋ ์ธ์์์ ๊ฐ์ฅ ๋์ค์ ์ธ ์ธ์ด ์ค ํ๋์ธ Javascript ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฅ์ ์ด ์๊ณ ์๊ธด์ง ์ค๋๋์์ผ๋ ์์ง๊น์ง๋ Flutter๋ณด๋ค ๋์ค์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์์ด์.
Q. ํ๋ก๊ทธ๋๋ฐ์ ํ๋ฒ๋ ๋ฐฐ์๋ณธ ์ ์๋๋ฐ ์๊ฐ ๊ฐ๋ฅํ ๊น์? ๋น์ ๊ณต์์ธ๋ฐ๋ ๊ด์ฐฎ์๊น์?
์ ์ ํ๋ธ ์์์ผ๋ก ์์ ์ฒซ ํ๋ก๊ทธ๋๋ฐ์ ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ ๋ถ๋ค์ด ๋ง์ต๋๋ค. Flutter๊ฐ ์๋๋๋ผ๋ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ์ ์
๋ฌธ์์๊ฒ ์๋นํ ์ง์
์ฅ๋ฒฝ์ด ์กด์ฌํ์ง๋ง, ์ด ๊ฐ์์์ ์ ๋ ๊ทธ ์ง์
์ฅ๋ฒฝ์ ์ต๋ํ ๋ฎ์ถ๊ธฐ ์ํด ๋ง์ด ๋
ธ๋ ฅํ์ด์. ์ฐ์ ๋ฌด๋ฃ๋ก ๊ณต๊ฐํด๋ Dart ์ธ์ด ๊ฐ์๋ฅผ ๋จผ์ ๋ด๋ณด๊ณ ๋์ด๋๊ฐ ์ด๋ค์ง ํ์ธํด๋ณด์๊ณ , ์ด๋ ต๋ค๋ฉด ์ฝ๋ํฉํ ๋ฆฌ ๊ณต์ ์ปค๋ฎค๋ํฐ์์ ๋์์ ๋ฐ์ผ์ธ์.
๐ญ ์ฝ๋ํฉํ ๋ฆฌ ์ ํ๋ธ ๐ฅ ์ฝ๋ํฉํ ๋ฆฌ Discord ๐ฌ ์ฝ๋ํฉํ ๋ฆฌ ์นด์นด์ค ์คํํก
Flutter ๊ฐ์๋ฅผ ๊ตฌ๋งคํ์๋ฉด ์ฝ๋ํฉํ ๋ฆฌ ๋์ค์ฝ๋ ์๋ฒ ํ๋ฌํฐ ํ๋ฆฌ๋ฏธ์ ์ฑ๋์ ๋ค์ด์ค์ค ์ ์์ต๋๋ค! ๋์ค์ฝ๋ ์๋ฒ์ ๋ค์ด์ค์๊ณ ์ ์๊ฒ ๋ฉ์ธ์ง๋ก ๊ฐ์๋ฅผ ๊ตฌ๋งคํ์ ์ด๋ฉ์ผ์ ๋ณด๋ด์ฃผ์๋ฉด ํ๋ฆฌ๋ฏธ์ ์ฑ๋์ ๋ฑ๋กํด๋๋ ค์! ํ๋ฆฌ๋ฏธ์ ์ฑ๋์ ๋ค์ด์ค์๋ฉด ๋ชจ๋ ์ง์์๋ต ์ฐ์ ์ผ๋ก ๋ต๋ณํด๋๋ฆฝ๋๋ค!
Q. ์ ์์ด ์๋ฃ๋ ๊ฐ์์ธ๊ฐ์?
ํ์ฌ๋ ์ด๋ณดํ์ถ ๋ชฉ์ ์ ๋ถํฉํ ๊ฐ์ ๊ตฌ์ฑ์ด์์. Flutter๋ ์ด๊ธ, ์ค๊ธ, ๊ณ ๊ธ ์ธ๊ฐ์ ๋์ด๋๋ก ๋๋์ด์ ๊ฐ์๋ฅผ ์ ์ํ ๊ณํ์ธ๋ฐ UI, ๊ฐ๋จํ ์ธ๊ธฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ๋ฒ ๋ฑ์ ๋ชจ๋ ๊ฐ์์ธ ์ด๊ธ ๊ฐ์์ ์ถ๊ฐ๋ ์์ ์ด์์. ์ฌ๋ฌ๋ถ๋ค๊ป ์ ๋ฌํด์ฃผ๊ณ ์ถ์ ์ง์์ด ์์ง ๋ง์ด ๋จ์์์ผ๋ ๊ธฐ๋ํด์ฃผ์ธ์!
Q. ์ ํ ๋งฅ์ด ์์ด์ผ ํ๋์?
Windows ์ปดํจํฐ๋ก๋ ๊ฐ์๋ฅผ ๋ฐ๋ผ์ฌ ์ ์์ง๋ง iOS ์ฑ ๋น๋๋ ๋ถ๊ฐ๋ฅํด์. ๊ทธ ์ด์ ๋ ์ ํ์ด iOS ์ฑ์ ์ ํ์ ์ด์์ฒด์ ์ธ ๋งฅ์์๋ง ๋น๋๊ฐ ๋๋๋ก ์ค๊ณํ๊ธฐ ๋๋ฌธ์ด์์. Flutter๋ ํ๋ซํผ ๊ฐ ์ผ๊ดํ๊ฐ ๋งค์ฐ ์ ๋์ด์์ด์ Windows ์ปดํจํฐ๋ก ์๋๋ก์ด๋ ํ๋ฉด์ ๋ณด๋ฉฐ ์ฝ๋ฉ์ ํด๋ ๋์ค์ ๋๊ฐ์ ์ฝ๋๋ฅผ iOS์์ ๋น๋ํ์๋ ๊ฐ์ ์ฑ์ด ๋์จ๋ค ์๊ฐํ์
๋ ๋ฌด๋ฐฉํด์. ๋ฐฐํฌ๋ฅผ ํ๊ณ ์ถ๋ค๋ฉด ์ค๊ณ ๋ก Flutter์ ํธํ๋๋ ์๋ ๋งฅ๋ถ์ด๋ผ๋ ๊ตฌ๋งคํ์๋๊ฑธ ์ถ์ฒ๋๋ ค์.
Q. ์ปดํจํฐ ์คํ์ ์ข์์ผํ๋์?
์๋ฌด๋๋ ์๋ฎฌ๋ ์ดํฐ/์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋๋ฆฌ๋ฉด ๊ฐ๋ฐ์ด ํธํ๊ธฐ ๋๋ฌธ์ ์ปดํจํฐ ์คํ์ด ๋๋ฌด ๋ฎ์ผ๋ฉด ์คํ์ด ๋๋ฆด ์ ์์ด์. ๋ง์ฝ์ ์ปดํจํฐ ์คํ์ด ๋ฎ์ผ๋ฉด ์ค์ ๊ธฐ๊ธฐ๋ฅผ ์ฌ์ฉํด์ ์ฝ๋ฉํ์๋ ๊ฑธ ์ถ์ฒ๋๋ ค์! ํ์ ์คํ์ ๋งค๋ฒ ๋ฐ๋ ์ ์์ผ๋ ๋งํฌ๋ก ๋จ๊ฒจ๋๋ฆด๊ฒ์. windows ์๊ตฌ ์คํ / Mac ์๊ตฌ ์คํ / Linux ์๊ตฌ ์คํ
Q. Flutter ์ค์น๊ฐ ์๋ผ์.
์ข์ ๊ฐ๋ฐ์๊ฐ ๋๋ ค๋ฉด ๊ณ ๋ฆฝ๋์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฅ๋ ฅ๋ ๋งค์ฐ ์ค์ํ๊ธฐ์, ์ด์ฌํ ํด๋ณด๊ณ ๋์ ํ ์๋๊ฒ ์ผ๋ฉด ๐ฌ ์ฝ๋ํฉํ ๋ฆฌ ์นด์นด์ค ์คํํก ์ผ๋ก ๋ฌธ์์ฃผ์ธ์!
Q. ์์์ ๋ฌธ์ ๊ฐ ์์ด์.
์์ ์ฌ์๊ณผ ์ธํฐ๋ท ํต์ ์ ๊ด๋ จ๋ ๋ฌธ์๋ ์ธํ๋ฐ์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค. ๊ทธ ์ธ ์์์ ์์๊ฐ ์๋ชป๋๊ฑฐ๋, ํธ์ง์ด ์ํด๋ฌ์ ์ดํดํ๊ธฐ ์ด๋ ค์ด ๋ถ๋ถ์ด ์๋ค๋ฉด ๋ฐ๋ก ์คํํก์ผ๋ก ๋ฌธ์์ฃผ์ธ์. ์ ๋์ 1์์๋ก ๊ฐ์ ํด์ ์๋ก ์
๋ก๋๋ฅผ ์งํํ๋๋ก ํ ๊ฒ์! ์ ๋ ์ฌ๋ฌ ๋ฒ ํ์ธ์ ํ์ง๋ง ๋๋ฌด ๋ง์ ์์์ ๊ด๋ฆฌํ๋ค๋ณด๋ ์ฐฉ์ค๊ฐ ์์ ์ ์์ด์.
Q. ์์
๋ด์ฉ์ ์ด๋ ์ ๋ ์์ค๊น์ง ๋ค๋ฃจ๋์?
Flutter์์ UI๋ฅผ ๋ง๋ค์ด๋ด๋๋ฐ ํ์ํ ์ง์๋ค์ ๋ชจ๋ ๋ด์ผ๋ ค๊ณ ๋
ธ๋ ฅํ์ด์. ์ถ๊ฐ์ ์ผ๋ก ๊ฐ๋จํ ํ๋ก ํธ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ, ๋คํธ์ํฌ ์์ฒญ, ๊ธฐ๋ณธ์ ์ธ ์ํ๊ด๋ฆฌ ๋ฑ๋ ํฌํจํ ๊ณํ์ด์์.
ํ์ฌ ์ถ๊ฐ ์์ ์ธ ๋ด์ฉ๋ค
HTTP ์์ฒญ ๊ด๋ จ ๊ฐ์ (Dio์ Retrofit ์ฌ์ฉํ๊ธฐ)
Hive๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ๊ด๋ฆฌ ๋ฐ ๊ฐ๋จํ ์บ์ฑ
Provider๋ฅผ ์ด์ฉํ ๊ฐ๋จํ ์ํ๊ด๋ฆฌ
Provider ํจํค์ง ์ธ ์ธ๊ธฐ ์ํ๊ด๋ฆฌ ํจํค์ง๋ค์ ์ค๊ธ ๊ฐ์์์ ๋ค๋ฃฐ ์์ ์ด์์! (BloC, GetX๋ฑ) ๊ทธ ์ธ, ์ ๊ฐ ์ ์ํ์ผ๋ฉด ํ๋ ์ง์ยท๊ธฐ์ ์ด ์๋ค๋ฉด ์ ์ ์ํตํ ์ ์๋ ์ฌ๋ฌ ์ฑ๋์ ํตํด ์ ๋ฌํด์ฃผ์ธ์. ์ ๊ทน์ ์ผ๋ก ๊ณ ๋ คํ ๊ฒ์!
Q. Play Store, App Store์ ์ฑ์ ์ถ์ํ๋ ๋ฒ์ ๋ํ ๊ฐ์๋ ์๋์?
์ด๋ณด ๊ฐ์์ ์ถ๊ฐํ ์์ ์
๋๋ค. ๊ฐ์๊ฐ ๋์ค๊ธฐ์ ์ ์ถ์๋ฅผ ๋จผ์ ํด๋ณด๊ณ ์ถ์ผ์๋ฉด Flutter ๊ณต์ ํํ์ด์ง์ ๊ฐ์ด๋๋ฅผ ํ์ธํด์ฃผ์ธ์. ์๋๋ก์ด๋ ์ฑ ์ถ์ํ๊ธฐ / iOS ์ฑ ์ถ์ํ๊ธฐ
๊ธฐํ ์ฌํญ โ๏ธ
(1) ๋์๋ฐ๊ณ ๋ฐฐ์ธ ์ ์๋ ๋ค๋ฅธ ์ฑ๋๋ค!
๐ญ ์ฝ๋ํฉํ ๋ฆฌ ์ ํ๋ธ ๐ฅ ์ฝ๋ํฉํ ๋ฆฌ Discord ๐ฌ ์ฝ๋ํฉํ ๋ฆฌ ์นด์นด์ค ์คํํก
(2) ๊ฐ์์ฉ์ผ๋ก ๊ณต์ ๋๋ ์ด๋ฏธ์ง
๊ฐ์์์ ์ ๊ฐ ์ ๊ณตํด๋๋ฆฌ๋ ์ด๋ฏธ์ง๋ค์ ์ ๋ฃ๋ก ์ง์ ๊ตฌ๋งคํ ์ด๋ฏธ์ง๋ค์ด์์. ์ ๋ ์ฐฝ์๋ฌผ์ ๋ง๋ค์ด ๋ฐฐํฌํด๋๋ฆด ์ ์๋ ๊ถ๋ฆฌ๋ฅผ ๊ตฌ๋งคํ์ง๋ง ์ฌ๋ฌ๋ถ๋ค์ ์ ๋๋ก ๋ค๋ฅธ ์ฌ๋ ๋๋ ์ธํฐ๋ท์ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐํฌํ์๋ฉด ์๋ผ์! ์ ์๊ถ ์๋ฐ์ผ๋ก ๋ฒ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์ผ๋ ๊ณต๋ถํ๋ ์ฉ๋ ์ธ๋ก ์ด๋ฏธ์ง๋ค์ ์ฌ์ฉํ์ง ๋ง์ธ์.
(3) ์ง๋ฌธํ๋ ๋ฒ
ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ฉด์ ์ ๋ง ๋น ๋ฅด๊ฒ ์ค๋ ฅ์ ๋๋ฆด ์ ์๋ ๋ฒ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ํํ ์ง๋ฌธ์ ํ๋ ๋ฒ์ ๊นจ์ฐ์น๋๊ฑฐ์์. ํ๋ก๊ทธ๋๋ฐ์ ํน์ฑ์ ์ฝ๋์ ์ ์ฒด๋ฅผ ๋ค ๋ด์ฃผ๊ธฐ ์ด๋ ค์์. ๊ทธ๋ฌ๋ ๋ฌธ์ ๊ฐ ๋๋ ์์ ฏ์ ์ฝ๋๋ฅผ ํต์งธ๋ก ์ฌ๋ฆฐ ํ "์ด๊ฑฐ ์๋ผ์!" ํ์๋ฉด ์ ๊ฐ ๋ต๋ณ์ ํด๋๋ฆฌ๊ธฐ ์ด๋ ค์์. ์ง๋ฌธ์ ํ์ค ๋๋, ๋ฐ์ 3๋จ๊ณ๋ก ์ ์ ๋ฆฌํด์ ์ ๋ฌํด์ฃผ์๋ฉด ํจ์ฌ ๋น ๋ฅด๊ฒ ์ํตํ๊ณ ๋ต๋ณ์ ๋๋ฆด ์ ์์ด์! 1๏ธโฃ ๋ด๊ฐ ์๊ฐํ์๋ ์ด๋ค ์์ผ๋ก ์๋์ด ๋์ด์ผ ํ๋์ง 2๏ธโฃ ํ์ฌ ์ด๋ป๊ฒ ์๋๋๋์ง 3๏ธโฃ ์ ํํ ์ฝ๋์ ์์น์ ์ด๋ค ๋ฌธ์ ๊ฐ ์๊ธฐ๋์ง (์์ ๊น์ง ์์ผ๋ฉด๐)
(4) ์ถ๊ฐ ํ์ ๋ ๊ฐ์
์ ๋ถ API๋ฅผ ์ด์ฉํ ๋ฏธ์ธ๋จผ์ง ์ธก์ ์ฑ (์๋ฃ)
Provider ํจํค์ง๋ฅผ ์ด์ฉํ ์ํ๊ด๋ฆฌ (์ฝ๋ํฉํ ๋ฆฌ ์ค๊ธ๊ฐ์ Riverpod ์ฐธ๊ณ [Provider 100% ํธํ])
Hive ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉํ๊ธฐ (์๋ฃ)
์ง์๊ณต์ ์๋ฅผ ์๊ฐํฉ๋๋ค โ๏ธ
์คํ๋ผ์ธ ๊ฐ์ ๊ฒฝํ
๋ฐ๋ฆฌ์์์ฌ ๊ฐ๋ฐ์๋์ Flutter ๊ต์ก ๊ฐ์ฌ
์์ธ๋์งํ
๊ณ ๋ฑํ๊ต Flutter ํน๊ฐ ๊ฐ์ฌ