본문 바로가기

분류 전체보기271

[Flutter] Flutter Video Player * VideoPlayer pubspec.yaml dependencies: flutter: sdk: flutter video_player: Android-/android/app/src/main/AndroidManifest.xml iOS-/ios/Runner/Info.plist NSAppTransportSecurity NSAllowsArbitraryLoads VideoPlayerController 생성 및 초기화 1. StatefulWidget, State class 생성 2. State class에 VideoPlayerController 저장하기 위한 변수 추가 3. State class에 VideoPlayerController.initialize로부터 반환되는 Future 저장하기 위한 변수 추가 4. .. 2021. 3. 16.
[Flutter] Flutter Widget * Text Text( 'Hello World!!!', style: TextStyle( color: Colors.red, fontSize: 20.0, fontStyle: FontStyle.italic ), ) * Row : 가로로 레이아웃 생성 Row( //mainAxisAlignment : 자식의 수평 배열 생성 //MainAxisAlignment.spaceEvenly : 균등 배치 mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Image.asset('images/pic1.png'), Image.asset('images/pic2.png'), Image.asset('images/pic3.png'), ], ) * Column : 세로로 레이아.. 2021. 3. 16.
[Flutter] Flutter App (4) * Flutter 파일 구조 이쯤 되면 궁금해지는 Flutter project의 파일 구조... 파일들을 어떻게 나눠야 될지, 폴더명은 어떻게 하는 게 좋을지 궁금해서 찾아보았다. Root Directory of App (프로젝트 생성 시 만들어지는 기본 폴더가 아님) - Assets : 거의 대부분의 앱에서 반드시 사용해야 함. 로고나 사용자 지정 아이콘, 앱 전체에서 사용되는 정적 이미지 등.. 일단 이러한 요소들이 Assets 폴더에 저장되면 pubspec.yaml에 등록해줘야 함 - Fonts : Flutter에서 제공하는 기본 글꼴 사용 시 필요 없음 - Function : DB 사용 시 별도의 설정 필요한 경우 관련 함수 저장 → 실제 앱을 구동하는 코드와 구분 가능 lib Derectory .. 2021. 3. 16.
[Flutter] Flutter App (3) * 좋아요 목록 보기 import 'package:flutter/material.dart'; import 'package:english_words/english_words.dart'; import 'package:flutter/rendering.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Startup Name Generator', debugShowCheckedModeBanner: false, .. 2021. 3. 16.
[Flutter] Flutter App (2) * 좋아요 만들기 import 'package:flutter/material.dart'; import 'package:english_words/english_words.dart'; import 'package:flutter/rendering.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Startup Name Generator', home: RandomWords(), ); } } class Ran.. 2021. 3. 16.
[Flutter] Flutter App (1) * app 만들어보기 - Stateless 위젯 : 모든 속성(변수)들이 변하지 않음. 모든 값들은 final 선언 - Scaffold 위젯 : appBar, title, body property 제공 - StatelessWidget : 단 한번만 Build 과정 발생. 한 번 그려진 화면은 계속 유지되며, 성능상 장점 - StatefulWidget : state(데이터 상태) 포함하며, setState(데이터 변화) 발생할 때마다 다시 Build 과정 발생 ▶ 동적 화면 쉽게 구현 가능 //pubspec.yaml dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Us.. 2021. 3. 16.
[Flutter] Dart 문법 (stream, async*, yield) * stream : 파이프 개념. - 값, 이벤트, 객체, 컬렉션, 맵, 오류 또는 심지어 다른 스트림에서 모든 유형의 데이터가 스트림에 의해 전달 가능 - async* : 게으른 연산. 요청이 있을 때는 연산을 미루다가 함수에서 사용 시 연산함 - yield : return과 비슷하게 값을 반환해주는데 한번에 하나씩 return함과 동시에 함수가 종료되지 않고 계속 열려있으면서 지속적으로 return 해줌. import 'dart:async'; Future sumStream(Stream stream) async { var sum = 0; await for (var value in stream) { sum += value; print("value : " + value.toString() + ", sum .. 2021. 3. 16.
[Flutter] Dart 문법(??=, ??, null 인식 연산자, cascade, ..) #flutter operater ?? #flutter null #dart .. * null 인식 연산자 : ??=, ?? * cascade (..연산자) : 자바의 builder 패턴과 유사. 객체 레퍼런스 변수 없이 바로 값 대입 가능 class Animal { var name = "dog"; var age; var sound; } main() { var a = 3; // ??= : 변수가 현재 널인 경우에만 변수에 값 지정 a ??= 4; print(a); // ?? : 왼쪽 표현식 값이 널이 아니면 왼쪽 표현식을, 널이면 오른쪽 표현식 리턴 print(1 ?? 3); print(null ?? 12); Animal animal = Animal(); print(animal.name); Animal? ani2; // ?. : null이면 null값 출력 print(ani2?.nam.. 2021. 3. 16.
[Flutter] Dart 문법 (skip, take) * skip, take - skip : 첫 번째 (count) 요소 제외한 모든 요소 제공하는 iterable 반환, 즉 count개 요소 제외한 모든 요소 - take : 이 iterable의 첫 번째 요소 (count) 개의 lazy iterable 반환, 즉 iterable의 첫 번째 요소부터 count개 까지의 lazy iterable 반환 String scream(int length) => "${'a' * length}"; main() { final values = [1, 2, 3, 5, 10, 50]; for (var length in values) { print(scream(length)); } print("\n"); var map = values.map(scream); print(map.r.. 2021. 3. 15.
[Flutter] Dart 문법 (json) * 클래스 직렬화 (Json) - Flutter는 간단한 json 인코더와 디코더가 내장된 dart:convert 라이브러리 가짐 - fromJson : map 구조에서 새로운 User 객체 생성하기 위한 생성자 - toJson : User 객체를 map 구조로 변환하기 위한 메서드 //user.dart class User { final String name; final String email; User(this.name, this.email); User.fromJson(Map json) : name = json['name'], email = json['email']; Map toJson() => { 'name': name, 'email': email, }; } //main.dart import 'use.. 2021. 3. 15.