# The flutter way Plant APP {{youtube>LN668OAUrK4}} 위젯이란 무엇인가?? 유튜브에서 제공되는 코드를 따라서 앱을 만들어 봅시다. 이렇게 빨리 타이핑 하는데 30분이라니. 두 페이지라서 오래 걸림. {{ https://github.com/abuanwar072/Plant-App-Flutter-UI/raw/master/plant.png }} ### 프로젝트 생성 flutter create the_flutter_way_plant_app [소스 github](https://github.com/abuanwar072/Plant-App-Flutter-UI) [내 github](https://github.com/jacegem/the_flutter_way_plant_app) ## 파일 구조 {{ https://i.imgur.com/oDTvvW0.jpg?300 }} ### assets 복사 icon, image 를 다운받아서 프로젝트에 넣는다. ### pubspec.yaml 파일 수정 dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 flutter_svg: ^0.17.4 ... assets: - assets/icons/ - assets/images/ ### constans.dart {{ https://i.imgur.com/FbvlSWe.jpg?300 }} import 'package:flutter/material.dart'; // Colors that we use in our app const kPrimaryColor = Color(0xFF0C9869); const kTextColor = Color(0xFF3C4046); const kBackgroundColor = Color(0xFFF9F8FD); const double kDefaultPadding = 20.0; ### MyApp 작성 import 'package:flutter/material.dart'; import 'package:the_flutter_way_plant_app/constants.dart'; import 'package:the_flutter_way_plant_app/screens/home/home_screen.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, title: 'Plant App', theme: ThemeData( scaffoldBackgroundColor: kBackgroundColor, primaryColor: kPrimaryColor, textTheme: Theme.of(context).textTheme.apply(bodyColor: kTextColor), visualDensity: VisualDensity.adaptivePlatformDensity, ), home: HomeScreen(), ); } } ### Appbar 만들기 import 'package:flutter/material.dart'; import 'package:flutter_svg/svg.dart'; class HomeScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: buildAppBar(), ); } AppBar buildAppBar() { return AppBar( elevation: 0, leading: IconButton( icon: SvgPicture.asset('assets/icons/menu.svg'), onPressed: () {}, ), ); } } ## 위젯 구조 ## 주요 부분 ...