Fox Moon

앱 디버그 앱 정상 구동 확인 pubspec.yaml 설정 버전 설정 version: 1.0.0+1 environment: sdk: ">=2.16.2 <3.0.0" android\app\src\main\AndroidManifest.xml 설정 파일에서 권한 설정 <manifest> <uses-permission android:name="android.permission.PERMISSION_CODE" /> <application></<application> </manifest> 권한 내용 INTERNET 인터넷 사용 권한 BLUETOOTH 블루투스 상태 확인 VIBRATE 진동 설정 권한 SET_ALARM...
위젯(Widget) : 요소의 구성(Configuration)을 기술하고 처리한다. 요소(Element) : 트리의 특정 위치에서 위젯을 인스턴스화 한다. 렌더 객체(RenderObject) : 크기, 레이아웃 등을 다루고 렌더링을 처리한다. State 생성 트리의 특정 위치를 참조하는 BuildContext 존재 해당 BuildContext에 연결 연결된 각 BuildContext에 위젯 배치(인스턴스화) 요소(Element) 생성 기본 코드 main() -> runApp(HelloWorld()) -> HelloWorld() -> build() -> MaterialApp() -> Scaffold() import 'package:flutter/material.dart'; main...
중요 개념 모든 변수는 객체(object)이다. 모든 객체는 클래스의 인스턴스이다. 숫자, 함수, null도 객체다. 모든 객체는 Object 클래스로부터 상속된다. 타입 어노테이션은 타입 추론이 가능할 경우 옵션이다. 예를 들어 int number = 10;으로 명시적으로 타입을 지정하지 않고 var number = 10;으로 사용 가능하다는 의미이다. 타입이 예상되지 않는다고 명시적으로 표현하고 싶을 때는 dynamic 키워드를 사용한다. 이것은 하나의 변수가 여러 타입으로 변경 가능하다는 의미이다. var 키워드와 비교해보면 좀 더 이해하기 쉽다. var는 다음과 같이 String 타입으로 지정된 후에는 int 타입을 참조할 수 없다. var name = "Kim"; name = 10...
선택자 종류 예시 설명 div[class~=ko-kr] { background-color: red } ko-kr 을 포함하는 태그를 선택 div[class|=ko-kr] { background-color: red } ko , kr 을 포함하는 태그를 선택 div[class^=ko-kr-name] { background-color: red } ko-kr 로 시작하는 태그를 선택 div[class$=name-ko-kr] { background-color: red } ko-kr 로 끝나는 태그를 선택 div[class*=name-ko-kr-name] { background-color: red } ko-kr 을 포함하는 태그를 선택 예시 html 코드 <div class="box_1">...
List : 데이터 순서가 있고 중복 허용 Set : 데이터 순서가 없고 중복 허용하지 않음 Map : 키(key)와 값(value)으로 구성되며 키는 중복되지 않고 값은 중복 가능 List 데이터 순서가 있고 중복 허용 데이터를 여러 개 담을 수 있는 자료구조 데이터를 List에 담을 때 순서를 가지기 때문에 배열을 대체할 수 있고 데이터에 순차적으로 접근하기 쉽다 List<데이터 타입> 변수명 = [데이터1, 데이터2, 데이터3, ...]; List<String> colors = ['Red', 'Orange', 'Yellow']; List<데이터 타입> 변수명 = List(); colors .add(데이터1); colors .add(데이터2); colors .add(데이...
플러터에서 새로운 화면을 만들 때는 마치 웹사이트의 주소가 변하는 것과 비슷하게 &#39;경로(route)&#39;로 관리 &#39;하나의 경로&#39;는 &#39;하나의 화면&#39; 플러터에서 라우트를 왔다갔다 하기 위해서는 Navigator를 사용 화면을 바꾸는 방법 라우트 2개 (= 화면 2개) Navigator에 라우트를 push (= 화면을 이동) Navigator에 있는 라우트를 pop (= 이전 화면으로 돌아감) import 'package:english_words/english_words.dart'; import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class My...
ListTile에 아이콘을 추가하여 이름 저장하기 사용자가 원하는 이름을 선택 선택한 이름을 저장 import 'package:english_words/english_words.dart'; import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { // final wordPair = WordPair.random(); return MaterialApp( title: '플러터 학습', home: RandomWords(), ); } } class RandomWords extends Stat...