Flutter/캠프 17

Flutter 숙련_개인프로젝트: 지역 검색 앱

1. Lint 수정 예전부터 flutter 과제나 강의 실습을 할 때 const를 사용하라는 파란 줄이 뜨는 것이 거슬렸다. 다른 것을 검색하다가 Lint를 수정해서 없애는 방법을 찾게 되었다. 우선 Lint가 무엇이냐,  코드의 스타일을 통일하고 잠재적인 버그를 찾기 위해 정해놓는 규칙들이다. 그러면 왜 const를 사용하라고 하는 걸까?먼저 const는 상수이다. 상수는 변하지 않는 값이라는 뜻으로 변하는 값인 var과 반대되는 뜻을 가진다. 그러면 const를 사용하면 어떤 점이 좋을까. const를 사용하면 위젯의 값이 변하지 않게 되고, 이를 명시해놓으니 랜더링 할 때 불필요한 자원과 시간을 절약할 수 있게 된다. 그래서 const사용을 권장하기 위해 lint에서는 파란 줄로 알려주는 것이다. ..

Flutter/캠프 2024.12.09

24.12.02 Today Error

1. Firebase Update 실패강의를 따라서 CRUD의 CRD는 완성하고 U를 마지막으로 하고 있었는데, 오류가 발생했다.null타입은 String타입에 서브타입이 아니라는 문구였다. 분명 잘 따라 한거같았는데 정말 당황했다. 영상을 다시 돌려보면서 빠진것을 찾아보았지만 알 수 없었다. 그래서 지금 저 오류가 어디 코드에서 실행되는 것인지 찾아봤다.예전에 튜터님에게 질문을 한적이 있었는데 디버깅 방법을 알려주셨었다. 데이터의 순서를 따라가면서 오류가 난 위치를 찾는 것이다.다행히 함수에 try catch문을 감싸 놔서 하나하나 print문으로 넣어서 같이 출력되는 함수를 찾았다.다른 곳이 아닌 Update함수 부분에서 오류가 나고 있다는 것을 알게 되었다. 그곳에서의 함수를 비교를 해보니 바뀐 데..

Flutter/캠프 2024.12.02

24.11.29 오늘 있었던 오류들

1. firebase CLI 연동 과정 중 문제 파이베이스를 CLI로 연동하는 과정에서 아래의 코드를 치고 난 후 문제가 발생함dart pub global activate flutterfire_cli   아래의 글이 나오면서 실행이 안되었다. Warning: Pub installs executables into $HOME/.pub-cache/bin, which is not on your path.You can fix that by adding this to your shell's config file (.bashrc, .bash_profile, etc.): export PATH="$PATH":"$HOME/.pub-cache/bin" 글을 읽어보자. 내 경로에 인식이 안되고 있다고 하고 있었다.  htt..

Flutter/캠프 2024.11.29

flutter(기초 팀프로젝트) : 화면 전환시 추가된 정보 바로 적용하기

처음에 리스트를 추가하는 화면에서 정보를 입력하고 추가하면 리스트에는 정보가 추가 되었는데, 메인화면에는 바로 추가된 정보가 적용되니 않고 검색 기능을 이용하고 난 후에 추가된 정보가 보이는 문제가 있었다. 이를 해결하기 위해서 검색을 해보았다. https://usedpaper.tistory.com/63 flutter 페이지 뒤로 갔을때 새로고침 하는 방법.Navigator.push에서 then을 추가하고 setState를 적용한다. setState가 실행됨에 따라 새로고침이 되는 방식이다. 이동된 페이지에선 Navigator.pop을 해주면 된다. Navigator.push(context, MaterialPageRoute(builder: (contexusedpaper.tistory.com  처음에는 위..

Flutter/캠프 2024.11.28

flutter(기초 팀프로젝트) : 검색 기능

쇼핑몰 앱을 만드는 프로젝트에서 여려웠던 기능 몇가지를 정리 하려고 합니다. 첫번째는 바로 검색 기능입니다.검색을 하는데 있어서 사용하는 정보는 아래의 코드의 형식으로 리스트 페이지에 정의 되어있습니다. List album = [ Album( imagePath: 'assets/images/peppertones.jpg', song: '행운을 빌어요', artist: '페퍼톤스', price: 30000, description: ''), ]; 검색을 하는데 이용하는 위젯은 아래의 코드입니다.//검색바 위젯Padding search_bar() { return Padding( padding: EdgeInsets.all(20), ..

Flutter/캠프 2024.11.27

ListView를 이용한 화면 구성

