목록전체 글 (245)
말랑한 하루
🐇 custom shapes 🥕 ClipPath ※ reference : https://api.flutter.dev/flutter/widgets/ClipPath-class.html 직접 원하는 커스텀 도형을 만들어내고 싶다면, 위의 ClipPath reference를 활용해서 도전하라. 🥕 flutter_custom_clippers ※ reference : https://pub.dev/packages/flutter_custom_clippers/install 그러기에 다각형 도형을 구현하는 것에 너무 많은 비용이 든다 싶어 찾아낸 라이브러리다. 일반적으로 알려진 다양한 도형에 대해 얻고 싶다면, flutter_custom_clippers를 활용하는 것도 좋은 방법이다. flutter pub add flut..
🐇 intl, NumberFormat 숫자를 표현해야 하는 텍스트가 많았다. 방법을 찾다 보니, 이전에 DateFormat을 위해 설치했던 intl library에 NumberFormat이 존재했다. reference를 더 자세히 읽어보니 날짜/숫자 형식 지정을 지원하고 있었다. ※ reference : https://pub.dev/packages/intl intl의 NumberFormat을 활용해 내가 원하는 방식으로 다양하게 표현해보자. 🥕 콤마 구분 var mainFormatter = NumberFormat('#,###,###,###,###,###', 'ko_KR'); 🥕 소수점 구분 var percentFormatter = NumberFormat('###.##', 'en_US'); 🥕 한국 화폐 ..
앞선 내용들을 진행하면서 Container 제작에는 이제 무리가 없었다. 내가 해온 발자취를 참고하면서 만들어 가도 됐고, 충분히 간단한 내용들이었기 때문이다. 하지만, 특정 자료에서 필요한 데이터를 원하는 형식으로 재 가공하기엔 문법이 다양했다. 물론 JavaScript와 Dart가 엄청나게 비슷하지만, 내부 구현은 실질적으로 다른 부분이 많았기 때문이다. 그래서 스킬 페이지를 만들 땐 이런 부분에 신경 쓰면서 다루는 내용들이 많을 예정이다. 🐇 HashMap ※ reference : https://api.flutter.dev/flutter/dart-collection/HashMap-class.html 다양한 자료형을 key/value 쌍으로 묶어 편하게 관리할 수 있는 Class가 바로 Map이다. ..
Equipment에서 Item/Cash와 달리 PetSymbol 파트를 따로 바라보는 이유는, Item/Cash는 공용 베이스를 기반으로 화면을 꾸려나갔으나, PetSymbol은 새롭게 구성해야 했다. 작업을 하다 보니, 어떻게 진행했을 때 가장 효과적으로 진행할 수 있는지 깨달았고 그 순서에 맞춰 내가 배운 내용을 정리해보려고 한다. 🐇 Expanded Row/Column/Flex 같은 Widget과 함께 자주 사용하는 Expanded Widget이다. 가장 훌륭한 점이, 내 남은 화면의 공간을 전부 채울 수 있다는 장점이 있지만 Row/Column/Flex Widget 이외의 다른 Widget의 자식으로 사용될 경우 가장 많이 볼 수 있는 오류가 Incorrect use of ParentDataWid..
이제 아이템 디테일 페이지 제작이 마무리 단계에 다다랐다. 🐇 english font ※ reference : https://maplestory.nexon.com/Media/Font 영문이 아무리 봐도 인게임과 다르게 표시되는 것이 거슬렸다. 보통 인게임 내 글자는 Dodum, 돋움을 사용한다는 것으로 알려져 있었는데 영문은 찾을 수 없었다. 그런데 메이플스토리 공식 홈페이지 내 미디어/아트윅 부분에서 메이플스토리 서체 TTF를 받을 수 있었다. 이 서체를 적용하니 인게임 화면과 동일한 글씨체를 얻을 수 있었다. 메이플스토리 서체를 사용할 때는 다음과 같은 조건이 존재하니 조심하도록 하자. 🍒 메이플스토리 서체의 지적 재산권을 포함한 모든 권리는 ㈜넥슨코리아에 있습니다. 🍒 메이플스토리 서체는 개인 및 ..
지난 시간에는 오류를 해결하는 방법으로 SizedBox의 shrink method와 RichText 그리고 flutter_svg library에 대한 이야기를 진행했습니다. 이번 시간에는 equipment detail page 제작을 마무리하면서 발생한 내용에 대해 정리해보려 합니다.
지난 시간에 Equipment Detail Page를 제작하는데 관련된 이야기로 Router의 중첩구조와, SingleChildScrollView에 대해 이야기했습니다. 이번 시간에는 내부 구성요소를 만들어 가는데 발생한 이야기가 주를 이룹니다. 시작은 반갑게 오류를 만나면서 부터 입니다. ⚠️ The element type 'Null' can't be assigned to the list type 'Widget'. 이 옵션은 List type의 Widget에 NULL element가 들어갈 수 없음을 의미합니다. 그렇다면 우리는 어떻게 이 옵션을 만들 수 있을까요? 만약 Text를 Row위젯에 넣은 경우, Text내부에 String을 만드는 구조에서 시도하도록 변경하는 것을 추천합니다. 만약 Text에..
※ 본 애플리케이션에서는 사용자로부터 "개인 및 민감한 사용자 데이터"에 관한 정보를 수집하거나 저장하지 않습니다. ※ 본 애플리케이션에는 사용자로부터 "민감한 정보에 액세스하는 권한 및 API"에 대한 요청을 진행하지 않습니다. ※ 본 애플리케이션은 사용자의 기기, 기타 기기나 컴퓨터, 서버, 네트워크, API, 서비스를 방해, 중단, 손상시키거나 무단으로 액세스하지 않습니다. ※ 본 애플리케이션은 사용자를 속이거나 부정직한 행동을 조장하지 않습니다. ※ 본 애플리케이션은 개인이나 조직을 사칭하거나, 소유권/주요 목적을 허위로 표시하거나 은폐하지 않습니다. ※ 본 애플리케이션은 사용자를 오도하기 위해 조직적인 활동에 참여하는 콘텐츠를 제공하지 않습니다. ※ 본 애플리케이션은 정치, 사회 문제 또는 공적..