Development/Dart&Flutter 5

[Flutter] 운동용 Interval Timer 앱 개발

개요내가 필요한데다, 난이도도 적당해보여 만들어보기로 했다. 파일네이밍규칙w_{name}.dartWidgets_{name}.dartScreen -> 전체 디바이스를 덮는 화면f_{name}.dartFragment -> Screen 내부에 일부로 존재하는 큰 화면d_{name}.dartDialog -> Dialog 또는 Bottom Sheetvo_{name}.dartValue Object -> UI에서 사용하는 객체dto_{name}.dartData Transfer Object -> 통신/데이터 저장에 사용되는 객체그외소문자+숫자+_ 조합장점: 파일이름 짧아지고, 파일명 정렬시 한눈에 보이며, 해당 파일의 UI내 역할을 파일명으로 이해가능. 개발단계 레이아웃 와꾸잡기Main 화면은, Column 4개 및 ..

[Flame] Klondike 3 - 카드 상호작용 구현

https://docs.flame-engine.org/main/tutorials/klondike/step4.html  Piles 구현(=> 유희왕 덱)클래스 리팩토링common feature를 common한 API로 구현하기 위해, Pile class로 붂음.Stock -> StockPileWaste -> WastePileFoundation -> FoundationPilePile -> TableauPile구현사양StockPile좌상단에 위치함.뒷면으로 쌓여있으며, 터치시 3장을 뽑아 앞면으로 돌리고, Waste로 옮김바닥나면 바닥을 드러냄.다 닳으면, Waste를 다시 Stock에 넣고 셔플. FoundationPile우상단에 위치A부터 K까지 sequential하게 쌓아야 함.쌓인 카드를 유지해야 함...

[Flame] Klondlike 2 - 카드 렌더링 구현

https://docs.flame-engine.org/main/tutorials/klondike/step3.html Card 구조체트럼프 Card는앞/뒷면 bool 변수가 있어야 함.rank가 있어야 함(숫자)suit가 있어야 함(도형)각 구현은 enum 또는 무지성 int로 할 수 있음.rank는 대소비교가 필요하므로, int가 좋을듯.도형은 대소관계가 없으므로, suit가 좋을듯.이 게임에서는 도형의 서열은 없으니까.단지 도형이 같은지 여부만 확인하면 됨. Suit 구현부모없는 immutable로 선언.immutable: 인스턴스화 이후에 어떠한 멤버변수도 바꿀 수 없음Factory 생성자 만들자. singleton 쓰려고.매번 object를 생성하지 말고, 매번 pre-build object를 반환..

[Flame] Klondlike 1 - World 레이아웃 구현

https://docs.flame-engine.org/main/tutorials/klondike/step2.html onLoad -> Flutter widget tree에 game instance가 call될 때, 호출됨.현재는 그냥 sprite image만 띄우도록 하고 있음.반드시 load를 보장하기 위해, await을 붙였다. await Flame.images.load('klondike-sprites.png'); 로드 된 이후, fromCache를 통해 sprite의 빠른 호출이 가능함. Flame.images.fromCache('klondike-sprites.png'),  Game component treeComponent를 KlondlikeGame 클래스에 넣으면, Game compo..

[Flame] Assertion failed: overlay_manager.dart:51:7 - overlay 오타를 살펴보라.

https://docs.flame-engine.org/latest/tutorials/platformer/platformer.html 를 따라가고 있다.  원인이 어처구니가 없는데, 아래는 옳게된 버전이다.import 'package:ember_quest/overlays/game_over.dart';import 'package:ember_quest/overlays/main_menu.dart';import 'package:flame/game.dart';import 'package:flutter/widgets.dart';import 'ember_quest.dart';void main() { runApp( GameWidget.controlled( gameFactory: EmberQuestGame..