본문 바로가기

반응형

분류 전체보기

(34)
나만의 포모도 타이머 만들기 main.dartimport 'package:flutter/material.dart';import 'package:toonflix/screens/home_screen.dart';void main() { runApp(App());}class App extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( scaffoldBackgroundColor: const Color(0xFFE7626C), // 변경 textTheme: const TextTheme( headlineLarge: TextStyle( ..
Flutter Emulator 설정 - 창 위에 뜨게 하기 안드로이드 오른쪽에 있는 안드로이드 모양과 휴대폰 모양을 눌러주시면이렇게 DeviceManager가 나옵니다 ! 거기서 Create Virtual Device를 눌러 주세요 ~ 저는 pixel 7 pro를 선택했어요 ~참고로 Play Store 표시 되어 있는걸로 하는걸 추천합니다 !  NEXT로 넘어가면 API36을 누릅니다.설치가 안되어 있다면 다운로드 하고 NEXT하면 됩니다 !  이제 원하는 AVD name을 적어주세요영어로 적는걸 추천합니다!Startup orientaion : Protrait 되어 있는거 확인해 주시고 Show Advanced Settings를 눌러주세요 !  이렇게 스크롤로 쭉 내리면 Internal storage가 나오는데 저희는 GB로 변경해줄게요저는 8GB로 설정해 주었..
Dart 3.0 핵심 정리 🔵 1. Records (레코드) - 여러 값 한 번에 묶는 기능 추가됨기존에는 여러 개의 값을 반환하려면 List, Map, class 같은 거 써야 했음.이제 Records(레코드) 기능이 추가돼서 더 간편하게 가능해짐!(String, int) getUser() { return ('Alice', 25);}void main() { var user = getUser(); print(user.$1); // Alice print(user.$2); // 25}✅ 이름 지정 가능해짐({String name, int age}) getUser() { return (name: 'Alice', age: 25);}void main() { var user = getUser(); print(user.name)..
Flutter를 배우는 이유 ! ✅ 한 번 개발하면 끝! (Single Codebase)앱을 만들 때마다 iOS, Android 코드 따로 써야 한다? NO!Flutter는 Dart 언어 하나로 모든 플랫폼을 커버할 수 있음.덕분에 개발 시간 절약 + 유지보수 편리 👌  ✅ 진짜 빠름 (Native Performance)Flutter는 네이티브 컴파일을 지원해서 앱 실행 속도가 굉장히 빠름!(React Native처럼 JS 브릿지 거치지 않음 🚀)  ✅ 바로 반영되는 코드 (Hot Reload)코드를 수정하면 앱에서 즉시 반영됨.버튼 하나 눌러보려고 앱 다시 실행할 필요 X개발 속도 ㄹㅇ 미쳤음 🔥  ✅ 화려한 UI 가능 (Customizable Widgets)iOS 스타일? Android 스타일? 둘 다 가능!Flutter는 자..
🚀 dart 비동기 (async & await) 1️⃣ Future - 미래에 받아올 값Future는 나중에 값이 도착하는 데이터를 의미ex) 서버 요청이나 일정 시간이 지나야 실행되는 작업에서 사용 void main() { Future name = Future.value('haroi'); addNumbers(1, 1); addNumbers(2, 2);} void addNumbers(int number1, int number2) async { print('🛠️ 계산 시작 : $number1 + $number2'); await Future.delayed(Duration(seconds:2), () { print('✅ 계산 완료 : $number1 + $number2 = ${number1 + number2}'); }); pr..
Dart의 Functional Programming 활용 1️⃣ List의 asMap(), toSet() void main() { List blackPink = ['로제', '지수', '리사', '제니', '제니']; print(blackPink); print(blackPink.asMap()); print(blackPink.toSet()); Map blackPinkMap = blackPink.asMap(); print(blackPinkMap.keys); print(blackPinkMap.values);}📝 실행 결과[로제, 지수, 리사, 제니, 제니]{0: 로제, 1: 지수, 2: 리사, 3: 제니, 4: 제니}{로제, 지수, 리사, 제니}(0, 1, 2, 3, 4)(로제, 지수, 리사, 제니, 제니) 📌 asMap()을 사용하면 인..
Flutter StatelessWidget, StatefulWidget과 상태 관리 1️⃣ StatelessWidget과 StatefulWidget  ✅ StatelessWidget (상태가 없는 위젯)StatelessWidget은 데이터를 변경할 수 없는 위젯 즉, 한 번 그려지면 변경되지 않는다.import 'package:flutter/material.dart';void main() { runApp(MyApp());}class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: Text('Stateless Example')), body: Cente..
Dart OOP (Object Oriented Programming) 🔹 1. 클래스와 인스턴스클래스를 정의하면 해당 클래스를 기반으로 인스턴스를 생성할 수 있다.class Idol { final String name; final List members; // 기본 생성자 Idol(this.name, this.members);}void main() { Idol blackpink = Idol('블랙핑크', ['지수', '제니', '리사', '로제']); print(blackpink.name); // 블랙핑크 출력}🔹 2. 생성자(Constructor)생성자는 객체를 만들 때 필요한 초기 값을 설정class Idol { final String name; final List members; // 기본 생성자 Idol(this.name, this.member..