์›คใ…‹ํ”„๐Ÿถ ์›คํ”„์›Œํ”„!!๐Ÿถ ์„๋ฅผ๋  ๋ฉ! ์›Œํ”„์šฐํ”„์šฐํ”„! ๐Ÿฆฎ ๐Ÿถ

Related tags

SwiftUI App swift ios
Overview

๋กœ๊ณ 

mascota_blue Mascota Work Flow 1

WorkFlow

Mascota Work Flow 2 Mascota Work Flow 3 Mascota Work Flow 4 Mascota Work Flow 5 Mascota Work Flow 6

Contributer

KakaoTalk_Photo_2021-07-06-16-04-23 KakaoTalk_Image_2021-07-06-15-44-33 KakaoTalk_Photo_2021-07-06-15-47-14
์ด์ •์—ฝ ๋„์—ฐ์„œ ๊น€์œค์„œ
ํ™ˆ ๋กœ๊ทธ์ธ, ํšŒ์›๊ฐ€์ž… ์บ˜๋ฆฐ๋”, ๋ฌด์ง€๊ฐœ
illust_home (1) illust_login,signup_small illust_rainbow_cat

Team Convention

Team Convention


Coding Convention

Coding Convention


Feature

์ •์—ฝ

illust_home (1)

TabBar

  • ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์—ฐ๊ฒฐ
  • ์„ ํƒ์— ์œ ๋ฌด์— ๋”ฐ๋ฅธ ์ด๋ฏธ์ง€

Home

  • ์ฑ… ์ œ๋ชฉ
  • ํ”„๋กœํ•„ ์‚ฌ์ง„
  • ์ด์ „ ์ž‘์„ฑํ•œ ์ผ๊ธฐ
  • ์ผ๊ธฐ ์ž‘์„ฑ ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ
  • ๋ชฉ์ฐจ ํŽธ์ง‘ ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ ์ƒ์„ธ ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ ์ผ๊ธฐ ๊ฐœ์ˆ˜
  • ์„œ๋ฒ„ ํ†ต์‹ 

Chapter Timeline

  • ๋ชฉ์ฐจ ๋“œ๋กญ๋‹ค์šด
  • ๋ชฉ์ฐจ ์„ ํƒ์— ๋”ฐ๋ฅธ ๋ทฐ์™€ ๋ชฉ์ฐจ ์ตœ์‹ ํ™”
  • ์›” ๋ณ„ ์ผ๊ธฐ
  • URL๋กœ ์ด๋ฏธ์ง€ ๋ฐ›์•„์˜ค๊ธฐ
  • ์ผ๊ธฐ ํ„ฐ์น˜
  • ์ผ๊ธฐ ์Šค์™€์ดํ”„
  • ์ผ๊ธฐ ์‚ญ์ œ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Chapter Edit

  • ๋ชฉ์ฐจ
  • ๋ชฉ์ฐจ ์ถ”๊ฐ€ ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ ์‚ญ์ œ ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ ์ˆ˜์ • ๋ฒ„ํŠผ
  • ๋ชฉ์ฐจ ์ถ”๊ฐ€ ๋ชจ๋‹ฌ
  • ๋ชฉ์ฐจ ์‚ญ์ œ ๋ชจ๋‹ฌ
  • ๋ชฉ์ฐจ ์ˆ˜์ • ๋ชจ๋‹ฌ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Diary Write

  • ์ฃผ์ธ๊ณต ์ด๋ฏธ์ง€
  • ์ฃผ์ธ๊ณต ์„ ํƒ
  • ๊ธฐ๋ถ„ ์ด๋ฏธ์ง€
  • ๊ธฐ๋ถ„ ์„ ํƒ
  • ์ฃผ์ธ๊ณต ํ•ด์ œ ALERT
  • ๋‹ค์Œ ๋ฒ„ํŠผ
  • ์‚ฌ์ง„ ์—…๋กœ๋“œ
  • ์‚ฌ์ง„ ์ž๋ฅด๊ธฐ
  • ๋ชฉ์ฐจ ๋“œ๋กญ๋‹ค์šด
  • ์ œ๋ชฉ ์ž‘์„ฑ
  • ๊ธ€์ž ์ˆ˜ ์ดˆ๊ณผ ์‹œ ์ˆซ์ž ํฐํŠธ์ƒ‰ ๋นจ๊ฐ„์ƒ‰ ์ฒ˜๋ฆฌ
  • ์ด์•ผ๊ธฐ ์ž‘์„ฑ
  • ์ž‘์„ฑ ์™„๋ฃŒ ๋ฒ„ํŠผ
  • ์„œ๋ฒ„ ํ†ต์‹ 

