Skip to content

Safebell-org/Safebell_FE

Repository files navigation

Safebell_Android

세이프벨 프론트엔드 리포지토리입니다

🔔 세이프벨 (SafeBell) 프로젝트

Frame 1 (1)

🙋‍♀️ 세이프벨(SafeBell) 프로젝트를 소개합니다!

SafeBell은 범죄자 사전 정보 알림, 원터치 긴급 신고, 안심 동행 매칭 서비스를 통해 사용자의 일상 안전을 책임지는 모바일 애플리케이션입니다. 예측할 수 없는 위험으로부터 소중한 사람들을 보호하고, 긴급 상황에 신속하게 대응하며, 귀가 시 안심할 수 있는 동행 환경을 제공하는 것을 목표로 합니다.


📌 진행 상황 확인

프로젝트의 상세한 진행 상황과 업데이트는 아래 Notion 페이지에서 확인하실 수 있습니다.

➡️ **[Notion에서 자세한 진행사항 보러가기]([Notion 페이지 링크])**


🙌 팀원 소개

저희 셀프벨 프로젝트는 다음과 같은 열정적인 팀원들로 구성되어 있습니다:

  • 곽은재
  • 권유진
  • 김성혁
  • 박승원
  • 김신희
  • 전혜린
  • 추교준

💻 Tech Stack

셀프벨 프로젝트의 구현을 위해 다음과 같은 기술 스택과 라이브러리 의존성을 사용합니다.

핵심 기술

이름 설명
Kotlin 프로그래밍 언어
Jetpack Compose 인-코드 선언형 앱 설계
Git 체계적인 코드 관리 및 협업

라이브러리 의존성

이름 버전 설명
Jetpack Navigation 2.0.21 화면 전환 관리를 위한 라이브러리
Hilt 2.51.1 의존성 주입을 위한 라이브러리
Retrofit2 2.11.0 HTTP 통신을 위한 라이브러리
DataStore 1.1.7 로컬 데이터 저장을 위한 라이브러리
Room 2.6.1 로컬 데이터베이스 라이브러리
Naver Map SDK 3.20.0 네이버 지도 사용을 위한 SDK
KakaoSDK 2.20.6 카카오 로그인을 위한 SDK
Android JUnit 1.2.1 단위 테스트를 위한 라이브러리

아키텍처 및 디자인 패턴

본 프로젝트는 클린 아키텍처를 기반으로, 뷰모델(ViewModel)을 사용한 MVVM 디자인 패턴으로 구성됩니다.


🌈 Contribution Guidelines

셀프벨 프로젝트에 기여하고자 하는 모든 개발자분들은 다음 컨벤션을 준수하여 효율적이고 체계적인 협업을 지향합니다.

Branch

본 프로젝트는 Gitflow 브랜치 전략을 따릅니다.

git
  • main: 배포 가능한 단위의 브랜치
  • release: 배포 전 테스트가 가능한 단위의 브랜치
  • develop: 개발 중인 브랜치
  • feature/#issue_number: 개발 단위별 브랜치
  • hotfix: master 브랜치의 긴급 버그 수정 브랜치

모든 기능 개발은 다음 흐름을 따릅니다:

  1. 개발하고자 하는 기능에 대한 이슈를 등록하여 번호를 발급합니다.
  2. develop 브랜치로부터 분기하여 이슈 번호를 사용해 이름을 붙인 feature 브랜치를 만든 후 작업합니다.
  3. 작업이 완료되면 develop 브랜치에 풀 요청(Pull Request)을 작성하고, 팀원의 동의를 얻으면 병합합니다.

Commit

다음은 본 프로젝트의 커밋 형식입니다. 각 줄 사이에는 빈 줄이 추가로 있음에 주의해주세요.

[헤더]

[본문]

[이슈 번호 참조(선택)]
헤더 내용
feat 새로운 기능에 대한 커밋
fix 버그 수정에 대한 커밋
build 빌드 관련 파일 수정 / 모듈 설치 또는 삭제에 대한 커밋
chore 그 외 자잘한 수정에 대한 커밋
ci ci 관련 설정 수정에 대한 커밋
docs 문서 수정에 대한 커밋
style 코드 스타일 혹은 포맷 등에 관한 커밋
refactor 코드 리팩토링에 대한 커밋
test 테스트 코드 수정에 대한 커밋
perf 성능 개선에 대한 커밋

예시:

git commit -m "fix: Safari에서 모달을 띄웠을 때 스크롤 이슈 수정

모바일 사파리에서 Carousel 모달을 띄웠을 때,
모달 밖의 상하 스크롤이 움직이는 이슈 수정.

관련 이슈 번호: #113

Issue

이슈는 본 리포지토리에 등록된 목적에 맞는 이슈 템플릿을 사용하여 작성합니다.

  • Feature Template: 기능 추가를 위한 이슈에 사용
  • Bug Template: 버그 수정을 위한 이슈에 사용

Pull Request

풀 요청은 본 리포지토리에 등록된 템플릿을 사용하여 작성합니다.

Convention

네이밍

  • 코틀린 파일의 이름은PascalCase를 사용
  • 패키지 이름은 소문자 사용
  • 컴포저블 함수의 이름은 PascalCase, 그 외 함수의 이름은 동사로 시작하는 camelCase를 사용하며, 변수명은 camelCase를 사용. (람다식을 저장하는 변수도 camelCase를 사용)
  • 변수명은 한국어 발음대로 표기 금지
  • 상수의 경우 대문자 snake_case 사용
  • 콜백 함수를 전달하는 변수일 경우 on으로 시작. ex) onButtonClickedonDataLoaded
  • State 변수: 접두사 ishas 로 시작 ex) isLoadinghasError

선언

  • 한 줄에 한 문장
  • 체이닝할 경우에는 각 요소를 한 줄씩 개행
  • Widget의 소괄호, 중괄호를 사용할 경우 괄호의 시작 후 개행으로 구분
  • modifier은 항상 맨 마지막 파라미터로 선언

🛠️ Environment

다음은 본 프로젝트의 안드로이드 개발 환경입니다.

  • targetSDK: 35, minSDK: 26
  • 안드로이드 스튜디오 버전: Ladybug | 2024.2.1 또는 그 이상
  • 테스트 환경: 안드로이드 스튜디오 제공 에뮬레이터(AVD)
    • 기기명: Pixel 8
    • API: 35 (Android 15.0, x86_64)
    • 해상도: 1080 x 2400 px (412 x 915 dp)

궁금한 점이 있으시거나 프로젝트 참여에 관심이 있으시다면 언제든지 문의해주세요!

About

세이프벨 프론트엔드 리포지토리입니다

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •