Flutter
-
Flutter - Thread, Future, async 심화Flutter 2021. 10. 9. 02:11
[Thread] - 프로세스 내에서 실행되는 흐름의 단위 - Dart는 싱글 스레드로 운영되는 언어이다. 싱글 스레드로 동작 한다는 뜻은 오직 한번에 하나의 작업만 실행되고, 이 작업이 실행되는 동안 코드상에 존재하는 다른 작업들이 개입할 수 없다. - Dart는 이런 싱글스레드의 단점을 Event loop로 해결한다. Dart는 스레드가 생성된 순간 3가지 작업을 하게 된다. -> 선입 선출 방식으로 Micro Task(이벤트 큐로 넘어가기 전에, 아주 짧은 시간동안 비동기적으로 먼저 실행되고 끝 나는 작은 작업)와 Evnet 준비 -> main 함수 실행 -> Evnet loop 실행 [Evnet loop] - 외부에서 전달되는 이벤트가 발생했을 때 이벤트과 관련된 코드들이 이벤트 큐에 등록이 된다...
-
Flutter - Future, async, awaitFlutter 2021. 10. 7. 00:15
[Future] - 미래에 구체적인 결과물로 실제적인 객체로 반환된다는 의미 - 일종의 약속이자, 해당 결과를 추후에 확인 가능하다는 의미 - Future 클래스는 일정 소요시간이 지난 후에 실제 데이터 값이나, 에러가 있는 경우 에러를 반환한다. - Future 클래스는 Future같이, 제네릭처럼 어떤 결과물을 받아야 할지 미리 지정해둘 수 있다. - Future와 일반 void 함수의 차이점은 언제 함수의 실행이 끝날지 지정해 줄수 있다는 것. [async] - async 클래스는 await 메서드를 가지고 있다. - await 으로 선언된 메서드는 응답이 처리될 때 까지 대기하는 비동기 식으로 동작한다. - async제어자는 항상 중괄호 앞에 선언해야 한다. 선헌하게 되면 await 키워드를 사용..
-
flutter - 2.0 button ElevatedButton으로 구글, 페이스북, 메일 로그인 버튼 만들기Flutter 2021. 10. 6. 02:47
1. 구글, 페이스북 이미지 파일 imges 폴더를 만든 후 해당 파일을 저장한 뒤, pubspec.yaml 파일에서 경로 설정해주기 2. 코드 import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Login app', theme: ThemeData(primarySwatch: Colors.grey), home: LogIn(), ); } } class LogI..
-
Flutter - final 과 constFlutter 2021. 10. 6. 00:07
final 과 const는 '제어자' 라고 하며 제어자란 클래스, 변수, 메서드를 정의할 때 함께 쓰여서 이것들을 사용하기 위한 옵션을 정해주는 역할을 수행한다. - final 과 const 키워드의 가장 중요한 역할은 변수값이 한번 초기화 되면 바꿀 수 없게 하는 것이다. - 문제는 이 같은 역할을 하는 final 과 const의 차이점이다. [final] - final 변수는 런타임 시에 상수화 한다. - final은 const와는 달리 초기화 되는 시점이 앱이 실행이 될 때이다. - final은 한번 초기화되면 immutable하기 때문에 값을 변경하고 싶다면 아예 새롭게 빌드 메서드 내에서 rebuild 해야 한다. [const] - const 변수는 컴파일 시에 상수화 한다. - const는 선..
-
Flutter - APK 파일 생성하기Flutter 2021. 9. 15. 01:06
일단 저는 VSCode 환경입니다. 1. 생성하고 싶은 프로젝트로 가서 터미널 창에서 해당 프로젝트 위치로 이동합니다. (해당 프로젝트에서 터미널을 열었다면 이미 자동으로 이동되어 있습니다.) 2. 터미널에 flutter build apk --release --target-platform=android-arm64 를 입력합니다. 3. 생성된 apk 파일 경로는 build/app/outputs/apk/release/app-release.apk 입니다. 이 파일을 안드로이드 폰에 가져가서 실행시키면 됩니다. flutter build apk --release --target-platform=android-arm64를 실행 시키면 이렇게 오류가 나면서 릴리스가 안될 때가 있는데 오류를 찬찬히 없앤 후 릴리스 하..
-
flutter - Dart 시간 변환(DateTime, millisecondsSinceEpoch, fromMillisecondsSinceEpoch)Flutter 2021. 7. 29. 00:16
졸업 작품 때문에 Dart 시간 변환에 대해서 공부했다. -> DateTime 에서 millisecondsSinceEpoch로, millisecondsSinceEpoch에서 DateTime으로 변환 하는것이 목적이다. flutter 로는 단순 결과를 얻기 힘들어서 DartPad를 활용했다. [DartPad] https://dartpad.dev/ -> 해당 코드는 https://www.python2.net/questions-701627.htm 여기서 많이 참고하였다. void main(){ final date1 = DateTime.fromMillisecondsSinceEpoch(1577836800 * 1000).toUtc(); // 01/01/2020 @ 12:00am (UTC) final date2 = ..