전체 글 (45) 썸네일형 리스트형 Flutter) 지하철 도착 알림 앱 (2) 저번 포스팅에서 개요와 model에 대한 이야기를 했으므로 오늘은 MVVM 중 View 부분에 대해 포스팅하겠다.내가 원한 디자인인 요구 사항은1. 최근 검색기록 버튼이 있어서 해당 버튼으로 빠르게 검색- 어차피 출퇴근에서 환승이 없으므로 사실상 2개 역만 빠르게 검색하는게 중요했다. 퇴근 시간에는 안그래도 시간이 없는데 글자를 입력할 시간따윈 없다;; 2. 도착 정보 자동 갱신 타이머- 도착 정보 API에 횟수 제한이 있으므로 필요했다. 3. 내가 고른 열차 도착 정보 강조- 처음에는 별 생각 없었는데 호선이 많은 경우 내가 탈 지하철이 뭐 였는지 다시 보는것도 어려워서 필요했다. 검색 기록은 Sqlite를 사용해서 관리하였다. 검색 기록중 현재 시간과 가장 가까운 순으로 뜨도록 했다. (출근, 퇴근 .. Flutter) 지하철 도착 알림 앱 (1) 기존 프로젝트는 장기? 중단하고 지하철 도착 알림 앱을 만들기로 했다. 나는 평소 경준선(경의중앙선)을 이용하고 있다. 이 경준선이 매우 악랄한게 엄청난 배차간격 + 배차 우선 순위 매우 낮아 잦은 지연을 나를 정말 미치게한다.매우 화가난다 특히 출근시간이야 난 늘 여유롭게 가는 편이라 상관없지만 퇴근시간에는 내가 원하는 열차를 놓쳤다가 30분을 늦게 퇴근 하는 경우가 한두번이 아니였다. 그래서 화나서 내가 만들어서 보기로 했다 열린데이터광장 메인데이터분류,데이터검색,데이터활용data.seoul.go.kr 찾아보니 실시간 지하철 도착 정보 API를 이미 제공중이였다. 그래서 회원가입 후 키를 발급 받았다. 그 후 postman을 이용해서 테스트 요청을 넣어봤다 과거 해커톤에 나갔을때도 느꼈지만 공공AP.. Flutter) Riverpod 사용 정리 나만 보는용@riverpod 생성 명령어 - flutter pub run build_runner build 1. 익스텐션 설치 - Flutter Riverbed Sinppets - freezed (직렬화 snippets) 2. 의존성 추가 ## riverpod 패키지 flutter pub add flutter_riverpod flutter pub add riverpod_annotation flutter pub add dev:riverpod_generator flutter pub add dev:build_runner flutter pub add dev:custom_lint flutter pub add dev:riverpod_lint ##freezed (직렬화 코드 자동생성 패키지) flutter .. riverpod http 요청 예시 View///명렁어 실행/// flutter pub run build_runner buildimport 'package:dalant/pages/sample/test123.dart';import 'package:flutter/material.dart';import 'package:flutter/widgets.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';class Home extends ConsumerWidget { const Home({super.key}); @override Widget build(BuildContext context, ref) { final asyncCounterState = ref.watch(counterPr.. SharedPreferences가 갱신되지 않을 문제 FCM을 이용해서 로컬에 데이터를 저장 후 사용하려고하는데 분명 데이터를 수신했는데 데이터가 갱신되지 않는 문제가 있어서 해결하지 못하고 다른 방법으로 해결하였었다.... https://altongmon.tistory.com/1063 [Flutter/플러터] Firebase Messaging onMessage 에서 SharedPreferences 값 변경하는 방법Firebase Messaging 사용 시 푸시를 받았을 때 SharedPreferences 의 특정 값을 변경해줘야하는 경우가 생길 수 있는데요. 이 경우에 그냥 final sp = SharedPreferences.getInstance(); await sp.then(value) { value.setInt('temp',altongmon.tis.. 프로젝트 보고 5 대략 2주만에 포스팅이다.. 현재 프로젝트에서 크게 남은 과정은 2가지다. 1. 캐릭터 통계 제공 - Flutter의 경우는 크게 어려울 것이 없지만 서버쪽에서 캐릭터별 통계를 저장하는 부분에서 다소 난이도가 있다고 판단됨, 다만 어느정도 어느 부분에서 비동기, 동기로 코드를 돌릴 것인지에 대한 구상은 끝내둔 상태라 생각보다는 어려움이 적을 것 같음 2. 웹 소켓을 이용한 채팅 개인적으로 1번의 경우는 어려운것도 어려운것이지만 어느정도의 고생이 예상되서 그냥 하기가 조금은 꺼려졌다;;; 따라서 2번을 먼저 진행하였다. (업무였다면 이러지 않았겠지만 혼자하는 개인프로젝트에 어차피 둘다 내가 다 구현할껀데 그냥 원하는거 먼저하면서 스트레스를 받고싶지는 않았다.) 구현한 화면은 2가지로 채팅방 목록과 채팅방이.. FutureBuilder에서 SetState 에 문제가 있을 때 FutureBuilder에서 setState를 할때 FutterBuild의 Future 함수가 다시 실행될 때가 있다 HTML 삽입 미리보기할 수 없는 소스 해당 코드처럼 분명히 2개의 FutureBuilder를 각각 setState하였는데 원하지 않았는데 하나는 값이 변하고 하나는 변하지 않는다. 원인은 Flutter의 생명주기를 보면 알 수 있는데 setState를 하면 해당 위젯의 코드가 build() 부분부터 다시 실행된다. 따라서 FutureBuilder 또한 다시 빌드 되게 된다. 이때 FutureBuilder의 Future에 함수를 사용해서 직접 값을 넣어주면 해당 함수도 다시 실행되게 된다. 따라서 이 문제를 해결하려면 직접 함수를 전달해주는게 아니라 함수의 반환 값을 변수에 저장한 후에 .. 프로젝트 보고 4 1주일만에 쓰는 포스팅... 그래도 프로젝트 코딩은 하였다.. 캐릭터 이미지는 제외하고 대략 비슷하게 구현한 것 같다. 그 외 캐릭터 통계 UI가 있는데 이번 포스팅에서는 생략하겠다. 다만 이제 내가 이번 프로젝트를 진행하면서 배운점에 대해 써보겠다. 1. 처음에는 단순하게 게임사의 API사를 요청하고 백엔드로 DB 저장 및 클라이언트 전송만하면 이번 프로젝트는 끝일 것이라고 생각했다. 하지만 내 생각과는 다르게 게임사에서 제공하는 API의 데이터가 충분하지 않았다. 실제로 해당 이미지에서 계정의 시즌 정보를 요청하고 있는데 게임 계정의 '레벨'이 제공되지 않는다. 따라서 계정의 레벨을 얻기 위해서는 '게임 전적'안에 포함되어 있는 계정 레벨을 끌어와야한다. (게임 계정의 정보를 요청하면서 게임에 대한 .. 이전 1 2 3 4 5 6 다음