분류 전체보기 35

Firebase 쉽게 연결하기

이전에는 fireabase에 들어가서 시키는데로 하나하나 진행하면서 파일을 생성하고 복잡한 과정을 통해서 연결을 진행했다. 하지만 그렇게 하지 않고 좀 더 쉽게 하는 방법이 있어서 정리해보려고 한다. Firebase consloe에서 프로젝트 만들기Flutter에 firebase연동Firebase CLI설치(Fireabase연동을 쉽게 할 수 있게 도와주는 도구)윈도우 : (https://firebase.google.com/docs/cli) 링크에서 설치파일다운맥 : curl -sL https://firebase.tools | bash 터미널에서 명령어 입력Terminal에서 firebase Login 입력 후 로그인입력하면 약관동의 입력모드 나오면 y 누르고 엔터 치면 브라우저에서 구글 계정 선택창 열..

Flutter 2024.12.20

Navigation VS GoRounter

화면 전환을 할 때 길을 알려주는 것을 Navigation이라고 합니다. Flutter에서는 다양한 방법으로 화면 전환을 구현할 수 있으며, 그 중 두 가지 주요 방법은 Navigator와 GoRouter입니다. 이 글에서는 두 네비게이션 방법의 특징과 장단점을 비교하여, 어떤 상황에서 어떤 방법을 선택해야 할지에 대해 알아보겠습니다.  NavigatorNavigator는 Flutter에서 기본으로 제공하는 네비게이션 기능으로, 화면 전환을 위해 push와 pop 메서드를 사용하여 화면을 스택에 쌓고 제거하는 방식으로 작동합니다. 기본적인 기능을 제공하지만, 몇 가지 단점이 존재합니다. 1. 제한된 애니메이션 및 시각 효과: Navigator는 기본적으로 애니메이션이나 시각 효과를 포함하고 있지만, 개발..

Flutter 2024.12.20

모바일 빌드 포멧

모바일 빌드 포멧은 각 모바일 환경에 맞게 배포하기 위해서 변환하는 파일 형식입니다. 안드로이드 사용자들은 APK파일로 앱을 다운로드한 경험이 있을 수 있는데 APK가 바로 그 중 하나입니다. 각 형식은 안드로이드나 아이폰에 따라서 달라지므로 배포를 생각한다면 알아두면 좋습니다. 1. APK(Android Package) apk는 이름에서부터 알 수 있듯이 android 운영체제에서 사용하는 파일 형식으로 android가 출시되면서 나온 방식입니다.특징apk에는 앱에 대한 모든 리소스가 포함되어있다.장점apk로 공식 스토어에서 제공하는 앱 외에서 apk파일만 있으면 앱을 쉽게 설치 할 수 있습니다.단점쉽게 설치할 수 있는만큼 외부에서 설치한 앱의 경우 보안을 보장할 수 없다 2. AAB(Android A..

정보 2024.12.19

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

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

Flutter/캠프 2024.12.09

JSON 통신

JSON(JavaScript Object Notation)JSON은 데이터의 형식이다. Key : Value의 형식으로 정의되어있으며 데이터 통신을 위해서 널리 사용된다. JSON 예시 코드{ "name": "홍길동", "age": 25, "isStudent": true, "hobbies": ["독서", "운동", "여행"], "address": { "city": "서울", "district": "강남구" }}  JSON 사용방식json을 사용하는 방식은 2가지로 분류할 수 있다. 1. 직렬화(Serialization)직렬화는 데이터를 JSON형식으로 변환하는 방식이다.순서는 이러하다 : Dart 객체 -> Map -> Stringimport 'dart:convert';void En..

정보 2024.12.05

MVVM패턴, MVC패턴

디자인 패턴Design Pattern은 소프트웨어 개발에서 자주 발생하는 문제들에 대한 검증된 해결책이라고 합니다. 자주 발생하는 문제를 해결하기 위해서 설계해놓은 방법들인것입니다. 디자인 패턴은 객체지향과 연관되어있습니다. 객체지향이란 코드를 객체 단위로 쪼개서 만들고 객체를 조합해서 사용하는 프로그래밍 방식입니다. 각 코드의 역할을 정하지 않아서 필요할때 조합할 수 있으며 오류가 생겼을때 수정이 이롭습니다. 이런 것처럼 디자인패턴도 일정한 역할을 나누어서 코드를 짜고 각 역할에 맞는 코드를 재활용하기도 합니다.장점은 크게 4가지입니다.코드 재사용성 향상: 검증된 솔루션을 활용하여 개발 시간 단축유지보수성 개선: 표준화된 접근 방식으로 코드 이해도 향상확장성 제공: 미래의 요구사항 변화에 유연하게 대응..

정보 2024.12.03

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