ListView 기차 앱의 마지막 화면으로 좌석을 선택하는 화면을 만들었다. 이때 선택하는 좌석 부분을 ListView로 구성을 해야했다. 역을 선택하는 화면에서 ListView를 이용했었다. 그래서 쉽게 구성할 것이라고 생각을 했었다. 하지만 이번에는 화면에 ListVeiw로만 구성하는 것이 아니라 다른 구성요소들 사이에 ListView를 넣는 것이었다.                 처음에는 이렇게 했다. 화면을 보면 좌석이 좌우 2줄씩 총 4줄로 구성되어있다. 그래서 세로줄로 된 위젯을 만들고 이것을 가로로 나열 하려고 코드를 짰다.그렇게 하니 리스트뷰를 포함해서 화면 하단의 버튼도 같이 나오지 않는 문제가 발생했다. ListView의 영역이 정해지지 않아서 오류가 발생한거같아 화면에 padding,..

Flutter/캠프 2024.11.19

화면 전환 시 정보 전달 2(push-pop)

저번시간에 push를 통해서 리스트에서 선택하는 역이 출발하는 역인지 도착하는 역인지 정보를 넘겼었다.onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => StationListPage('$label'), ), ); },      onTap, 클릭이 되었을 때 실행되는 코드를 짜놓은 것이다. 저 코드를 이미 짜놓고 역을 클릭 했을 때 넘기는 정보도 같은 방식으로 진행하려고 했다. 그래서 같은 Navgiator.push를 써서 코드를 짜보았다. 그러자 코드에서 계속 오류가 발생했다. 오류를 해결하기 위해서 인터넷에 onTa..

Flutter/캠프 2024.11.18

화면 전환 시 정보 전달1

오늘은 화면을 전활 할때 정보를 다음 화면에 정보를 전달하는 과정을 연습했다.  왼쪽의 화면에서 출발역과, 도착역을 클릭하면 '출발역', '도착역'이라는 글 정보를 오른쪽으로 넘겨서 상단에 표시할 수 있는 기능이다. 우선 하얀 사자 안에 글씨를 구성하는 코드이다. GestureDetector label(String label, String? station) { return GestureDetector( onTap: () { Navigator.push( context, MaterialPageRoute( builder: (context) => StationListPage('$label'), ), );..

Flutter/캠프 2024.11.15

24.11.11

오늘은 dart를 넘어서 flutter를 공부하기 시작했다. dart는 개발언어로 기초를 배우는 느낌이라서 재미가 덜했지만 에뮬레이터를 돌리면서 코드로 짠 화면이 핸드폰 화면에 보여지는 것은 확실히 언어만을 공부할때보다 재밌다. 오늘은 앱 파일을 다운로드 후에 실해하는 과정에서 포함된 라이브러리 패키지가 제대로 인식이 안되는 문제가 발생했다. 해결하기 위해서 몇가지를 실행해보았다. 1. 필요한 패키지 설치하기.패키지가 설치 안되어있는 줄 알고 새로 설치하려고 보니, 패키지는 제대로 설치가 되어있었다. 2. 제설치 하기패키지 파일들을 호환성 문제인가 싶어서 문제를 해결하기 위해서 전체 업그레이드를 진행했다. 업데이트를 실시하고 자동으로 flutter doctor에서 문제가 없음을 확인했다. 3. 프로젝트 ..

Flutter/캠프 2024.11.11

CLI 프로젝트 어려웠던점

1. 여러 몬스터의 정보를 읽어오기.첫번째로 맞닦들였던 문제는 몬스터의 정보를 가져오는 것이였다.몬스터의 정보는 하나였던 캐릭터와는 다르게 여러 마리이기 때문에 파일을 두번 나눠서 읽었어야했다.처음부터 파일의 주소에서 정보를 읽어오고나서, 각 몬스터들이 정보로 나누기 위해서 \n를 인식해서 나눠줬다.그리고 각 정보를 몬스터의 속성에 입력해주기위해서 몬스터들의 수만큼 반복문을 돌려서 입력해주고 입력한 몬스터 객채를 다시 monsters라는 리스트에 추가해서 사용했다. 처음에는 character처럼 불러오려다가 이중 리스트인데 어떻게 해야 각 속성에 매치해서 초기화 할 수 있을까 매우 고민했다. 그러다가 반복문을 사용해서 끊었던 list 하나의 정보를 요소로 만들고 다시 이중 리스트에 넣어서 사용하는 방법을..

Flutter/캠프 2024.11.07