코딩 및 기타/flutter
0630
정지홍
2023. 6. 30. 10:53
네이티브코드: 각 플랫폼에 종속된 코드

-dir들
android:안드로이드 앱 구성
ios:ios앱 구성
lib:다트 파일을 저장하며 하위 디렉토리를 자유롭게 구성가능하다
test:앱 빌드시 포함하지 않으려고 만든것
lib/main.dart:메인함수가 있으며 꼭 main.dart가 아니라 메인함수가 있는 파일이면 런닝가능
.gitignore:깃에 업로드 안할 파일들
pubspec.yyml:빌드와 관련 설정들이 있으며 자주 열어서 분석 혹은 수정한다.
//다른 다트파일을 불러올때 사용
//패키지일수도 있우묘 pubspec.yaml에 들록한 외부 패키지일수 있다
//다른 파일의 클래스,함수,변수등을 불러올때
import 'package:flutter/material.dart';
//화면에 출력할 위젯클래스
class MyApp extends StatelessWidget {
const MyApp({super.key});
//아래 빌드함수를 보면 MaterialApp,MyHomePage의 두개로 구성된다
//전자는 플러터에서 제공하는 위젯이며 머티리얼 디자인을 적용하게 해준다.
//후자는 개발자가 작성한 위젯
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
dependencies:앱이 빌드되서 플랫폼에서 실행될때도 필요한 패키지들
dev_dependencies:개발할때 만 이용하는 패키지들
-->패키지 입포트후에 pub get을 눌러줘야함
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

import 'package:flutter/material.dart';
import 'package:english_words/english_words.dart';
import 'package:flutter_lab/main.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context){
final wordPair=WordPair.random();
return MaterialApp(
home:Scaffold(
appBar:AppBar(
title:Text('Test'),
),
body:Center(
child:Text('${wordPair.first}'),
),
),
);
}
}
lib/ch2/test.dart파일

//int a1=10;
int? a2=10;
late int a3;
main(){
//a1=null; 널 불허여서 에러 발생
a2=null;
List<int> list2=[10,2,3];
print(list2);
list2.add(4);
list2.add(5);
print(list2);
list2.removeAt(1);
print(list2);
//growable: true을 해줘야 add를 가능
var list3 = List<int>.filled(5, 8,growable: true);//[8,8,8,8,8]
list3[1]=5;
print(list3);
list3.add(7);
print(list3);
var list4=List<int>.generate(3, (index) => index*7,growable: true);
print(list4);
//set은 중복값을 허용하지 않으며 list는 허용한다.
Set<int> set1={1,2,3};
print(set1);
set1.add(5);
set1.add(8);
print(set1);
Set<int> set2 = Set();
print(set2);
Map<String,String> map1 = {'one':'hello' , 'two':'world!'};
print(map1);
print(map1['one']);
}