앱 'Martini' 는 자신만의 칵테일 레시피를 서로 공유하고 선호하는 칵테일을 쉽게 찾을 수 있도록 해주는 iOS 서비스 앱입니다.
-
사용자는 앱의 서비스를 이용하기 위해서 반드시 로그인을 하여야 합니다. 로그인 혹은 회원가입을 위한 필수입력 항목을 공란으로 두었을 경우 이에 대한 알림으로 TextField 에 애니메이션 효과를 주어 보다 간편하게 자각할 수 있도록 하였습니다. 또한 사용자는 회원가입을 위한 절차에서 본인이 선호하는 칵테일의 베이스, 맛, 재료를 선택하여 앱에 해당 데이터를 제공합니다.
-
앱은 사용자의 칵테일 취향 선호 데이터를 참조하여 선호하는 맛과 선호하는 재료에 맞는 칵테일 레시피 데이터를 우선적으로 보여줄 수 있도록 적절한 정렬 알고리즘을 사용합니다. 각 칵테일 레시피 데이터는 스와이프를 하여 넘겨 볼 수 있으며 무한 스크롤링 방식으로 데이터는 반복되어 보여집니다.
-
자신이 찾는 이름의 칵테일이 있다면 이를 검색하여 보다 쉽게 찾을 수 있습니다. 또한 선호하는 칵테일 이외에 특정한 조건을 가지는 칵테일 레시피를 찾고 싶을 때는 맛과 색, 도수 등으로 해당하는 조건에 충족하는 칵테일 레시피를 찾을 수가 있습니다.
-
특정 칵테일 레시피가 마음에 들거나 나중에라도 참조해야 할 일이 있으면 이를 위하여 ‘찜’ 버튼을 눌러 개인 설정란에서 ‘찜 목록’ 으로 칵테일 레시피들을 확인할 수가 있습니다.
-
사용자는 단순히 칵테일 레시피 정보를 제공받기에만 그치지 않고 본인만의 칵테일 제조법을 다른 사용자에게 공개(공유)할 수도 있습니다. 자신만의 특별한 칵테일을 만들어 개성있는 레시피를 남들에게 보여줄 수 있게 됩니다.
- 임진규
-
초기 데이터 모델 디자인
-
조건검색 화면 구현
-
세팅화면 구현
-
전체적인 화면 연결 구현
-
- 최예주
-
전체적인 앱의 UI 및 로직 기획
-
메인 화면 뷰와, 무한 스크롤 기능 구현
-
칵테일을 검색할 수 있는 뷰, 상세화면 뷰 구현
-
- 이상현
-
로그인, 회원가입 뷰 구현
-
로그인 과정에서 파이어 베이스에 등록된 이메일, 비밀번호를 확인하여 로그인하는 로직 구현
-
회원가입 과정에서 파이어 베이스에 이메일, 휴대전화번호, 이메일, 비밀번호를 등록하는 로직 구현
-
- 김영현(RONICK)
-
회원 가입 과정에서 유저의 칵테일 베이스, 재료, 맛의 선호도를 등록하는 로직과 뷰 구현
-
파이어 베이스(Firebae)를 이용하여 유저와 칵테일의 데이터 연동 로직 구현
-
유저의 칵테일 선호도에 따른 칵테일 레시피 정렬 알고리즘 구현
-
칵테일 레시피를 등록하는 로직과 뷰 구현
-
구현 코드
BasePreferenceCollectionViewCell.swift
ColorSelectionCollectionViewCell.swift
FlavorPreferenceCollectionViewCell.swift
IngredientsSelectionCollectionViewCell.swift
ImagePickerViewController.swift
BasePreferenceViewController.swift
ColorSelectionViewController.swift
FlavorPreferenceViewController.swift
IngredientsSelectionViewController.swift
PreferenceCompleteViewController.swift
UploadRecipeKeyboardHandler.swift
-
-
임진규
앱을 제작하는 과정중에 가장 어려웠던건 협업하는 과정이었다. Xcode에서 iOS앱을 생성할 경우 기본적으로 생선되는 시스템 파일들에 대한 이해가 많이 부족했다. 기본적으로 asset파일과 project파일 따로 관리된다는걸 몰랐다. 또한 4명에 개발자가 git workflow작업방식을 따르면서 merge conflict이슈가 너무나도 두려웠다. (대표적으로 project.pbxproj 파일) 이후 Xcode에서 생성되는 시스템 파일에 대한 이해가 생겼고 xcodegen이라는 project생성 툴을 이용한 이후 merge이슈들이 해결 가능한 수준이 되었다.
다른 한 가지에 대해 깨달은건 기초가 많이 부족하다는 것이었다. custom 컴포넌트를 만드면서 여태까지 init을 제대로 구현안하고 있었다. tableViewCell안에 버튼을 만들어 cell을 사용하는 화면에서 addTarget으로 이벤트를 전달할때 데이터를 전달하는 방법이 쉽게 안떠오른다. 실습 위주보다 좀더 기초적인 공부에 신경써야할거같다.
-
김영현(RONICK)
처음으로 협업하는 프로젝트라 어색하긴 하였지만 정말 많은 것을 배우게 되었다. 혼자서 만드는 것보다 여럿이서 협업을 하여 개발을 한다는 것이 더욱더 어려운 일이라는 것을 몸소 알게 되었다. UI 기획안을 만들기 위한 피그마(Figma) 작업, 프로젝트의 스케줄과 ToDo 리스트를 관리하기 위한 트렐로(Trello) 그리고 깃 워크플로우를 바탕으로 프로젝트의 버전 관리를 함으로써 협업의 과정과 중요성을 알게 되었다.
-
최예주
기획부터, 개발 순서, 데이터베이스 연동 등 이번 프로젝트를 통해 앱을 하나 만들기 위한 흐름을 파악할 수 있었다. 또, 같은 기능을 구현할때도 어떤 방법이 더 좋은지 고민해 볼 수 있었고, 예상치 못한 어려움도 있었지만 이를 해결해보면서 개발자로서 한 단계 더 성장하는 계기가 될 수 있었다.
-
이상현
우선 생각했던 시일보다 훨씬 늘어났지만 무사히 마칠 수 있어서 감사합니다. iOS를 이용한 첫 번째 협업 프로젝트였는데 Figma를 이용한 기획, Trello를 이용한 소통, 프로젝트 파일의 충돌 해결을 위해 XcodeGen을 경험해보면서 현업에서 사용하는 툴 들을 경험해볼 수 있었습니다. 이번 경험을 통해서 iOS 개발에 대한 지식은 물론 깃을 사용함에 있어서의 유의사항, 브랜치 사용법을 배울 수 있었고 다양한 문제 및 충돌을 해결법에 대해서도 익숙해질 수 있었습니다. 무엇보다 iOS 개발이라는 공통 주제로 각자의 고민및 고충을 토로하고 다양한 정보를 공유할 수 있는 동료가 생겼다는 것이 가장 감사합니다.
Martini 앱의 기획, 일정이 궁금하시면 아래 뱃지를 클릭해주세요.
김영현 |
임진규 |
이상현 |
최예주 |