Git Product home page Git Product logo

team-momo-momo-ios's Introduction

MOMO

momo  서비스아이콘

MOMO : 당신의 감정 기록을 도와줄 책 속의 문장
개발 기간: 2020.12.27 ~ 2021.01.16

Contributors

Unti초이tled-1 Untit해찌led-1 정엽
왕초 쵸 아요대장 정초이 🥭 사과보이 팬시보이 해찌 이해석 🍎 워슈정엽런 0개국어 이정엽 🌕
홈, 스크롤, 로그인, 회원가입 온보딩, 다이어리, 스플래쉬 리스트, 업로드, 모달
"해피아요~" "인생은 쓰지만 가끔은 달다..." "다사다난했지만 행복했다!"

Service Workflow

[momo] 워크플로우

Develop Environment

SWIFT

iOS Deployment Target : iOS 14.3

Library

Lint

Server

Layout, View

Feature

Splash - 🍎 해석

  • #1 스플래시

Onboarding - 🍎 해석

API 연결 완료

  • #1 서비스 소개
  • #1 체험해보기 버튼
  • #1 감정 선택 버튼
  • #1 문장 선택 버튼
  • #1 일기 작성 예시
  • #1 배경 애니메이션
  • #1 오브제 배치
  • #1 깊이 선택 스크롤바

Home - 🥭 초이

API 연결 완료

  • #1 연/월/일/요일
  • #1 오늘 일기 업로드 안내 문구 (오늘일기X)
  • #1 감정
  • #1 깊이
  • #1 문장
  • #1 오늘 작성한 일기
  • #1 전체보기 버튼
  • #1 업로드 버튼
  • #1 작성하기 버튼 (오늘일기X)
  • #1 리스트 버튼
  • #1 마이 버튼

Home_Scrolled - 🥭 초이

API 연결 완료

  • #1 연/월 변경 버튼
  • #1 연/월 변경 모달창
  • #1 깊이
  • #1 일기 물방울
  • #1 오브제 배치
  • #1 경고 모달창
  • #3 일기 물방울 이동
  • #1 업로드 버튼
  • #1 리스트 버튼
  • #1 마이 버튼

Diary - 🍎 해석

API 연결 완료

  • #1 연/월/일/요일
  • #1 감정
  • #1 깊이
  • #1 문장
  • #1 작성한 일기
  • #1 오브제 배치
  • #1 뒤로가기 버튼
  • #1 편집 버튼
  • #1 삭제 버튼
  • #1 경고 모달창

Diary_Edit - 🍎 해석

API 연결 완료

  • #1 연/월/일/요일 변경 버튼
  • #1 날짜 변경 모달창
  • #1 작성한 일기 수정
  • #1 저장 버튼
  • #1 뒤로가기 버튼
  • #1 경고 문구 모달창
  • #1 깊이 변경하기 버튼
  • #1 깊이 선택 스크롤바
  • #1 저장하기 버튼

Upload - 🌕 정엽

API 연결 완료

  • #1 감정 선택 버튼
  • #1 배경 애니메이션
  • #1 문장 선택 버튼
  • #1 일기 작성하기
  • #1 깊이 선택하기 버튼
  • #1 깊이 선택 스크롤바
  • #1 저장하기 버튼
  • #1 뒤로가기 버튼
  • #1 경고 문구 모달창
  • #1 닫기 버튼

List - 🌕 정엽

API 연결 완료

  • #1 연/월
  • #1 월간 일기 리스트
  • #1 필터 버튼
  • #1 필터 선택 모달창
  • #2 통계 버튼
  • #2 통계 리포트

Login, Join - 🥭 초이

API 연결 완료

  • #1 로그인
  • #1 이메일 로그인
  • #1 회원가입
  • #1 비밀번호 찾기

Core Feature

MOMO Core Feature

MOMO의 Core Feature는


이
렇
게
이
~
렇
~
게

긴

홈
뷰
인데요!

section Frame Array를 만들어서 section 별 cell의 개수에 따라 gradient를 입혀줬어요.
	

    var sectionFrameArray: [CGRect]  = []
    
    func paintGradientWithFrame() {
        for sectionIndex in 0..<7 {
            let frame = self.sectionFrameArray[sectionIndex]
            let view = UIView(frame: frame)
            let gradientView = UIView(frame: frame)
            let imgView = UIImageView(frame: view.bounds)
            
            self.currentColorSet = sectionIndex
            self.gradientLayer = CAGradientLayer()
            self.gradientLayer.frame = gradientView.frame
            self.gradientLayer.colors = self.colorSets[self.currentColorSet]
            
            let image = UIImage.gradientImageWithBounds(bounds: frame, colors: self.colorSets[sectionIndex])
            imgView.image = image
            
            view.isUserInteractionEnabled = false
            view.addSubview(imgView)
            self.homeTableView.addSubview(view)
            self.homeTableView.sendSubviewToBack(view)
        }
    }

깊이 별 오브제들도 각 section freame에 맞게 붙여줬어요.

    // 전달받은 img, frame의 x, y값에 맞게 오브제 배치
    func attachObjet(frameX: CGFloat, frameY: CGFloat, img: UIImage) {
        let imgView = UIImageView(frame: CGRect(x: frameX, y: frameY, width: img.size.width, height: img.size.height))
        imgView.image = img
    
        imgView.isUserInteractionEnabled = false
        homeTableView.addSubview(imgView)
    }


Extension Function

UIImage

gradientImageWithBounds(bounds: CGRect, colors: [CGColor]) -> UIImage // CAGradientLayer -> UIImage
rotate(radians: CGFloat) -> UIImage // UIImage 회전

String

textSpacing(lineSpacing: Int) -> NSMutableAttributedString // 자간, 행간 지정

UIView

round(corners: UIRectCorner, cornerRadius: Double) // 특정 꼭짓점 rounding
initFromNib<T: UIView>() -> T? // UIView를 nib으로 생성
asImage() -> UIImage // UIView -> UIImage

UILabel

startBlink() // 깜빡이는 애니메이션 시작
stopBlink() // 깜빡이는 애니메이션 종료

UISlider

addTapGesture() // slider에 touch gesture 추가
handleTap(sender: UITapGestureRecognizer) // tap gesture 인식

UITextField

modifyClearButtonWithImage(image: UIImage) // clear button 만들기

team-momo-momo-ios's People

Contributors

haeseoklee avatar jeongchoyi avatar jeongyeob97 avatar

Watchers

 avatar

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.