우리는 개발을 하다보면 계속해서 쓰는 코드 뭉치들이 생긴다. 보통은 아주 디테일한 단위의 경우 프로젝트에 common 패키지로 만들어서 보통 관리를 하고 여러 프로젝트에서 공유하는 큰 단위의 코드를 계속해서 만들어 내야하는 경우지만 기존 패키지에서 지원하지 않는 경우 VSCode에서 제공하는 스니펫을 활용하면 된다. 모바일 앱개발의 경우 StatelessWidget 이나 GetXController, GetMiddle 웨어 정도를 만들 때 보통 활용하곤 하면 된다. cmd+shift+p를 눌러서 Vscode 서치 옵션 키기 > snippets 검색 > 원하는 언어나 프로젝트 범위 클릭(저는 dart) > json 파일에 코드 복붙하고 줄마다 쌍따움표와 , 추가 후 저장하면 바로 사용할 수 있습니다. ENG..
생년월일을 찾는다거나 캘린더 가지고 무언가를 할 때 임의로 validator를 만들어야할 때가 있다. 입력한 숫자가 해당월을 넘는지 확인하고 싶다면 다음과 코드를 사용해라 ENG Sometimes, when you need to retrieve a person's birthdate or perform tasks involving a calendar, you may need to create a custom validator. If you want to check if a given number exceeds the number of days in a specific month, you can use the following code: DateTime(YYYY, month + 1, 0).day // 조건문..
유저들에게 어떠한 브랜드나 장소에 대한 상세정보를 제공하려고 하다보면 꼭 해야되는 것들이 있으니, 전화번호 연결과 링크이동이다. 아래처럼 하면 된다. ENG When providing detailed information to users about a brand or a location, there are certain essential actions that need to be included: connecting via phone call and navigating through a link. Here's how you can do it: launchUrl(Uri( scheme: 'tel', path: 'phone number',)); // 전화 걸기 launchUrl(Uri.parse('url'))..
아래처럼 하면 스트링에서 숫자만 빼올 수 있다. 코드를 깨끗하게 유지하기 위해서 왠만하면 공용함수로 만들어서 쓰는게 더 좋다. ENG The following approach allows you to extract only numbers from a string. It is advisable to create a reusable function whenever possible for better code organization and maintainability originalString = '123oct7'; // 과정 코드 numberString = originalString.replaceAll(new RegExp(r'[^0-9]'),''); // -> '1237' number = int.parse(..
앱개발을 하는 학생부터 실무자까지 프로젝트 마지막에야 부랴부랴 적용하는 것이 있으니, 그게 바로 애널리틱스 세팅 되시겠다. 여기서 애널리틱스란? 앱/웹의 특정 지점 혹은 세션에 측정 장치를 설치해두고, 유저들이 장치들을 지나가면 그걸 측정하는 것이다. 우리는 웹/앱 서비스 사용자 데이터를 기반으로 한 애널리틱스를 통해서 다양한 지표들을 얻을 수 있다. 유저의 사용데이터를 기록하지 않고, 내 앱을 어떻게 사용하고 있는지 알 수 있는가? 물론, 팀 내에서 내부테스팅을 하며 의견을 교류할 수 있고, 지인 정도까지는 써본 경험을 공유받을 수도 있다. 그럼, 유저들의 사용경험은 어떻게 공유받을 것인가? 그러는 나는 앱 리뷰를 달아본 적이 몇번이나 있는가? 유저들의 리뷰 표본은 실제 사용자들보다 턱없이 적다. 리뷰..
수년간 iOS/Flutter 개발자로 현업을 이어오고 있다. 21년 초, Flutter로 넘어오면서 큰 프로젝트의 메인으로써 개발을 이어나가다 보니, SwiftUI와 UIKit 과도기 사이에서 SwiftUI로 넘어오지 않고 Flutter 개발에 집중하고 있었다. 이제는 앱도 출시됐고, 앞으로 iOS AR 개발을 해 나가야된다. Flutter에서 PlatformView를 통해서 AR을 띄울 화면을 개발해야하기 때문에 AR개발에 앞서 SwiftUI을 적응하고자 한다. 사실 PlatformView에서 SwiftUI가 작동하는지 여부는 확인하지 않았다. SwiftUI도 이제는 3년차의 프레임워크이기 때문에 별다른 조사 없이 공부를 시작한다. (안되면, UIKit 사용하지 뭐..) 이번엔, 간단하게 모바일앱에서의..
GestureDetector란? 이름에서 알 수 있듯이, GestureDetector는 제스쳐를 총 컨트롤하는 위젯이다. 위젯의 Child가 무엇이든 사용자와 상호작용할 수 있도록 해주는데, 상호작용이 많은 내 코드를 깔끔하게 만들어주는 주역이다. 일부기능만을 사용하는 Inkwell/IconButton 위젯 등도 존재하는데, 이렇게 파생된 경우 상호작용 가능한 지표(드래그/탭 등)는 제한적이나 스플래쉬/하이라이트 컬러 등이 있는 등 적절히 사용한다면 프로그램을 맛있게 만들 수 있는 애니메이션 요소들이 포함되어있다. 하지만, 기본 애니메이션이 필요치 않은 경우 메모리 누수나 코드의 일관성 측면에서 왠만하면 GestureDetector를 사용한다. GestureDetector에서 제공하는 기능 제공하는 기능..
기본 라이브러리 중에 하나인 services.dart에 포함되어 있는 함수이다. 보통 우리는 눌러서 주소를 복사하거나 전화번호를 저장하는 용도로만 사용하기 때문에 그냥 이것 복사해서 쓰면된다. Clipboard.setData(ClipboardData(text: '저장할 텍스트'));