본문 바로가기

전체 글

(45)
LadyBug 제작 (2) 첫 포스팅에서는 캐릭터를 그리고 조이스틱을 통해 이동 시켜보겠습니다.조이스틱 추가를 위해 해당 패키지를 추가합니다. flutter_joystick | Flutter packageA virtual joystick widget for Flutter applications. Highly flexible and customizable.pub.dev 애니메이션이 핵심인데 포스팅으로 다루기엔 양이 제법 많아 주요 코드만 다루고 그 외에는 Github을 참고해주세요.(1일차는 이전에 작성해둔 코드 때문에 포스팅에서 추가된 코드가 있습니다.) 화면에 플레이어와 조이스틱을 추가합니다.   _updatePosition 함수는 조이스틱의 이동 값을 계산하여 플레이어를 이동 시키는 _animateToPosition 함수를 호..
LadyBug 제작 (1) 최근 Flutter CustomPainter를 공부하던 중 뭔가를 만들면서 공부하면 재밌겠다는 생각을 했습니다.그렇게 생각하던중 joustick이라는 딱 봐도 재밌어 보이는 패키지를 발견했습니다. flutter_joystick | Flutter packageA virtual joystick widget for Flutter applications. Highly flexible and customizable.pub.dev 그래서 간단한 조작이 가능하고 뭔가가 생성되는 게임을 만들어 보자는 생각이 들어서 스마트폰 1세대 게임인 레이디 버그를 간단하게 만들어볼까합니다.  최대한 비슷하게 구현하는 것도 재밌겠지만 Flutter 자체의 공부를 하는 것이 제일 중요한 목적이기에 Flutter 게임 제막 엔진인 Fl..
Flutter) env파일을 암호화가 될까? Flutter를 이용해서 개발을 하다보면 env파일을 생성하여 주요 Key값들을 보관하게 됩니다.이유는 주로 다음과 같은데 1. Github에 공개적으로 업로드 하는 경우2. Store에 배포할껀데 암호화를 하고 싶은 경우 1번의 경우는 env파일 자체가 암호화 되지 않아도 업로드만 하지 않으면 되기 때문에 문제가 없지만2번처럼 보안을 강화하기 위해라면 진짜 큰일이 날 수도 있습니다.  Why not to use dotenv on flutterAlmost all developers have used dotenv at least once. Environment variables really help us to manage projects when we have more than one…systemweakn..
Flutter) 비동기 요청을 병렬로 처리하기 우리가 Flutter를 이용해서 비동기 코드를 10개 실행한 후 페이지가 로딩되기를 원한다고 생각해봅시다.  예를 들어 다음 사진과 같이 5개의 뉴스 데이터를 불러와야하는 상황일 때 가장 좋은 상황은 1번의 요청으로 서버에서 5개의 데이터를 한번에 몽땅 내려주는 상황일 겁니다. 하지만 Firebase를 사용한다는가, 뭔가 특수한 상황에서는 각각을 요청하기 위해 5번의 요청을 보내할지도 모릅니다. (참고로 저는 Firebase때문에 해당 상황이 발생했습니다 ㅋㅋ;) 각각의 요청을 총 5번 비동기로 요청하는 코드를 작성하면 다음과 같습니다. dartpad에서 실행하여 다소 오차는 있지만 대략적으로 각각 5번을 실행했을 때 5초정도가 소요되는걸 확인할 수 있습니다. 이제  해당 코드를 이용해서 병렬로 처리해봅..
앱스토어, 플레이스토어 개발 시 리젝 사유 이번에 회사에서 Flutter로 제작하면서 AppStore와 PlayStore에 앱을 런칭하였습니다.런칭하면서 많은 리젝을 당했었는데 해당 리젝 사유들을 정리해볼까 합니다. 1. 앱에 버그가 없어어야함- 사실 당연한 이야기입니다. 스토어내의 앱 퀄리티 유지를 위해서 앱 자체에는 버그가 없어야합니다. 2. 네트워크 사용 앱은 네트워크 지연, 해제등의 예외처리가 되어야함- 1번과 연결되는 이야기로 네트워크에 관한 예외처리도 모두 완료되어야 합니다. 확실하지는 않지만 AppStore의 경우 매 심사마다 사람이 일일히 진행하는 것 같은데 시간대가 한국 시간대가 아닌 미국 시간대 같았습니다. 그러므로 저속 네트워크 상태도 어느정도 감안해야합니다. 3. 커뮤니티 기능 내장 시 차단, 신고 기능이 있어야함- 저는 앱..
riverpod을 사용한 MVVM 예제를 작성해보자 riverpod를 이용해서  API통신을 곁들인 MVVM 예제를 작성해보겠습니다. 코드가 길어질 것 같아 MVVM에 대한 개념은 생략하겠습니다. 매우 간단하게 설명하면 UI 그리는 View파일, 비즈니스 로직들어가는 ViewModel, 데이터 파싱하는 Model 파일 3개로 나눠서 코딩해주시면 됩니다. flutter pub add flutter_riverpoddart pub add riverpod_generatorflutter pub add riverpod_annotationdart pub add dioflutter pub add freezed_annotationflutter pub add dev:build_runnerflutter pub add dev:freezedflutter pub add json_..
Flutter) 지하철 도착 알림 앱 (3) 이번 포스팅에선 사실상 이번 프로젝트의 핵심인 viewModel에 대해서 설명하겠다. 코드는 크게 3부분으로 나누어져있다.1. API 통신2. Sqlite3. riverpod 크게 특별할 것 없이 통신에는 DIO 페키지를 사용하였고 riverpod 클래스 안에서 선언할까 했었는데 따로 클래스를 분리하여 작성하였다. SQLite 또한 별도의 클래스에 작성하였다. 간략하게 구성을 설명하면1.  선언부분2. db 파일 불러오기 (없을 시 자동 생성)3. 검색기록 추가 및 갱신4. 검색 목록 가져오기, 삭제 특별할 것 없지만 내가 신경쓴 부분이 1가지 있는데 위의 캡쳐 부분이다.출퇴근 시 사용 할 것이므로, 현재 시간과 비교할 때 날짜를 제외하고 오로지 시간만 비교하도록 하였다.큰 부분은 아니지만 나름 신경써봤..
Go_router에 URL 전달하기 다음과 같이 Go_router에 url과 같은 매게변수를 다음과 같은 형태로 전달하면 제대로 작동하지 않는다.사실 이는 간단한 문제로 URL에 있는 특수 문자 때문에 Go_router가  변수를 제대로 인식하지 못하는것이다  따라서 다음과 같이 URL에 존재하는 특수 문자를 변환 후 사용하면 된다.