EDOC 8

[4.1~4.3] 일정 관리 앱 만들기 ~ 서버와 연동하기

17. 일정 관리 앱 만들기17.1 패키지 의존성먼저 pubspec.yaml에서 의존성을 추가합니다.dependencies: flutter: sdk: flutter table_calendar: ^3.0.9 intl: ^0.18.1intl은 날짜 형식을 출력할 때 필요하고, table_calendar는 달력 위젯입니다.17.2 TableCalendar 기본 위젯 구조이제 달력을 앱에 띄워봅시다. 간단한 StatefulWidget으로 작성합니다.class CalendarScreen extends StatefulWidget { const CalendarScreen({super.key}); @override State createState() => _CalendarScreenState();}cl..

[3.7 ~ 3.9] 오늘도 출첵 ~ AI 채팅봇, 소울챗

14. 오늘도 출첵 :: 구글 지도, Geolocator 플러그인, 다이얼로그14.1 사전 지식14.1.1 Geolocator 플러그인 - 지리와 관련된 기능을 쉽게 사용할 수 있는 플러그인 - 위치 서비스 권한 확인 _ 위치 서비스 기능이 켜졌는지 확인final isLocationEnabled = await Geolocator.isLocationServiceEnabled(); - 앱에서 위치 서비스 기능을 사용할 수 있는지 확인final checkedPermission = await Geolocator.checkPermission(); // 권한 확인final checkedPermission = await Geolocator.requestPermission(); // 권한 요청 - 현재 위치 지속적으로..

[3.4 ~ 3.6] 디지털 주사위 ~ 영상 통화

11. 디지털 주사위 :: 가속도계, 자이로스코프, Sensor_plus11.1 사전 지식11.1.1 가속도계 - 특정 물체가 특정 방향으로 이동하는 가속도가 어느 정도인지를 숫자로 측정하는 기기 - 3개의 축 -> x(좌우), y(위아래), z(앞뒤) 축 - 측정 결과가 모두 double로 변환되어 출력11.1.2 자이로스코프 - x, y, z 축의 회전을 측정할 수 있음. - 3개의 축 -> x(좌우), y(위아래), z(앞뒤) 축11.1.3 Sensor_Plus 패키지 - 가속도계 & 자이로스코프 패키지를 사용할 수 있게 해줌.// 중력을 반영한 가속도계 값accelerometerEvents.listen((AccelerometerEvent event) { print(event.x); // x= 수..

[3.1 ~ 3.3] 블로그 웹 앱 콜백 함수, 웹뷰, 네이티브 설정 ~ 만난 지 며칠 U&I 상태 관리, CupertinoDatePicker, Dialog, DateTime

8. 플러터로 블로그 웹 앱 만들기: 웹뷰와 콜백 함수 활용하기8.1. 사전 지식8.1.1 콜백 함수 - 일정 작업이 완료되면 실행되는 함수 - 함수를 미리 정의해두고 특정 조건이 성립될 때 실행됨. - ex) 웹뷰에서 페이지 로딩이 완료된 후 실행되는 onPageFinished() 콜백 함수 8.1.2 웹뷰 위젯 - 웹뷰 : 프레임워크에 내장된 브라우저를 앱의 네이티브 컴포넌트에 임베딩하는 기능(앱 내에서 웹 브라우저 기능을 구현) - 단점 : 네이티브 컴포넌트에 비해 속도 느림 / 애니메이션이 부자연스러움 - 장점 : 기존 웹사이트를 손쉽게 앱으로 활용할 수 있음. - 웹뷰 위젯 :: controller 파라미터에 WebViewController 객체를 입력해 제어 (주요 함수⤵️)setJavaScr..

[2.6 ~ 2.7] 기본 위젯 알아보기 ~ 앱을 만들려면 알아야 하는 그 밖의 지식

6장. 기본 위젯 알아보기6.1 위젯 소개Flutter의 핵심 문구는 "Everything is a Widget"이다. 즉, 화면에 보여지는 모든 요소가 위젯으로 구성된다. Flutter는 위젯을 통해 화면을 구성하고, 상태에 따라 화면을 다시 그려주는 방식으로 동작한다.자식 위젯을 1개만 갖는 위젯은 child, 여러 개를 갖는 위젯은 children 매개변수를 사용한다.6.1.1 child vs children 차이예제 - childCenter( child: Text('Code Factory'),)Center 위젯은 자식 위젯을 가운데 정렬하는 역할을 한다.child 키워드를 통해 Text 위젯을 하나만 넣을 수 있다.예제 - childrenColumn( children: [ Text('Co..

[1.4 ~ 2.5] 다트 3.0 신규 문법 / 플러터 입문하기

4장 :: Dart 3.0 신규 문법Dart 3.0의 버전이 발표되면서 문법이 새로 추가됨. Flutter 3.0 이상은 Dart 3.0을 기준으로 활용하므로 반드시 학습 필요.1. 레코드 (Record)1.1 포지셔널 파라미터void main() { (String, int) minji = ('민지', 20); print(minji); // ('민지', 20) print(minji.$1); // 민지 print(minji.$2); // 20}1.2 네임드 파라미터void main() { ({String name, int age}) minji = (name: '민지', age: 20); print(minji); // (name: 민지, age: 20) print(minji.name); // 민..

[1.3] 다트 비동기 프로그래밍

1. 동기 vs 비동기 프로그래밍동기(Synchronous) 방식은 어느 작업이 끝날 때까지 기다린 후 다음 작업을 실행한다.비동기(Asynchronous) 방식은 작업을 요청한 후 기다리지 않고 다음 코드를 바로 실행하며, 응답이 오면 그때 결과를 처리한다.비동기 방식은 CPU 리소스를 효율적으로 활용할 수 있다는 장점이 있다.2. FutureFuture는 미래에 받을 값을 표현하는 객체이다. 다음과 같은 형태로 선언한다.Future name;Future number;Future isOpened;비동기 작업 예시로는 다음과 같은 코드가 있다.void addNumbers(int number1, int number2) { print('$number1 + $number2 계산 시작!'); Future.d..

[1.1 ~ 1.2] 다트 입문하기 / 다트 객체지향 프로그래밍

1장: 다트 입문하기1.1 다트 개요다트(Dart)는 구글에서 개발한 프로그래밍 언어로, 주로 플러터(Flutter) 앱 개발에 사용됨.2011.10. GOTO 콘퍼런스에서 공개되었고, 자바스크립트 대체 목적 언어로 개발되었으나 이 시도는 실패.JIT(Just-in-Time) 컴파일과 AOT(Ahead-of-Time) 컴파일을 지원하여 개발 속도를 높이고 최적화된 성능을 제공함.1.2 다트 실행 환경다트는 웹 기반 실습 환경인 DartPad를 제공하여 간단한 코드를 실행할 수 있음.main() 함수는 다트 프로그램의 진입점이며, 필수적으로 포함해야 함.void main() { print('Hello World');}1.3 변수와 데이터 타입다트는 강타입 언어이지만 타입을 자동 추론할 수 있음.기본 데이..