
Flutter 앱 개발 실전
₩143,000
중급이상 / Flutter
4.8
(25)
실전 Flutter 프로젝트를 진행하는데 필요한 경험과 노하우를 담은 수업입니다. 단순 구현을 넘어서 시각적으로, 데이터적으로 일관성 있고, 프로젝트가 커져도 지속가능한 서비스를 만드는 방법을 배울 수 있습니다.
중급이상
Flutter
1인 개발자로 활동하고 있는 DevStory입니다.
Flutter 앱 개발 실전
₩143,000
중급이상 / Flutter
4.8
(25)
실전 Flutter 프로젝트를 진행하는데 필요한 경험과 노하우를 담은 수업입니다. 단순 구현을 넘어서 시각적으로, 데이터적으로 일관성 있고, 프로젝트가 커져도 지속가능한 서비스를 만드는 방법을 배울 수 있습니다.
중급이상
Flutter
Flutter 앱 개발 기초
₩66,000
입문 / Flutter
5.0
(98)
Android와 iOS 앱을 하나의 코드로 만들 수 있는 Flutter를 여러가지 앱을 만들며 배우는 수업입니다. 기초 문법과 이론부터 실습까지 비전공자 왕초보 분들도 따라오실 수 있도록 준비했습니다.
입문
Flutter
질문&답변
vs code 자동 포맷팅
안녕하세요.Dart 3.7.0 버전부터 Dart Format 규칙이 변경되어 한 줄에 80글자가 넘지 않으면 콤마(,)를 삭제하고 한 줄로 변경됩니다. (후행 쉼표 관련 이슈)강의 자료는 Dart 3.6.0 기준으로 구현되어 있으며, 강의 자료와 동일하게 수강하고 싶으신 경우 pubspec.yaml 파일에서 environment의 sdk 버전을 아래와 같이 변경하시면 됩니다.environment: # before # sdk: ^3.7.0 # after sdk: '>=3.1.3 이 내용은 강의자료 1회차 > 04. 로그인 페이지 만들기 > 1) Scaffold & Text 파트에 작성되어 있으니 참고해 주세요 🙂오픈 카카오톡은 여기로 문의주시면 됩니다.감사합니다.
질문&답변
디자인 시스템 구성에 대해 질문 드립니다
안녕하세요 Ben Kim님Flutter에서 기기의 회전 상태는 MediaQuery.of(context).orientation 코드를 이용하여 확인할 수 있습니다. 이를 이용하여 다양하게 구현 하실 수 있는데, 한 가지 예시로 강의에서 사용한 context.layout() 함수에 Orientation 매개변수를 추가하면 다음과 같습니다.import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: Scaffold( appBar: AppBar(), body: context.layout( (orientation) => Text("Default $orientation"), mobile: (orientation) => Text("Mobile : $orientation"), desktop: (orientation) => Text("Desktop : $orientation"), tablet: (orientation) => Text("Tablet : $orientation"), ), ), ); } } abstract class Breakpoints { /// Device max width static const double mobile = 600; static const double tablet = 1000; static const double desktop = 1190; /// BottomSheet max width static const double bottomSheet = 600; } extension LayoutExt on BuildContext { /// Screen size Size get screenSize => MediaQuery.of(this).size; Orientation get orientation => MediaQuery.of(this).orientation; /// Responsive layout T layout( T Function(Orientation orientation) base, { T Function(Orientation orientation)? mobile, T Function(Orientation orientation)? tablet, T Function(Orientation orientation)? desktop, }) { if (screenSize.width 강의에서 다룬 것과 같이 UI 기획상 가로 모드와 새로 모드의 차이가 어느 정도인지에 따라 위젯을 분리하는 기준이 달라질 수 있으며, 한 파일에 모두 구현하기 보단 유지보수를 위해 별도 위젯으로 나누는 것을 권장드립니다.감사합니다 🙂
질문&답변
CartItem 추가시
안녕하세요 chjcmy님괜찮다의 조건이 어떤 건지에 따라 달라질 수 있는데, 강의에선 말씀해 주신 것과 같이 사용하고 있습니다.[강의에서 사용하는 Provider 코드](사진)[Riverpod 버전에서 사용하는 코드](사진) 감사합니다 🙂
질문&답변
const 커스텀클래스
안녕하세요const가 붙은 경우에는 컴파일 타임에 연산이 끝나고 완전 불변 객체로 다뤄지기 때문에 내부에 final로 선언된 배열이 있어도 해당 속성에 원소를 변경하는게 불가능합니다.아래 예제를 보시면, const가 붙은 경우에는 내부 속성에 add() 함수를 호출 할 수 없습니다.DartPad 링크에서 해당 코드를 실행해 보실 수 있습니다.void main() { try { const family = Family(["mom"]); family.members.add("dad"); print(family.members); } catch (e) { print(e.toString()); // Unsupported operation: add } final family = Family(["mom"]); family.members.add("dad"); print(family.members); // [mom, dad] } class Family { final List members; const Family(this.members); }감사합니다 :)
질문&답변
Dart 문법 실습문제 풀고 있는데요
안녕하세요 웅이님실습 자료는 강의 이상의 추가적인 학습을 할 수 있도록 드린 자료이며, 개발자라면 필연적으로 만나는 모르는 것을 검색하는 행위를 할 수 밖에 없도록 유도되어 있습니다.또한 강의에서 제공하는 문제는 프로그래밍 실력을 테스트하기 위함이 아닙니다. 강의 내용에 추가적으로 Dart의 활용 케이스를 볼 수 있도록 제공드리는 자료이며 학습하시면서 내가 무엇을 몰랐는지 발견하셨다면, 동작과 원리를 이해하고 앞으로 필요하신 경우 활용하시면 됩니다.int totalPrice(List> cart) { int result = 0; for (Map item in cart) { int price = item["price"] as int; int count = item["count"] as int; result += price * count; } return result; }선언하지도 않은 item이라는 변수를 가지고 오는 것위 코드에서 for in 문을 다루는데 for (Map item in cart) 이 부분은 cart의 요소를 꺼내어 item이라는 변수에 할당하는 선언으로 보심이 맞습니다.대략 이런식의 선언이라고 보시면 됩니다. Map item = cart의 첫 번째 항목item은 변수 이름이니 마음대로 다른 이름을 쓰셔도 무방하지요. 그리고 중괄호 안쪽이 cart 아이템의 개수 만큼 반복 실행되며, item에는 각 순차에 해당하는 cart의 원소가 매번 할당됩니다.as 로 타입을 캐스팅 하는 것Dart에는 타입을 변환하는 다양한 방법들이 있습니다. 위 예제에선 dynamic 타입을 int로 변환하는 한 가지 방법을 소개해 드린 것으로 이해하시면 됩니다. 학습하시다 보면 이해가 안되는 것들을 많이 만나게 됩니다. 수많은 선행 지식들이 숨어있는데 내가 무엇을 모르는지 모르는 경우 그럴 수 있는데, 검색해 보시고 그래도 모르면 지금처럼 질문을 주세요. 또한 지금 당장 필요한 것이 아니라면 어딘가 기록해 두시면 나중에 봤을 때 이해되는 경우들도 있습니다.전체적인 지도가 그려지지 않은 처음에는 실습자료를 모두 스킵하시고 쭉 강의를 수강해 주세요. 이후 내가 만들고 싶은게 있다면 바로 해당 프로젝트를 진행해 보시고 그 과정에서 실습 자료들을 참고하면서 학습하시는 방법도 좋습니다.
질문&답변
강의 수강 기간 연장 요청드립니다.
안녕하세요.기초와 실전 강의 모두 수강 기한을 연장해 드렸습니다.기간이 만료된 뒤에도 괜찮으니 필요하실 때 언제든지 연장 요청 주세요 🙂 감사합니다.
질문&답변
전 리팩터 기능이 안됩니다
안녕하세요.링크를 참고하여 두 가지 답변을 따라해 보시고 그래도 해결이 안되시는 경우 카톡으로 문의 주세요.감사합니다 🙂
질문&답변
flutter 에뮬레이터 실행 에러
C:\계정명\.gradle 폴더를 삭제하신 뒤 재식하여 문제를 해결하였습니다 🙂 참고 글https://codejinjinh.tistory.com/275https://stackoverflow.com/questions/31743942/errorunexpected-lock-protocol-found-in-lock-file-expected-3-found-0
질문&답변
flutter 에뮬레이터 실행 에러
안녕하세요.원인 파악을 위해 vscode terminal이나 명령 프롬프트에서 flutter doctor 명령어를 실행한 결과를 첨부 부탁드립니다. 더 빠른 도움이 필요하신 경우 팀뷰어를 설치하신 뒤 링크로 문의주세요.감사합니다 :)
질문&답변
코드 생성기 - 실습 build runner 안 되는 분.
안녕하세요.강의자료 05. 코드 생성기 → 실습 준비 → 1번에 코드스니펫으로 다음 명령어가 제공되고 있습니다.dart pub add -d freezed build_runner json_serializable25.01.07 기준 최신 버전인 flutter 3.27.1에서 위 명령어를 실행하는 경우 아래와 같이 freezed: ^2.5.8 버전이 설치됩니다.(사진)설치할 때 사용하신 명령어 또는 사용하고 계신 flutter 버전을 확인해 보시기 바랍니다.flutter 버전은 flutter --version 명령어를 통해 확인할 수 있습니다.(사진)이후에도 동일한 문제가 발생하신다면, 문제 재현 방법을 공유해 주시면 확인해 보도록 하겠습니다.문제 제보 및 해결 방법 공유 감사합니다 :)