저는 끊임없이 배우고 성장하는 즐거움을 추구하며 다양한 경험을 통해 저만의 방향으로 나아가고자 합니다.
Phone | 010-5424-3464
Email | [email protected]
School | 부산SW마이스터고등학교 SW개발과 재학 중
Github | https://github.com/yunse0708
Velog | https://velog.io/@thddbs07/post
Tistory | https://yun-se0.tistory.com/
Frontend 2명, Backend 2명 (총 4명)
교내 세탁기 알림 및 예약 서비스 2024.05.24 ~ 2024.11.28 (6개월)
🏅 교내 전공동아리 우수상(3위)
Github
https://github.com/TeamPLOY/Bubble_APP
https://github.com/TeamPLOY/Bubble_v2
Link
Stacks
Figma
, Flutter
,
Contribution.
현재 많은 학생들이 기숙사 세탁기를 이용하면서 세탁기 남은 시간을 확인하기 위해 왔다 갔다하며 불필요한 시간 낭비를 하고 있었습니다. 또한, 교내 설문조사를 통해 학생들은 ‘왔다 갔다 하기 힘들다’ , ‘옷이 꺼내져 있어 부끄럽다’ 등 불만을 이야기하였습니다.
→ 그래서 우리는 학생들이 기숙사 생활을 더욱 편리하게 할 수 있도록, 세탁기 사용 시간을 확인하고 알림을 제공하며, 예약 서비스까지 지원하는 시스템인 버블을 도입하고자 했습니다.
<aside>
Figma를 활용해 Auto Layout, 컴포넌트 구조를 익히며 디자인 시스템을 구축했습니다. User, Admin을 포함하여 총 20페이지를 모두 제작하였습니다.
</aside>
<aside>
홈화면, 예약화면 퍼블리싱 작업을 진행하였으며, API 연결을 도맡아했습니다. 또한, FCM을 활용하여 사용자 알림구현을 진행했습니다.
세탁기 잔여 시간 확인 페이지 구현
MachineGetApi
를 통해 세탁기 데이터를 서버에서 가져오며, 데이터가 정상적으로 로드되지 않거나 로딩 중일 때 적절한 UI 피드백을 제공하는 기능을 구현했습니다.ListView.builder
를 이용해 세탁기 데이터를 화면에 동적으로 표시하며, 화면 크기에 맞게 세탁기 박스를 조정할 수 있도록 구현했습니다.time
으로 받아와, time / 60
을 사용하여 시간 단위로 변환하고, 나머지는 분 단위로 변환하여 00:00 형식으로 표시하는 로직을 추가했습니다.getuserstaet
메서드를 통해 사용자의 세탁실 정보를 API로 받아오고, 이를 화면에 동적으로 반영할 수 있도록 했습니다.사용자 알림 구현
Firebase Cloud Messaging(FCM)
을 활용해 푸시 알림 기능을 구현했습니다.firebase_messagin
에서 제공하는 알림 권한 요청 API를 사용하여, 앱이 시작될 때 사용자에게 알림 수신을 허용할 것인지 묻는 팝업을 띄우고 이를 처리했습니다.<aside>
🚨 problem - firebase와 iOS 연동 문제
Firebase와 iOS를 연동하기 위해 초기 설정 코드를 작성했으나 pod install
과정에서 오류가 발생하여 빌드가 정상적으로 이루어지지 않았습니다. 이로 인해 프로젝트 실행조차 불가능한 상황이었습니다.
Parse Issue (Xcode): Module 'firebase_analytics' not found
/Users/song-yunseo/Documents/bubble_app/ios/Runner/GeneratedPluginRegistrant.m:11:8
Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist'
⚒️ sovled
iOS 플랫폼에서 발생한 Pod 관련 오류를 해결하기 위해 ios/Podfile
파일을 수정했습니다.
특정 빌드 설정을 추가하여 Firebase와 iOS 연동 시 발생하는 충돌을 방지하고 프로젝트가 정상적으로 실행되도록 구성했습니다.
또한, flutter_core의 버전을 업그레이드를 통해 빌드가 정상적으로 이루어지도록 했습니다.
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'NO'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['SWIFT_VERSION'] = '5.0'
config.build_settings['SWIFT_EMIT_MODULE_INTERFACE'] = 'NO'
</aside>
<aside>
🚨 problem3 - 소통 문제
전공 동아리 극 초반에는 회의를 하긴 했지만, 회의 내용을 제대로 기록하지 않아 의사소통이 원활하지 않았습니다. 그 결과 진행 상황을 서로 잘 모르거나, 같은 앱을 개발하는 팀원끼리 같은 컴포넌트를 중복 개발하는 일이 발생했습니다.
⚒️ sovled3
그래서 저희는 노션을 적극적으로 활용해보기로 했습니다. 주마다 정기적인 회의를 진행하고, 회의록을 노션에 체계적으로 정리하기 시작했습니다. 각자의 작업 내용, 맡은 역할, 구현 일정 등을 문서화해 두고 중복 개발이나 누락되는 작업이 없도록 조율했습니다. 또한, 공통 컴포넌트나 공용 로직은 페이지를 따로 만들어 공유함으로써 협업 효율을 높일 수 있었습니다.이런 방식 덕분에 팀 전체의 커뮤니케이션 문제가 크게 개선되었고, 프로젝트 진행도 한층 더 매끄러워졌습니다.
</aside>
다양한 사람들과 소통하고 싶습니다. 위 이메일로 편하게 연락 주세요!