์—ฐ์„œ

illust_login,signup_small

Login

  • ID ์ž‘์„ฑ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž‘์„ฑ
  • ์ž‘์„ฑ ์‹œ ์ฃผํ™ฉ์ƒ‰ ๋ฐ‘์ค„ ์ฒ˜๋ฆฌ
  • ์ž…๋ ฅ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ๋ฒ„ํŠผ ๋น„/ํ™œ์„ฑํ™”
  • ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ
  • ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ
  • ๋กœ๊ทธ์ธ ์‹คํŒจ ALERT
  • ์•„์ด๋”” ์ฐพ๊ธฐ ๋ฒ„ํŠผ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •
  • ์„œ๋ฒ„ ํ†ต์‹ 

SignUp

  • ID ์ž‘์„ฑ
  • ID ์ค‘๋ณตํ™•์ธ
  • ID ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž‘์„ฑ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ ์ž‘์„ฑ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ํ˜•์‹ ํ™•์ธ
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€
  • ํšŒ์›๊ฐ€์ž… ๋ฒ„ํŠผ
  • ํšŒ์›๊ฐ€์ž… ์™„๋ฃŒ ๋ทฐ
  • ํšŒ์›๊ฐ€์ž… ํ™˜์˜์‹œ ๋ฉ”์‹œ์ง€์—์„œ ์ด๋ฉ”์ผ ์ƒ‰ ๋ณ€๊ฒฝ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Register Profile

  • ์ฃผ์ธ๊ณต ์ถ”๊ฐ€
  • ์‚ฌ์ง„ ์ฒจ๋ถ€ Action Sheet
  • ์ฃผ์ธ๊ณต ์‚ฌ์ง„ ์ฒจ๋ถ€
  • ์ฃผ์ธ๊ณต ์ด๋ฆ„ ์ž‘์„ฑ
  • ์ฃผ์ธ๊ณต ๋™๋ฌผ ์„ ํƒ
  • ๋‚ ์งœ ์„ ํƒ
  • ๋‚ ์งœ ๋ชจ๋‹ฌ
  • ์„ฑ๋ณ„ ์„ ํƒ
  • ๋™์  ํ…์ŠคํŠธ๋ทฐ
  • ํ…์ŠคํŠธํ•„๋“œ ์ž‘์„ฑ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ๋ฒ„ํŠผ ๋น„/ํ™œ์„ฑํ™”
  • ์„œ๋ฒ„ ํ†ต์‹ 

์œค์„œ

illust_rainbow_cat

Calendar

  • ์ผ๊ธฐ ์ž‘์„ฑ ๋ฒ„ํŠผ
  • ๋‹ฌ๋ ฅ ์ œ๋ชฉ
  • ๋‹ค์Œ ๋‹ฌ๋กœ ๊ฐ€๊ธฐ
  • ์ด์ „ ๋‹ฌ๋กœ ๊ฐ€๊ธฐ
  • ๋‹ค์Œ ๋…„๋„๋กœ ๊ฐ€๊ธฐ
  • ์ด์ „ ๋…„๋„๋กœ ๊ฐ€๊ธฐ
  • ์ด๋ชจ์ง€ ๋ถ€์ฐฉ
  • ์ผ๊ธฐ ๊ฐœ์ˆ˜ ์Šคํ‹ฐ๊ฑฐ ๋ถ€์ฐฉ
  • ์ƒ์„ธ ์ผ๊ธฐ ์ด๋™
  • ์„œ๋ฒ„ ํ†ต์‹ 

Rainbow

  • ์ด์ „ ์ž‘์„ฑํ•œ ์ผ๊ธฐ
  • ๋„์›€๊ธ€
  • ์‚ฌํŒŒ๋ฆฌ ๋”ฅ๋งํฌ
  • ๋„์›€๊ธ€ ์„ค๋ช… ALERT
  • '๋ฐ˜๋ ค๋™๋ฌผ๊ณผ ์ด๋ณ„ํ–ˆ๋‚˜์š”' ๋ฒ„ํŠผ
  • ๋™๋ฌผ ์„ ํƒ ALERT
  • ์ด๋ฏธ์ง€ ์„ ํƒ ์—ฌ๋ถ€์— ๋”ฐ๋ฅธ ๋ฐฐ๊ฒฝ์ƒ‰ ๋ณ€๊ฒฝ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Rainbow Bridge

  • ํ…์ŠคํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜
  • 'X' ๋ฒ„ํŠผ ํ„ฐ์น˜ ์‹œ ์ดˆ๊ธฐํ™” ALERT
  • ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ ์‚ฝ์ž…
  • ๋‹ค์Œ ๋ฒ„ํŠผ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Rainbow Bridge Book Cover

  • URL๋กœ ์ด๋ฏธ์ง€ ๋ฐ›์•„์˜ค๊ธฐ
  • ํ…์ŠคํŠธ์—์„œ ์ผ์ž ํฐํŠธ ๊ตต๊ธฐ์™€ ํฌ๊ธฐ ์กฐ์ ˆ
  • ํ…์ŠคํŠธ์—์„œ ์—ํ”ผ์†Œ๋“œ ํฐํŠธ ๊ตต๊ธฐ์™€ ํฌ๊ธฐ ์กฐ์ ˆ
  • ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ
  • 'X' ๋ฒ„ํŠผ ํ„ฐ์น˜ ์‹œ ์ดˆ๊ธฐํ™” ALERT
  • ์„œ๋ฒ„ ํ†ต์‹ 

Rainbow The Best Moment

  • ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ
  • 'X' ๋ฒ„ํŠผ ํ„ฐ์น˜ ์‹œ ์ดˆ๊ธฐํ™” ALERT
  • ์ฑ… ๋ชจ์–‘ ์ปค์Šคํ…€ ๋ทฐ ๊ตฌํ˜„
  • ์ปค์Šคํ…€ ํ—ค๋” ๋ทฐ ๊ตฌํ˜„
  • ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ด๋ชจ์ง€ ํ˜ธ์ถœ
  • DateFormatter๋กœ ๋ณ€ํ™˜
  • ๋‹ค์Œ ๋ฒ„ํŠผ
  • ์ƒ์„ธ ์ผ๊ธฐ ์ด๋™
  • ์„œ๋ฒ„ ํ†ต์‹ 

Diary Detail

  • URL๋กœ ์ด๋ฏธ์ง€ ๋ฐ›์•„์˜ค๊ธฐ
  • ์กฐ๊ฑด์— ๋”ฐ๋ฅธ ์ด๋ชจ์ง€ ํ˜ธ์ถœ
  • ์ด๋ชจ์ง€ ๋“œ๋กญ๋‹ค์šด ๊ตฌํ˜„
  • ์ด๋ฏธ์ง€ ์Šคํฌ๋กค์— ๋”ฐ๋ฅธ Page Control ์กฐ์ •
  • ๋™์  ํ…์ŠคํŠธ ๋ทฐ ๊ตฌํ˜„
  • ๋‹ค์Œ ํ™”๋กœ ์ด๋™ ๋ฒ„ํŠผ
  • ์ด์ „ ํ™”๋กœ ์ด๋™ ๋ฒ„ํŠผ
  • ์„œ๋ฒ„ ํ†ต์‹ 

