Giter Club home page Giter Club logo

sofastcar-ios's Introduction

SOFASTCAR-iOS

카셰어링 서비스를 제공하는 SOCAR의 iOS Application Clone 프로젝트 입니다.

Architecture

  • MVC

Requirements

  • Language
    • Swift 5.0
  • Framework
    • UIKit
    • CoreBluetooth
    • CocoaPods
    • SPM(SwiftPackageManager)
  • IDE
    • Xcode

Libraries

프로젝트내에서 사용한 라이브러리 목록 입니다.

Pod SPM
Swift Lint Snapkit
Naver Map SDK Kingfisher
Alamofire

Projcet

프로젝트 기획부터 개발까지의 흐름 입니다.

Planning(프로젝트 기획 단계)

2020.08.20 ~ 2020.09.02까지 진행한 프로젝트 기획 입니다.

  • Development motivation
  SOCAR를 구현하며 배웠던 내용을 정리하고 
  현재 상용화된 서비스를 따라 개발하며 배웠던 내용을 응용하며 개발에 자신감을 증가시키고 
  개발포지션간의(프론트, 백엔드) 협업을 위하여 커뮤니케이션 툴을 적극적으로 활용하여 
  커뮤니케이션 능력을 향상시키고 개발 능력을 증진시키기 위하여 이번 프로젝트를 시작하게 되었습니다.
  • MVP(Minimum Viable Product)

1st Sprint(1차 구현 단계)

2020.09.03 ~ 2020.09.18일까지 진행한 1차 스프린트 입니다.

  • MVP Development

LOGIN LOGIN RANTAL

✔️왼쪽부터 로그인/회원가입, 메인/예약, 대여/반납 화면입니다

2nd Sprint(2차 구현 단계)

2020.09.18 ~ 2020.10.08일까지 진행한 2차 스프린트 입니다.

  • MVP Plan

  • MVP Development

LOGIN_2nd SIDEBAR MAIN_2nd RETURN

✔️왼쪽부터 로그인/회원가입, 사이드바, 메인/예약, 대여/반납 화면입니다

회고

  • 김광수
다양한 화면을 어떻게 구현할지 고민하고 시행착오를 겪으면서 많은 것을 배우게 되었으며 협업을 통해서
깃 사용법 및 다양한 툴들을 경험하고 커뮤니케이션 능력을 키울수 있는 과정이었습니다.
또한 백앤드팀과 협업을 통해서 단순 UI 작업이 아닌 여러 가지 데이터를 서버로부터 API를 통해 데이터를 가져오고,
적절하게 처리하고, UI에 보여주는 과정에서 실무와 비슷한 경험을 할 수 있는 좋은 기회였습니다.
  • 조요한
이번 클론 프로젝트를 진행하면서 
개발자간 협업하여 프로젝트를 진행할때의 유의할점이나 협업시 필요한 커뮤니케이션 툴 및 커뮤니케이션 능력을 키울 수 있게 되었고, 
피처 개발을 통하여 그간 배운 내용을 정리하며 UI를 분석하고 개발하는 능력을 키울 수 있게 되었으며, 
배우지 못한 기술을 사용해봄으로서 새로운 기술 습득 능력을 향상시킬 수 있는 좋은 기회가 되었습니다.
  • 천우빈
많이 배웠다. iOS분야 뿐 아니라, 문제에 봉착했을때 팀원들과 풀어나가는 법 나아가 백엔드와 같은 다른 분야 인원과 협업하는 방법을 배우고 즐겨볼 수 있었다.
그리고 무엇보다 배우거나 해보지 않은 이슈를 해결해야할때 방법을 찾아가는 기본적인 노하우가 생긴것이 만족스럽다.
회초리와 당근으로 우리를 잘 리딩해준 광수팀장님과 프로젝트의 디테일을 살려준 조요한에게 감사의 뜻을 전한다.

추가 작업 필요


GitHub 관련

Release

v0.0.1.200918
  1. 로그인 / 회원 가입
    • 휴대폰 문자 인증을 통한 사용자 식별
    • 생년월일, 아이디(이메일), 패스워드 규칙 및 정책에 따라서 정규표현식으로 필터링
    • 사용자 로그인시 서버를 통한 인증 토큰 발급
    • 인증 토큰을 통해 서버와 통신 진행
  2. 메인 화면
    • 네이버 지도 연동을 통한 사용자가 선택한 위치 정보 확인
    • 사용자 위치 정보 (lat, log)와 distance 거리 변수를 통해 사용자 위치에서 일정 범위의 쏘카존 정보 불러오기
    • 쏘카존 선택시 해당 쏘카존에 주차되어 있는 쏘카 정보 로드
    • 이용시간 설정 후 쏘카 선택 -> 보험 선택 -> 예약 확인 -> 결제 진행 으로 이동
    • 차량 가격 및 보험 가격이 계산되어 최종 결제 화면 이동
  3. 차량 이용 화면
    • 결제 완료 시 차량 이용과 관련된 화면으로 이동
    • 차량의 상태 확인 후 실제 운행 시작
    • 사용 종료 후 반납시 메인 화면으로 이동
v1.0.0.201008
  1. 메인/예약 화면

    • 네이버 맵 주소검색을 통한 사용자 위치 이동
    • 사용자 이용 시간에 따른 TimeBar 설정
    • API를 이용한 이용 시간, 차종에 따른 보험로 계산
    • API를 통한 사용자 예약 완료시 예약 이력 저장
  2. 대여/반납 화면

    • 스마트키 기능 ( 아두이노를 활용한 블루투스 제어-비상등, 경적, 문여닫기)
    • 대여 및 반납 완료 기능 구현
    • 반납 완료 화면 구현
  3. 사이드바

    • API를 통한 사용자 차량 이용 내역 확인 뷰
    • API를 통한 사용자 정보 연동 (이름, 아이디, 크레딧 정보)
    • 쏘카클럽, 쿠폰, 친구초대 화면 구현
  4. 로그인/회원가입 화면

    • 운전면허증 인식 화면 일부 구현
    • 카드 인식 -> 텍스트 인식까지 구현됨
    • 텍스트 OCR 기능 미구현
v1.0.1.201011
BugFix : 일부 Commit 누락으로 인한 오류 발생

Refrense

sofastcar-ios's People

Contributors

devyhan avatar roobing avatar tootoomaa avatar

Stargazers

 avatar  avatar

Watchers

 avatar

sofastcar-ios's Issues

외관 촬영 UI

차량의 외관을 촬영해서 저장하는 화면 UI 구현

예약 Data 모델 구현

사용자가 예약한 내용에 대한 저장 모델

  • 사용 시간
  • 이용 가격
  • 이용 쏘카존
  • 이용 차량
  • 예약 종류 등 ( 부름, 쏘카존)

Gesture Delegate

Content View의 gestureRecognizer와 Table View의 Scroll 분리 이슈

차량 확인하기 UI 디테일

차량 확인하기 UI 디테일 구현

  • 타이틀 -> 네비게이션 largetitle로 수정
  • TagCollectionView 토글 가능하게 수정
  • ViewController를 눌러 TextView 키보드 내리는 extension 추가
  • 사용자가 텍스트뷰에 입력을 하면 스크롤뷰가 상승하도록 구현

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.