RecipeApp - 기본 화면 만들기

송민경's avatar
Apr 09, 2024
RecipeApp - 기본 화면 만들기

1. 프로젝트 생성하기

notion image

2. 파일 구조 만들기

notion image
notion image
 

3. 경로 잡기

  • 이미지 경로 잡기
# To add assets to your application, add an assets section, like this: assets: - assets/images/
  • 폰트 경로 잡기
후에 라이브러리를 다운 받아서 사용
라이브러리로 관리하는게 좋음
fonts: - family: PatuaOne fonts: - asset: assets/fonts/PatuaOne-Regular.ttf
name: flutter_recipe description: A new Flutter project. # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: 'none' # Remove this line if you wish to publish to pub.dev # The following defines the version and build number for your application. # A version number is three numbers separated by dots, like 1.2.43 # followed by an optional build number separated by a +. # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # In Android, build-name is used as versionName while build-number used as versionCode. # Read more about Android versioning at https://developer.android.com/studio/publish/versioning # In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. version: 1.0.0+1 environment: sdk: '>=3.0.2 <4.0.0' # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions # consider running `flutter pub upgrade --major-versions`. Alternatively, # dependencies can be manually updated by changing the version numbers below to # the latest version available on pub.dev. To see which dependencies have newer # versions available, run `flutter pub outdated`. 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 dev_dependencies: flutter_test: sdk: flutter # The "flutter_lints" package below contains a set of recommended lints to # encourage good coding practices. The lint set provided by the package is # activated in the `analysis_options.yaml` file located at the root of your # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^2.0.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec # The following section is specific to Flutter packages. flutter: # The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true # To add assets to your application, add an assets section, like this: assets: - images/ # - images/a_dot_ham.jpeg # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/assets-and-images/#resolution-aware # For details regarding adding assets from package dependencies, see # https://flutter.dev/assets-and-images/#from-packages # To add custom fonts to your application, add a fonts section here, # in this "flutter" section. Each entry in this list should have a # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: fonts: - family: PatuaOne fonts: - asset: assets/fonts/PatuaOne-Regular.ttf # - asset: fonts/Schyler-Italic.ttf # style: italic # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf # - asset: fonts/TrajanPro_Bold.ttf # weight: 700 # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages
notion image
notion image
notion image
 

4. components에 .dart 파일 만들기

  • RecipeTitle
import 'package:flutter/material.dart'; class RecipeTitle extends StatelessWidget { @override Widget build(BuildContext context) { return Container(); } }
  • RecipeMenu
import 'package:flutter/material.dart'; class RecipeMenu extends StatelessWidget { @override Widget build(BuildContext context) { return Container(); } }
  • RecipeListItem
import 'package:flutter/material.dart'; class RecipeListItem extends StatelessWidget { final String imageName; final String title; const RecipeListItem(this.imageName, this.title); @override Widget build(BuildContext context) { return Container(); } }
 

5. pages에 .dart 파일 만들기

  • RecipePage
import 'package:flutter/material.dart'; import '../components/recipe_list_item.dart'; import '../components/recipe_menu.dart'; import '../components/recipe_title.dart'; class RecipePage extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.white, appBar: _buildRecipeAppBar(), body: Padding( padding: const EdgeInsets.symmetric(horizontal: 20), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ RecipeTitle(), RecipeMenu(), RecipeListItem("coffee", "made Coffee"), RecipeListItem("burger", "made Burger"), RecipeListItem("pizza", "made Pizza"), ], ), ), ); } AppBar _buildRecipeAppBar() { return AppBar(); } }
 

6. main.dart 파일 수정하기

  • import : ALT + ENTER
import 'package:flutter/material.dart'; import 'package:flutter_recipe/pages/recipe_page.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, // 디버그 깃발 없애기 home: RecipePage(), ); } }
notion image
notion image
 
 
Share article
RSSPowered by inblog