Google์ Dart 2.15 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์๋ฅผ ๋ฐํํ์ต๋๋ค. ์ด ์ธ์ด๋ ๊ฐ๋ ฅํ ์ ์ ํ์ดํ์ ์ฌ์ฉํ์ฌ Dart ์ธ์ด์ ์๋ ๋ฒ์ ๊ณผ ๋ค๋ฅธ ๊ทผ๋ณธ์ ์ผ๋ก ์ฌ์ค๊ณ๋ Dart 2 ๋ถ๊ธฐ์ ๊ฐ๋ฐ์ ๊ณ์ํ๊ณ ์์ต๋๋ค(์ ํ์ ์๋์ผ๋ก ์ถ๋ก ๋ ์ ์์ผ๋ฏ๋ก ์ ํ์ ์ง์ ํ ํ์๋ ์์ง๋ง ๋์ ์ ํ ์ง์ ์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ์ฒ์์ ์ ํ์ด ๋ณ์์ ํ ๋น๋๊ณ ์ดํ์ ์๊ฒฉํ ์ ํ ๊ฒ์ฌ๊ฐ ์ ์ฉ๋ฉ๋๋ค.
Dart ์ธ์ด์ ํน์ง:
- JavaScript, C ๋ฐ Java ํ๋ก๊ทธ๋๋จธ์๊ฒ ์์ฐ์ค๋ฌ์ด ์น์ํ๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฌ์ด ๊ตฌ๋ฌธ์ ๋๋ค.
- ํด๋์ฉ ์ฅ์น๋ถํฐ ๊ฐ๋ ฅํ ์๋ฒ๊น์ง ๋ชจ๋ ์ต์ ์น ๋ธ๋ผ์ฐ์ ์ ๋ค์ํ ์ ํ์ ํ๊ฒฝ์ ๋ํ ๋น ๋ฅธ ์คํ๊ณผ ๊ณ ์ฑ๋ฅ์ ๋ณด์ฅํฉ๋๋ค.
- ๊ธฐ์กด ๋ฉ์๋ ๋ฐ ๋ฐ์ดํฐ์ ์บก์ํ ๋ฐ ์ฌ์ฌ์ฉ์ ํ์ฉํ๋ ํด๋์ค ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ ๊ธฐ๋ฅ.
- ์ ํ์ ์ง์ ํ๋ฉด ์ค๋ฅ ๋๋ฒ๊น ๋ฐ ์๋ณ์ด ๋ ์ฌ์์ง๊ณ , ์ฝ๋๊ฐ ๋ ๋ช ํํด์ง๊ณ ์ฝ๊ธฐ ์ฌ์์ง๋ฉฐ, ํ์ฌ ๊ฐ๋ฐ์์ ์์ ๋ฐ ๋ถ์์ด ๋จ์ํ๋ฉ๋๋ค.
- ์ง์๋๋ ์ ํ์๋ ๋ค์ํ ์ ํ์ ํด์, ๋ฐฐ์ด ๋ฐ ๋ชฉ๋ก, ๋๊ธฐ์ด, ์ซ์ ๋ฐ ๋ฌธ์์ด ์ ํ, ๋ ์ง ๋ฐ ์๊ฐ ๊ฒฐ์ ์ ํ, ์ ๊ท์(RegExp)์ด ํฌํจ๋ฉ๋๋ค. ์์ ๋ง์ ์ ํ์ ๋ง๋๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๋ณ๋ ฌ ์คํ์ ๊ตฌ์ฑํ๋ ค๋ฉด isolate ์์ฑ์ด ์๋ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ํด๋์ค์ ์ฝ๋๋ ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์๋ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ์์ ํ ์คํ๋๋ฉฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ด ๊ธฐ๋ณธ ํ๋ก์ธ์ค์ ์ํธ ์์ฉํฉ๋๋ค.
- ๋๊ท๋ชจ ์น ํ๋ก์ ํธ์ ์ง์ ๋ฐ ๋๋ฒ๊น ์ ๋จ์ํํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ ์ง์ํฉ๋๋ค. ์ XNUMX์ ๊ธฐ๋ฅ ๊ตฌํ์ด ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ํฌํจ๋ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๋ถ๋ถ์ผ๋ก ๋๋์ด ๊ฐ ๋ถ๋ถ์ ๊ฐ๋ฐ์ ๋ณ๋์ ํ๋ก๊ทธ๋๋จธ ํ์ ๋งก๊ธธ ์ ์์ต๋๋ค.
- ์ฆ์ ์ฝ๋ ์์ ("ํธ์ง ๋ฐ ๊ณ์")์ด ๊ฐ๋ฅํ ๋์ ๊ฐ๋ฐ ๋ฐ ๋๋ฒ๊น ๋๊ตฌ์ ๊ตฌํ์ ํฌํจํ์ฌ Dart ์ธ์ด ๊ฐ๋ฐ์ ์ง์ํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ๋๊ตฌ ์ธํธ์ ๋๋ค.
- Dart ์ธ์ด๋ก ๊ฐ๋ฐ์ ๋จ์ํํ๊ธฐ ์ํด SDK, ํจํค์ง ๊ด๋ฆฌ์ pub, ์ ์ ์ฝ๋ ๋ถ์๊ธฐ dart_analyzer, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ, ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ DartPad ๋ฐ IntelliJ IDEA, WebStorm, Emacs, Sublime Text์ฉ Dart ์ง์ ํ๋ฌ๊ทธ์ธ์ด ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. 2์ ๋น.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ํธ๋ฆฌํฐ๊ฐ ํฌํจ๋ ์ถ๊ฐ ํจํค์ง๋ ์ฝ 22๊ฐ์ ํจํค์ง๊ฐ ์๋ pub ์ ์ฅ์๋ฅผ ํตํด ๋ฐฐํฌ๋ฉ๋๋ค.
Dart 2.15 ๋ฆด๋ฆฌ์ค์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
- ํธ๋ค๋ฌ๋ฅผ ๊ฒฉ๋ฆฌํ์ฌ ์์
์ ๋น ๋ฅด๊ฒ ๋ณ๋ ฌ๋ก ์คํํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฉํฐ ์ฝ์ด ์์คํ
์์ Dart ๋ฐํ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ CPU ์ฝ์ด์์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ฅผ ์คํํ๊ณ ๋ค๋ฅธ ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ I/O, ํ์ผ ์ฐ๊ธฐ ๋๋ ๋คํธ์ํฌ ํธ์ถ๊ณผ ๊ฐ์ ์์คํ
์์
์ ์ํํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ธํฐํ์ด์ค์์ ์ ๋๋ฉ์ด์
์ ๋ ๋๋งํ๊ธฐ ์ํด ํธ๋ค๋ฌ๋ฅผ ๋ณ๋ ฌ๋ก ์คํํด์ผ ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฒฝ์ฐ ๋ณ๋์ ์ฝ๋ ๋ธ๋ก์ ์์(๊ฒฉ๋ฆฌ)ํ๊ณ ์๋ก ๊ฒฉ๋ฆฌ๋์ด ๊ธฐ๋ณธ ์ ํ๋ฆฌ์ผ์ด์
์ค๋ ๋์ ๋์์ ๋ค๋ฅธ CPU ์ฝ์ด์์ ์คํ๋ ์ ์์ต๋๋ค. . ๋์ผํ ๋ฐ์ดํฐ ์ธํธ๋ก ์์
ํ๋ ์ฝ๋๋ฅผ ๋์์ ์คํํ ๋ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์๋ก ๋ค๋ฅธ ๊ฒฉ๋ฆฌ ๋ธ๋ก์์ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ๊ธ์ง๋๋ฉฐ ํธ๋ค๋ฌ ๊ฐ์ ์ํธ ์์ฉ์๋ ๋ฉ์์ง ์ ๋ฌ ๋ชจ๋ธ์ด ์ฌ์ฉ๋ฉ๋๋ค.
Dart 2.15์๋ ์๋ก์ด ๊ฐ๋ ์ธ ๊ฒฉ๋ฆฌ๋ ๋ธ๋ก ๊ทธ๋ฃน(๊ฒฉ๋ฆฌ ๊ทธ๋ฃน)์ด ๋์ ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋์ผํ ๊ทธ๋ฃน์ ์ผ๋ถ์ธ ๊ฒฉ๋ฆฌ ๋ธ๋ก์์ ๋ค์ํ ๋ด๋ถ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ๊ณต์ ์ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, ์ด๋ ๊ทธ๋ฃน์ ํธ๋ค๋ฌ ๊ฐ์ ์ํธ ์์ฉํ ๋ ์ค๋ฒํค๋๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. . ์๋ฅผ ๋ค์ด, ๊ธฐ์กด ๊ทธ๋ฃน์์ ์ถ๊ฐ ๊ฒฉ๋ฆฌ ๋ธ๋ก์ ์์ํ๋ ๊ฒ์ ํ๋ก๊ทธ๋จ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ด๊ธฐํํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ๊ฒฉ๋ฆฌ ๋ธ๋ก์ ์์ํ๋ ๊ฒ๋ณด๋ค 100๋ฐฐ ๋ ๋น ๋ฅด๋ฉฐ 10-100๋ฐฐ ๋ ์ ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
๊ทธ๋ฃน์ ๊ฒฉ๋ฆฌ ๋ธ๋ก์ ์ฌ์ ํ โโ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๊ฐ์ฒด์ ๋ํ ๊ณต์ ์ก์ธ์ค๋ฅผ ๊ธ์งํ๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ๊ทธ๋ฃน์ ๊ณต์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ ๋ณต์ฌ ์์ ์ ์ํํ ํ์ ์์ด ํ ๋ธ๋ก์์ ๋ค๋ฅธ ๋ธ๋ก์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ ์กํ๋ ์๋๋ฅผ ํฌ๊ฒ ๋์ผ ์ ์์ต๋๋ค. ๋ํ ์ ๋ฒ์ ์์๋ ๋ณต์ฌ ์์ ์์ด ์์ ๊ฒฉ๋ฆฌ ๋ธ๋ก์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด Isolate.exit()๋ฅผ ํธ์ถํ ๋ ํธ๋ค๋ฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ํ ๋ฉ์์ง ์ ์ก ๋ฉ์ปค๋์ฆ์ด ์ต์ ํ๋์์ต๋๋ค. ์ด์ ์ํ ๋ฐ ์คํ ๋ฉ์์ง๊ฐ ์ฝ 8๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค. SendPort.send() ํธ์ถ์ ์ฌ์ฉํ์ฌ ๊ฒฉ๋ฆฌ ๊ฐ์ ์ ๋ฌํ ์ ์๋ ๊ฐ์ฒด์๋ ๋ช ๊ฐ์ง ์ ํ์ ํจ์, ํด๋ก์ ๋ฐ ์คํ ์ถ์ ์ด ํฌํจ๋ฉ๋๋ค.
- ๋ค๋ฅธ ๊ฐ์ฒด์ ๊ฐ๋ณ ํจ์์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์ฑํ๋ ๋๊ตฌ(tear-off)์์ ์์ฑ์ ์ฝ๋์์ ์ ์ฌํ ํฌ์ธํฐ๋ฅผ ์์ฑํ๋ ๋ฐ ๋ํ ์ ํ์ด ์ ๊ฑฐ๋์ด Flutter ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ ๋ ์ ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ๋ฌ Text ์์ ฏ์ ํฌํจํ๋ Column ์์ ฏ์ ์์ฑํ๋ ค๋ฉด ".map()"์ ํธ์ถํ๊ณ Text ๊ฐ์ฒด์ Text.new ์์ฑ์์ ํฌ์ธํฐ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. class FruitWidget extends StatelessWidget { @override Widget build(BuildContext context) { return Column( children: ['Apple', 'Orange'].map(Text.new).toList()); } }
- ํจ์ ํฌ์ธํฐ ์ฌ์ฉ๊ณผ ๊ด๋ จ๋ ๊ฐ๋ฅ์ฑ์ด ํ์ฅ๋์์ต๋๋ค. ์ ๋ค๋ฆญ์ด ์๋ ๋ฉ์๋์ ํฌ์ธํฐ๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ผ๋ฐ ๋ฉ์๋์ ํจ์ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. T id (T ๊ฐ) => ๊ฐ; var intId = ID ; // "int Function(int) intId = id;" ๋์ ๋ฒ์ 2.15์์ ํ์ฉ๋ฉ๋๋ค. const fo = ์์ด๋; // ํจ์ ID์ ๋ํ ํฌ์ธํฐ์ ๋๋ค. const c1 = fo ;
- dart:core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๊ฑฐํ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด์ ".name" ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ด๊ฑฐํ ๊ฐ์์ ๋ฌธ์์ด ๊ฐ์ ์ถ๋ ฅํ๊ฑฐ๋, ์ด๋ฆ์ผ๋ก ๊ฐ์ ์ ํํ๊ฑฐ๋, ๊ฐ ์์ ์ผ์น์ํฌ ์ ์์ต๋๋ค. enum MyEnum { one , ๋, ์ } void main() { print(MyEnum.one.name); // "XNUMX"์ด ์ธ์๋ฉ๋๋ค. print(MyEnum.values.byName('two') == MyEnum.two); // "true"๊ฐ ์ธ์๋ฉ๋๋ค. ์ต์ข ๋งต = MyEnum.values.asNameMap(); print(map['XNUMX'] == MyEnum.XNUMX); // "์ง์ค". }
- 64๋นํธ ์ฃผ์ ๊ณต๊ฐ์ด ์ฃผ์ ์ง์ ์ ์ถฉ๋ถํ ๊ฒฝ์ฐ(32GB ์ดํ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ฌ์ฉ๋จ) 4๋นํธ ํ๊ฒฝ์์ ํฌ์ธํฐ๋ฅผ ๋ณด๋ค ๊ฐ๊ฒฐํ๊ฒ ํํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ํฌ์ธํฐ ์์ถ ๊ธฐ์ ์ด ๊ตฌํ๋์์ต๋๋ค. ํ ์คํธ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด ์ด๋ฌํ ์ต์ ํ๋ฅผ ํตํด ํ ํฌ๊ธฐ๋ฅผ ์ฝ 10% ์ค์ผ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. Flutter SDK์์๋ ์ ๋ชจ๋๊ฐ Android์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ฏธ ํ์ฑํ๋์ด ์์ผ๋ฉฐ ํฅํ ๋ฆด๋ฆฌ์ค์์๋ iOS์๋ ํ์ฑํ๋ ์์ ์ ๋๋ค.
- Dart SDK์๋ ์ด์ ์ ๋ณ๋์ ํจํค์ง๋ก ์ ๊ณต๋์๋ ๋๋ฒ๊น ๋ฐ ์ฑ๋ฅ ๋ถ์ ๋๊ตฌ(DevTools)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- "dart pub" ๋ช ๋ น๊ณผ pub.dev ํจํค์ง ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋๊ตฌ๊ฐ ์ถ๊ฐ๋์ด ๊ธฐ๋ฐ ์ ๋ณด๊ฐ ์ค์๋ก ๊ฒ์๋๋ ๊ฒ์ ์ถ์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ง์์ ์ธ ํตํฉ ์์คํ ๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ํ ์๊ฒฉ ์ฆ๋ช ์ ํจํค์ง ๋ด์ ๋จ๊ฒจ ๋๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๋์ถ์ด ๊ฐ์ง๋๋ฉด "dart pub ๊ฒ์" ๋ช ๋ น ์คํ์ด ์ค๋ฅ ๋ฉ์์ง์ ํจ๊ป ์ค๋จ๋ฉ๋๋ค. ์คํ์ง๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํ์ดํธ๋ฆฌ์คํธ๋ฅผ ํตํด ๊ฒ์ฌ๋ฅผ ์ฐํํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ์ํํ ์ค๋ฅ๋ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋ ๊ฒฝ์ฐ ์ด๋ฏธ ๊ฒ์๋ ํจํค์ง ๋ฒ์ ์ ์ทจ์ํ๋ ๊ธฐ๋ฅ์ด pub.dev ์ ์ฅ์์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ ์๋ ์ด๋ฌํ ์์ ์ฌํญ์ ๋ํด ์์ ๋ฒ์ ์ ๊ฒ์ํ๋ ๊ฒ์ด ๊ด๋ก์์ง๋ง ์ด๋ค ์ํฉ์์๋ ๊ธฐ์กด ๋ฆด๋ฆฌ์ค๋ฅผ ์ทจ์ํ๊ณ ๊ธด๊ธํ๊ฒ ์ถ๊ฐ ๋ฐฐํฌ๋ฅผ ์ค๋จํด์ผ ํฉ๋๋ค(์: ์์ ์ฌํญ์ด ์์ง ์ค๋น๋์ง ์์๊ฑฐ๋ ์ ์ ๋ฆด๋ฆฌ์ค๊ฐ ์๋ฃ๋ ๊ฒฝ์ฐ). ํ ์คํธ ๋ฒ์ ์ด ์๋ ์ค์๋ก ๊ฒ์๋์์ต๋๋ค). ์ทจ์ ํ์๋ ํจํค์ง๊ฐ ๋ ์ด์ "pub get" ๋ฐ "pub ์ ๊ทธ๋ ์ด๋" ๋ช ๋ น์์ ์๋ณ๋์ง ์์ผ๋ฉฐ ์ด๋ฏธ ํจํค์ง๋ฅผ ์ค์นํ ์์คํ ์์๋ ๋ค์์ "pub get"์ด ์คํ๋ ๋ ํน๋ณ ๊ฒฝ๊ณ ๊ฐ ๋ฐํ๋ฉ๋๋ค.
- ํ์ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ์ฝ๋์ ์ ๋์ฝ๋ ๋ฌธ์ ์ฌ์ฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์ทจ์ฝ์ (CVE-2021-22567)์ ๋ํ ๋ณดํธ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- pub.dev oauth2021 ์ก์ธ์ค ํ ํฐ์ ํ์ฉํ๋ ํ์ฌ ์๋ฒ์ ํจํค์ง๋ฅผ ๊ฒ์ํ ๋ ๋ค๋ฅธ pub.dev ์ฌ์ฉ์๋ฅผ ๊ฐ์ฅํ ์ ์๋ ์ทจ์ฝ์ (CVE-22568-2)์ ์์ ํ์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ทจ์ฝ์ ์ ๋ด๋ถ ๋ฐ ํ์ฌ ํจํค์ง ์๋ฒ๋ฅผ ๊ณต๊ฒฉํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. pub.dev์์ ํจํค์ง๋ง ํธ์คํ ํ๋ ๊ฐ๋ฐ์๋ ์ด ๋ฌธ์ ์ ์ํฅ์ ๋ฐ์ง ์์ต๋๋ค.
๋์์ React Native์ ๋์์ผ๋ก ๊ฐ์ฃผ๋๊ณ ๋จ์ผ ์ฝ๋ ๊ธฐ๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก iOS, Android, Windows, macOS ๋ฐ Linux ํ๋ซํผ์ ๋ฌผ๋ก ๋ธ๋ผ์ฐ์ ์์ ์คํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํฉ๋๋ค. Google์์ ๊ฐ๋ฐํ Fuchsia ๋ง์ดํฌ๋ก์ปค๋ ์ด์ ์ฒด์ ์ฉ ๋ง์ถค ์ ธ์ Flutter๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ์ง๋ 2.8๊ฐ์ ๋์ Google Play ์คํ ์ด์ Flutter 2 ์ ํ๋ฆฌ์ผ์ด์ ์๊ฐ 200๋ง ๊ฐ์์ 375๋ง XNUMX์ฒ ๊ฐ๋ก ์ฆ๊ฐํ์ต๋๋ค. ๊ฑฐ์ ๋ ๋ฒ.
Flutter ์ฝ๋์ ์ฃผ์ ๋ถ๋ถ์ Dart ์ธ์ด๋ก ๊ตฌํ๋์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ํ ๋ฐํ์ ์์ง์ C++๋ก ์์ฑ๋์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ Flutter์ ๊ธฐ๋ณธ Dart ์ธ์ด ์ธ์๋ Dart Foreign Function ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ C/C++ ์ฝ๋๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ํ๋ซํผ์ฉ ๋ค์ดํฐ๋ธ ์ฝ๋๋ก ์ปดํ์ผํ์ฌ ๋์ ์คํ ์ฑ๋ฅ์ ๋ฌ์ฑํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ฐ ๋ณ๊ฒฝ ํ์ ํ๋ก๊ทธ๋จ์ ๋ค์ ์ปดํ์ผํ ํ์๊ฐ ์์ต๋๋ค. Dart๋ ์คํ ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๊ฒฝํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ๊ฐํ ์ ์๋ ํซ ๋ฆฌ๋ก๋ ๋ชจ๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
Flutter ์ ๋ฆด๋ฆฌ์ค์ ๋ณ๊ฒฝ ์ฌํญ ์ค์๋ ๋ชจ๋ฐ์ผ ์ฅ์น์ ์คํ ์๋ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น ์ต์ ํ๊ฐ ์ฃผ๋ชฉ๋ฉ๋๋ค. Firebase ๋ฐ Google Cloud์ ๊ฐ์ ๋ฐฑ์๋ ์๋น์ค์ ์ฑ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ๋ ์ฝ์ต๋๋ค. Google Ads ํตํฉ ๋๊ตฌ๊ฐ ์์ ํ๋์์ต๋๋ค. ์นด๋ฉ๋ผ ๋ฐ ์น ํ๋ฌ๊ทธ์ธ์ ๋ํ ์ง์์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค. ๊ฐ๋ฐ์ ๋จ์ํํ๊ธฐ ์ํ ์๋ก์ด ๋๊ตฌ๊ฐ ์ ์๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด Firebase๋ฅผ ์ฌ์ฉํ ์ธ์ฆ์ ์ํ ์์ ฏ์ด ์ถ๊ฐ๋์์ต๋๋ค. Flutter๋ฅผ ์ฌ์ฉํ์ฌ 2D ๊ฒ์์ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ค๊ณ๋ Flame ์์ง์ด ์
๋ฐ์ดํธ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru