export const sidebars = [ { label: "๐Ÿ“ฆ 1. ์‹œ์ž‘ํ•˜๊ธฐ", items: [ { label: "์†Œ๊ฐœ", slug: "part1/introduction" }, { label: "๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ", slug: "part1/setup" }, { label: "์ฒซ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰", slug: "part1/first-project" }, { label: "Flutter ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์ดํ•ด", slug: "part1/project-structure" }, ], }, { label: "๐Ÿ’ก 2. Dart ์–ธ์–ด ๊ธฐ์ดˆ", items: [ { label: "Dart ์†Œ๊ฐœ", slug: "part2/dart-intro" }, { label: "๊ธฐ๋ณธ ๋ฌธ๋ฒ• ๋ฐ ๋ณ€์ˆ˜", slug: "part2/basic-syntax" }, { label: "ํƒ€์ž… ์‹œ์Šคํ…œ & ์ œ๋„ค๋ฆญ", slug: "part2/type-system" }, { label: "ํด๋ž˜์Šค, ์ƒ์„ฑ์ž, ํŒฉํ† ๋ฆฌ", slug: "part2/classes" }, { label: "๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ", slug: "part2/async" }, { label: "์ปฌ๋ ‰์…˜๊ณผ ๋ฐ˜๋ณต๋ฌธ", slug: "part2/collections" }, { label: "์˜ˆ์™ธ ์ฒ˜๋ฆฌ", slug: "part2/exceptions" }, { label: "Extension / Mixin", slug: "part2/extensions" }, { label: "๋ ˆ์ฝ”๋“œ & ํŒจํ„ด๋งค์นญ", slug: "part2/records" }, ], }, { label: "๐Ÿงฑ 3. Flutter์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ์š”์†Œ", items: [ { label: "์œ„์ ฏ ๊ฐœ๋…๊ณผ ์ฃผ์š” ์œ„์ ฏ", slug: "part3/widgets" }, { label: "Stateless / Stateful ์œ„์ ฏ ์ƒ์„ธ", slug: "part3/stateless-stateful", }, { label: "Widget Tree ์ดํ•ด", slug: "part3/widget-tree" }, { label: "์ฃผ์š” ์œ„์ ฏ", slug: "part3/basic-widgets" }, { label: "๋ ˆ์ด์•„์›ƒ ์œ„์ ฏ", slug: "part3/layout-widgets" }, ], }, { label: "๐ŸŽจ 4. ์ƒํƒœ ๊ด€๋ฆฌ", items: [ { label: "์ƒํƒœ ๊ด€๋ฆฌ ์ž…๋ฌธ", slug: "part4/state-management-intro" }, { label: "setState, ValueNotifier", slug: "part4/setstate-valuenotifier", }, { label: "InheritedWidget, Provider", slug: "part4/inherited-provider" }, { label: "Riverpod ์†Œ๊ฐœ ๋ฐ ์‹ค์Šต", slug: "part4/riverpod" }, ], }, { label: "๐Ÿšฆ 5. ๋„ค๋น„๊ฒŒ์ด์…˜๊ณผ ํ™”๋ฉด ๊ตฌ์„ฑ", items: [ { label: "Navigator 1.0", slug: "part5/navigator1" }, { label: "Navigator 2.0", slug: "part5/navigator2" }, { label: "go_router ์‚ฌ์šฉ๋ฒ•", slug: "part5/go-router" }, { label: "๋ผ์šฐํŠธ ๊ฐ€๋“œ, ShellRoute, DeepLink", slug: "part5/advanced-routing", }, { label: "์‹ค์Šต: ๋ณต์ˆ˜ ํ™”๋ฉด ์ „ํ™˜", slug: "part5/multi-screen" }, { label: "Drawer, BottomNavigationBar, TabBar", slug: "part5/navigation-widgets", }, ], }, { label: "๐Ÿ”Œ 6. ์™ธ๋ถ€์™€์˜ ์—ฐ๋™", items: [ { label: "Dio๋ฅผ ํ†ตํ•œ API ํ†ต์‹ ", slug: "part6/dio" }, { label: "JSON ์ง๋ ฌํ™” (freezed, json_serializable)", slug: "part6/json-serialization", }, ], }, { label: "๐Ÿงช 7. ํ…Œ์ŠคํŠธ์™€ ๋””๋ฒ„๊น…", items: [ { label: "๋‹จ์œ„ ํ…Œ์ŠคํŠธ", slug: "part7/unit-test" }, { label: "์œ„์ ฏ ํ…Œ์ŠคํŠธ", slug: "part7/widget-test" }, { label: "ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ", slug: "part7/integration-test" }, // { label: "Flutter DevTools", slug: "part7/devtools" }, // { label: "๋กœ๊ทธ ๊ด€๋ฆฌ", slug: "part7/logging" }, ], }, { label: "๐Ÿš€ 8. ์•ฑ ๋ฐฐํฌ ๋ฐ ์šด์˜", items: [ { label: "๋นŒ๋“œ ๋ชจ๋“œ", slug: "part8/build-modes" }, { label: "Android / iOS ๋ฐฐํฌ", slug: "part8/deploy-procedure" }, { label: "Codemagic CI/CD", slug: "part8/cicd-codemagic", badge: "๐Ÿšง" }, { label: "ํ™˜๊ฒฝ ๋ถ„๋ฆฌ ๋ฐ flavor", slug: "part8/environment-flavors", badge: "BETA", }, { label: "์‚ฌ์šฉ์ž ๋ถ„์„ ๋„๊ตฌ", slug: "part8/analytics-tools", badge: "BETA", }, { label: "์—๋Ÿฌ ์ถ”์ ", slug: "part8/error-tracking" }, ], }, { label: "๐Ÿงญ 9. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ & ์•„ํ‚คํ…์ฒ˜", items: [ { label: "๊ธฐ๋Šฅ๋ณ„ vs ๊ณ„์ธต๋ณ„ ํด๋” ๊ตฌ์กฐ", slug: "part9/folder-structure" }, { label: "๋ฉ€ํ‹ฐ ๋ชจ๋“ˆ ์•„ํ‚คํ…์ฒ˜", slug: "part9/multi-module" }, { label: "melos๋ฅผ ์ด์šฉํ•œ ๋ชจ๋…ธ๋ ˆํฌ", slug: "part9/monorepo", badge: "๐Ÿšง" }, ], }, { label: "๐ŸŒ 10. ๋ณด์™„ ํ•™์Šต", items: [ { label: "CustomPainter์™€ RenderBox", slug: "part10/custom-painting" }, { label: "์œ„์ ฏ ์บ์‹ฑ", slug: "part10/widget-caching" }, { label: "์• ๋‹ˆ๋ฉ”์ด์…˜", slug: "part10/animations" }, { label: "์ ‘๊ทผ์„ฑ", slug: "part10/accessibility" }, { label: "๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ", slug: "part10/internationalization" }, { label: "์„ฑ๋Šฅ ์ตœ์ ํ™”", slug: "part10/performance", badge: "BETA" }, // { label: "์ถ”์ฒœ ํŒจํ‚ค์ง€", slug: "part10/recommended-packages" }, ], }, { label: "๐Ÿ“š ๋ถ€๋ก", items: [ // { label: "๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ๋งํฌ", slug: "appendix/tools" }, { label: "Flutter ์˜ค๋ฅ˜ ๋Œ€์‘๋ฒ•", slug: "appendix/error-handling" }, { label: "์ฝ”๋“œ ํ…œํ”Œ๋ฆฟ", slug: "appendix/code-templates" }, { label: "์†Œ์…œ ๋กœ๊ทธ์ธ", slug: "appendix/social-login", badge: "๐Ÿšง" }, { label: "iOS ๋ผ์ด๋ธŒ ์•กํ‹ฐ๋น„ํ‹ฐ", slug: "appendix/live-activities" }, { label: "WidgetBook", slug: "appendix/widgetbook" }, { label: "FAQ", slug: "appendix/faq" }, ], }, ];