개발노트/Kotlin
스파르타 코딩클럽 앱개발 종합반 1주차
시계속세상은아직돌아가는중
2023. 6. 22. 16:22
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
//보통의 상중하 3단계로 나눠주는 위젯.
//appBar(상)body(중)bottomNavigationBar(하)
appBar: AppBar(
centerTitle: true, //텍스트를 중앙으로 표시함
title: Text(
'Hello Flutter',
style: TextStyle(
//글자의 속성을 부여. 속성 : 글자속성(폰트사이즈)
fontSize: 28,
),
),
),
body: SingleChildScrollView(
//아래 child를 스크롤 할 수 있게 만들어주는 위젯
child: Padding(
//안쪽 여백을 주는 위젯
padding: const EdgeInsets.all(16),
child: Column(
//children에 들어가는 많은 요소들을 세로로 배치해줄 수 있게 묶음.
children: [
Image.network(
"https://i.ibb.co/nngK6j3/startup.png",
width: 81, //이미지의 크기를 지정함
), //이미지를 불러옴
TextField(
decoration: InputDecoration(labelText: "이메일"),
),
TextField(
obscureText: true,
decoration: InputDecoration(labelText: "비밀번호"),
),
Container(
//child의 크기를 지정할 수 있는 위젯. width 속성이 없는 위젯의 크기 지정 가능
width: double.infinity, //child의 크기를 최대치로 키움(위에 맞춤)
child: ElevatedButton(
//버튼
onPressed: () {}, //버튼 동작하는 함수. ()입력값 {}return값
child: Text('로그인'), //버튼 이름
),
),
],
),
),
),
),
);
}
}
1 주차를 공부하며 들었던 생각들
1. 정렬에 대해
강의를 들으면서 의문이 들었던 점은 android,ios 동시 개발이 가능한 flutter의 디폴트 값이 각 os마다 다르다는 점이었다. Scaffold를 사용한다면 ios는 기본적으로 글자 중앙 정렬을 해주지만 android에서는 왼쪽 정렬을 해준다.
때문에 개발 할 시 centertitle같이 정렬해주는 기능을 사용하여 디폴트 값을 내가 정해주는 것이 합당하다.
2. dart 문법-변수 var에 대해
dart문법을 공부하면서 의문이 들었던 점은, var라는 변수의 효용성이 있는지에 관해서였다.
var 형태는 이러하다
var 변수이름 = 변수
var는 뒤에 받는 변수에 따라서 형이 고정된다.
예를들이서
var a = 10
이라면 var는 int형으로 고정이 된다.
var형을 많이 사용하면 할수록 변수의 원형은 기억하기 어려운 파국으로 들어갈 것이 분명하다.
따라서 var형을 사용하는 것은 변수의 형태가 상관 없이 작동하는 코드의 결과값을 임시적으로 시험할 때 사용하는 것이 옳은 선택이므로, 코딩을 할 때 var형을 사용하는 것은 지양하는 것이 옳다.
본인 혼자 개발한다 해도 코드가 길어지면 길어질수록 각 변수의 원형을 찾는 것은 매우 중요한 일이다.
따라서 처음부터 필요한 변수를 할당하는것이 옳다.
var형은 테스트형 코드에서만 사용하도록 하자