Skip to content
Snippets Groups Projects
Commit b80a5464 authored by 권순호's avatar 권순호
Browse files

Fix README.md

parent 905ca40b
No related branches found
No related tags found
No related merge requests found
# firebase_chat_app
# Flutter + Firebase Chat App
A new Flutter project.
Flutter와 Firebase를 사용하여 개발한 실시간 채팅 애플리케이션 입니다.
## Getting Started
## 아이템 선정 동기
This project is a starting point for a Flutter application.
현대 사회에서 모바일 애플리케이션은 일상생활의 필수 도구로 자리 잡았습니다. 특히 실시간 소통이 가능한 채팅 애플리케이션은 개인과 기업 모두에게 중요한 역할을 하고 있습니다. 이번 프로젝트에서는 Flutter와 Firebase를 사용하여 실시간 채팅 애플리케이션을 개발하였습니다. Flutter는 단일 코드베이스로 iOS와 Android 플랫폼 모두를 지원할 수 있어 효율적이며, Firebase는 백엔드 서비스를 제공하여 손쉽게 사용자 인증 및 실시간 데이터베이스 기능을 구현할 수 있습니다. 이러한 기술적 이점을 활용하여 학생들이 현대적인 모바일 애플리케이션 개발에 대한 이해를 높이고, 실제 애플리케이션 개발 경험을 쌓을 수 있도록 하기 위해 이 주제를 선정하였습니다.
A few resources to get you started if this is your first Flutter project:
## 개발 환경 및 도구
- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook)
- 개발 환경: macOS
- 개발 도구 : Android Studio, Xcode
- Language : Dart
- Framework : Flutter
- Backend : Firebase
For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference.
## 개발하면서 생긴 문제점 및 해결방법
- 이메일 및 비밀번호 필드 검증 문제
사용자가 이메일 또는 비밀번호를 입력하지 않고 로그인 버튼을 누를 경우, 예외가 발생하며 앱이 충돌하는 문제가 발생했습니다. 이는 null 값을 허용하지 않는 Firebase Authentication의 signInWithEmailAndPassword 메서드 때문입니다. 로그인 버튼을 누르기 전에 이메일과 비밀번호 필드가 비어 있지 않은지 확인하고, 비어 있는 경우 사용자에게 알림 메시지를 표시하도록 수정했습니다.
- 실시간 데이터 동기화 문제
Firestore를 사용하여 실시간으로 데이터를 동기화하는 과정에서 메시지가 실시간으로 업데이트되지 않는 문제가 발생했습니다. StreamBuilder를 사용하여 실시간 데이터 스트림을 올바르게 설정함으로써 문제를 해결했습니다.
- 메시지 전송 시 빈 메시지 전송 문제
사용자가 빈 메시지를 전송할 수 있는 문제가 발생했습니다. 이는 사용자가 메시지 입력 필드를 비워둔 채 "Send" 버튼을 누를 때 발생했습니다.
## 감상 및 향후 발전 방향
이번 프로젝트를 통해 Flutter와 Firebase의 강력한 기능을 직접 경험할 수 있었습니다. 특히, Firebase Authentication과 Firestore를 사용하여 실시간 채팅 기능을 구현하면서 백엔드 서비스를 손쉽게 통합할 수 있는 Firebase의 장점을 실감했습니다.
개발 과정에서 발생한 여러 문제들을 해결해 나가면서, 실무적인 문제 해결 능력을 기를 수 있었고, 새로운 기술을 배우고 적용하는 과정에서 많은 것을 배울 수 있었습니다. 특히, 실시간 데이터 동기화와 사용자 인증 부분에서 많은 경험을 쌓을 수 있었습니다. 이 프로젝트를 통해 배운 기술들은 앞으로의 다양한 개발 프로젝트에서도 유용하게 사용될것 같습니다.
향후에는 프로필 사진 추가, 메시지 읽음 표시 기능, 푸시 알림 기능, Firestorage를 활용한 파일이나 이미지 전송 기능 등을 추가하여 애플리케이션 기능을 향상시킬 수 있을 것입니다. 또한, 채팅방 기능을 추가하여 그룹 채팅을 지원하는 방향으로 발전시킬 수 있습니다.
## 참고자료
- https://firebase.google.com/docs/guides?hl=ko - firebase 개념
- https://firebase.blog/posts/2019/06/understanding-collection-group-queries - Understanding Collection Group Queries in Cloud Firestore
- https://medium.com/mqos-technologies/firebase-vs-aws-which-one-to-choose-in-2022-dce230ab44dd - Firebase Vs AWS: Which One to Choose in 2022?
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment