Flutter/캠프

음악앱을 만들때 가사로도 검색을 하고 싶어서 찾아보는데 이전에 사용한 Maniadb에서는 가사로 검색은 지원하지 않았다. 그래서 노래 가사 검색 api를 찾아보는데 다른 곳은 유료거나 특수한 조건을 만족해야 사용할 수 있었다. 그런데 아래의 블로그에서는 네이버 가사 검색 기능을 이용해서 가사검색 기능을 만들었다.https://cheongpark.tistory.com/2 네이버의 가사 검색 API 가져오기주의 전문적인 지식이 없이 진행하기 때문에 이 내용은 확실하지 않을 수 있습니다!네이버엔 가사를 입력해 음악을 찾을 수 있는 서비스가 있다. 일단 왜 이것을 하게 되었는지 부터...저번에cheongpark.tistory.comnaver에서 정식으로 제공하는 api가 아닌 검색사이트에서 받는 데이터 구조를..

음악 정보를 가져오는 api를 찾던중에 maniadb라는 곳을 발견했다. 여기서 음악의 정보를 가져오려고 보는데 JSON이 아니라 XML로 API 통신으로 하고 있었다. 하지만 원하는 정보를 제공하는 API 중에서 사용에 큰 제약이 없어서 ManiaDB를 사용하기로 결정했다.XML우선 XML이 무엇인지 알아야한다. XML은 eXtensible Markup Language의 약자로 데이터를 정의하는 규칙을 제공하는 마크업 언어로, 태그를 사용하여 데이터 속성과 실제 데이터를 구분합니다. John Doe María García Nikki Wolf 구조 예시를 보시면 HTML과 유사한 것을 볼 수 있는데 개발한 회사에서 직렬화를 위해서 만든 도구이기 때문입니다. 그러면 XM..

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


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

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..

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


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


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


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