Animation

DropDown Animation

UIView.animate(withDuration: 0.5) {
  self.indexStackView.arrangedSubviews[index].backgroundColor = .macoWhite
  self.toggleButton.transform = self.isToggled ? CGAffineTransform(rotationAngle: .pi * 2): CGAffineTransform(rotationAngle: .pi)
  self.indexStackView.alpha = self.isToggled ? 0.0 : 1
}

Text Animation

UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseOut) {
  self.contentLabel.alpha = 1.0
}

View Rise when Keyboard Appear Animation

UIView.animate(withDuration: 0.3, delay: 0.3, options: .curveEaseOut) {
	self.view.frame.origin.y = -position + self.topBarHeight
}

AIL (Appjam I learned)

์ •์—ฝ

์ด๋ฒˆ 28๊ธฐ ์•ฑ์žผ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ UIImagePicker๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์šฉ์ž์˜ ์นด๋ฉ”๋ผ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์ ‘๊ทผํ•ด ์ด๋ฏธ์ง€๋ฅผ ๊ฐ–๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์•ฑ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์ด๋ฏธ์ง€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ์„œ๋ฒ„ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ๊ฒฝํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์—ฐ์„œ

์ด๋ฒˆ 28๊ธฐ ์•ฑ์žผ์— ์ฐธ์—ฌํ•˜๋ฉด์„œ ๊นƒ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ๋ฆ„์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” upstream ๋ธŒ๋žœ์น˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ €์˜ ๊ฐœ์ธ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์™€ iOS ํŒŒํŠธ์›๋“ค๊ณผ ๊ณต์œ ํ•˜๋Š” ์—…์ŠคํŠธ๋ฆผ๊ณผ ์—ฐ๋™ ๋˜์–ด์„œ, ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ˜‘์—…์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ทฐ๋ฅผ ์งค ๋•Œ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์•Œ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์…€์„ ๋ˆŒ๋ €์„ ๋•Œ, ํ•ด๋‹น ์…€์— ๋Œ€ํ•œ ์ •๋ณด๋“ค ๋˜ํ•œ ๋‹ค๋ฅธ ์ปฌ๋ ‰์…˜ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ทฐ๋ฅผ ์งœ๋ฉด reloadData()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œค์„œ

๊นƒํ”Œ๋กœ์šฐ๋ฅผ ์ ์šฉํ•œ ํ˜‘์—…์„ ํ†ตํ•ด ๊นƒ ๋ธŒ๋žœ์น˜ ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Coding Convention์„ ์ •ํ•˜์—ฌ ๊ฐ€๋…์„ฑ์žˆ๋Š” ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ•˜์˜€๊ณ  Pull Request ์š”์ฒญ๊ณผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด ๋ถ€์กฑํ•œ ์ ์„ ๊นจ๋‹ซ๊ณ  ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Snapkit์„ ์ด์šฉํ•˜์—ฌ Autolayout์„ ์žก์œผ๋ฉฐ ๋ทฐ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ์˜€์Šต๋‹ˆ๋‹ค. ๐Ÿ’™

MASCOTA_๋กœ๊ณ 

You might also like...
Comments
  • [#28] MainNavigationBarView

    [#28] MainNavigationBarView

    Description

    import UIKit
    
    import SnapKit
    
    class ViewController: UIViewController {
        
        lazy var topBar = MainNavigationBarView(type: .rainbow)
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            view.addSubview(topBar)
            
            topBar.snp.makeConstraints {
                $0.top.equalTo(view.safeAreaLayoutGuide.snp.top)
                $0.leading.trailing.equalToSuperview()
                $0.height.equalTo(topBarHeight)
            }
            
            topBar.setBookTitleLabel(text: "๋ชจ์—ฌ๋ด์šฉ ํ‚คํ‚คํ‚คํ‚ผํ‚คํ‚ค")
        }
    
    }
    
    

    Related Issues

    #28

    Closes #28

    feat dayzi 
    opened by ezidayzi 1
Owner
null