Giter VIP home page Giter VIP logo

mc3-team18-forellyjhealth's Introduction

Artboard 1

๐Ÿ“ฑ Piki Pick

Apple Developer Academy @ POSTECH Mini Challenge #3 Project์ž…๋‹ˆ๋‹ค. "Community Impact" ๋ฅผ ์ฃผ์ œ๋กœ ๋‹ค์–‘ํ•œ ์‚ฌํšŒ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๋“ค์ด ์ง๋ฉดํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” Impact๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

Multipeer Connectivity๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ์™€์ดํŒŒ์ด ํ™˜๊ฒฝ, ๋˜๋Š” Peer-to-Peer ์™€์ดํŒŒ์ด, ๋ธ”๋ฃจํˆฌ์Šค๋ฅผ ํ†ตํ•ด ์ฒญ์ค‘๋“ค์€ ๋ฐœํ‘œ์ž์˜ ๊ธฐ๊ธฐ ๋˜๋Š” ์•„์ดํŒจ๋“œ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐœํ‘œ์ž๋Š” AirPlay๋“ฑ์„ ์‚ฌ์šฉํ•ด ํฐ ํ™”๋ฉด์— ๊ธฐ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ๋ณธ์ธ์˜ ๊ธฐ๊ธฐ๋ฅผ ํ†ตํ•ด ์ฒญ์ค‘๋“ค์˜ ๋‹ค์–‘ํ•œ ํ”ผ๋“œ๋ฐฑ๊ณผ ์งˆ๋ฌธ ๋“ฑ์„ ๋ฐ›์„ ์ˆ˜์žˆ์œผ๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ 4๊ฐ€์ง€ Option์˜ ํˆฌํ‘œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.

Challenge

  • Apple Developer Academy @ POSTECH์˜ ๋ฉ˜ํ† ๋“ค์˜ ์–ด๋ ค์›€์„ ์•Œ๊ณ  ๋„์™€์ฃผ์ž.

Solution Concept

  • Multipeer Connectivity๋ฅผ ์‚ฌ์šฉํ•ด ์‹œ๋‹ˆ์–ด ๋Ÿฌ๋„ˆ์™€ ์ฃผ๋‹ˆ์–ด ๋Ÿฌ๋„ˆ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋„์™€์ฃผ์ž.

Boundaries

  • ๋„คํŠธ์›Œํ‚น : API optional, No backend
  • Unity์™€ ๊ฐ™์€ ๊ฒŒ์ž„ ์—”์ง„ (X)
  • ๋งŒ๋‚  ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค (X)
  • ์• ํ”Œ์ด ์ง€์›/๋ณด์ฆํ•˜๋Š” ์ž์›(1st Party) ์šฐ์„  ์‚ฌ์šฉ

  1. For What Situation
  • ์• ํ”Œ ์•„์นด๋ฐ๋ฏธ์˜ ๋‹ค์–‘ํ•œ Presentation ์ƒํ™ฉ
  • ์• ํ”Œ ์•„์นด๋ฐ๋ฏธ์˜ ๋‹ค์–‘ํ•œ ํ–‰์‚ฌ
  • ์ฒญ์ค‘๊ณผ์˜ ๋‹ค์–‘ํ•œ Interactiveํ•œ ๋ฐœํ‘œ๊ฐ€ ํ•„์š”ํ•œ ๊ฐ•๋‹จ
  1. Who it's for
  • ์• ํ”Œ ์•„์นด๋ฐ๋ฏธ์˜ TOD(Tip of the Day)์˜ ๋ฐœํ‘œ์ž
  • ์• ํ”Œ ์•„์นด๋ฐ๋ฏธ ํ† ๋ง‰์ƒ์‹์„ ์ค€๋น„ํ•˜๋Š” ์‹œ๋‹ˆ์–ด ๋Ÿฌ๋„ˆ
  • ์• ํ”Œ ์•„์นด๋ฐ๋ฏธ์˜ ๋‹ค์–‘ํ•œ ํ–‰์‚ฌ์˜ ๋ฐฃํ‘œ์ž(ex: ์˜์ผ๋Œ€ ์ต์Šคํ”„๋ ˆ์Šค, asyncSwift ํ–‰์‚ฌ)
  • ์ฒญ์ค‘๊ณผ ์†Œํ†ตํ•˜๋ฉฐ ๋ฐœํ‘œ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐœํ‘œ์ž

๐Ÿ“Œ Features

  • Emoji Reaction : ๋ฐœํ‘œ์ž์˜ ๊ธฐ๊ธฐ์— ์ด๋ชจ์ง€๋กœ ๋‹ค์–‘ํ•œ Reaction์„ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ
  • Emoji Vote : Emoji๋ฅผ ํ†ตํ•ด 4๊ฐ€์ง€ Option์˜ Vote๋ฅผ ํ•  ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ
  • PeedBack : Chat์„ ํ†ตํ•ด ๋ฐœํ‘œ์ž์—๊ฒŒ ์งˆ๋ฌธ์„ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ
  • Emoji Reaction View : ๋ฐœํ‘œ์ž๊ฐ€ ์ฒญ์ค‘๋“ค์˜ Emoji Reaction์„ ํ™•์ธํ•˜๋Š” ๊ธฐ๋Šฅ
  • Emoji Vote View : ๋ฐœํ‘œ์ž๊ฐ€ ์ฒญ์ค‘๋“ค์˜ 4๊ฐ€์ง€ Option์˜ Vote๋ฅผ ๋ฐ›๊ณ  ํ™•์ธํ•  ์ˆ˜์žˆ๋Š” ๊ธฐ๋Šฅ
  • PeedBack View : ๋ฐœํ‘œ์ž๊ฐ€ ์ฒญ์ค‘๋“ค์˜ ๋‹ค์–‘ํ•œ ์งˆ๋ฌธ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

๐Ÿ–ผ๏ธ Demo

โญ๏ธ PikiPick โญ๏ธ์œ ํŠœ๋ธŒ ์˜์ƒ๋ฐ๋ชจ

โญ๏ธ ์‚ฌ์šฉ๋ฐฉ๋ฒ• โญ๏ธ์‚ฌ์šฉ๋ฐฉ๋ฒ• ์‹œ์—ฐ ์˜์ƒ

๐ŸŒˆ Design Guide

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ

๐ŸŽ† Screenshots

HomeView RemoteView QuestionView
HomeView RemoteView QuestionView

PresentationView
PresentationView
PeedBackView
PeedBackView

VoteView
VoteView

โœจ Skills & Tech Stack

  1. ์ด์Šˆ๊ด€๋ฆฌ : Miro
  2. ํ˜•์ƒ๊ด€๋ฆฌ : Github
  3. ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ : Ryver, Notion, Zoom
  4. ๊ฐœ๋ฐœํ™˜๊ฒฝ
  • OS : iOS 15.5
  • IDE : Xcode 13.4.1
  1. ์ƒ์„ธ์‚ฌ์šฉ
  • Application : UIKit, SwiftUI
  • Design : Sketch, Figma, Illustrator
  1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
import CoreHpatics
import MultipeerConnectivity
import Network
import OS
import SwiftUI
import UIKit

๐Ÿ”€ Git

  1. ๊ธฐ๋ณธ์ ์ธ ์ž‘์—… ํ”„๋กœ์„ธ์Šค

    • Issue ์ƒ์„ฑ: Assignees ํ• ๋‹น, Label ํ• ๋‹น
    • Kanban ์ž‘์„ฑ: Issue์˜ TODO๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์นธ๋ฐ˜ ์ž‘์„ฑํ•˜๊ธฐ
    • Branch ์ž‘์„ฑ: Branch์˜ ์ข…๋ฅ˜์— ๋งž๋Š” ํ˜•ํƒœ๋กœ ์ด๋ฆ„ ์ง€์ •
    • Work: Issue์—์„œ ์ž‘์„ฑํ–ˆ๋˜ ๋‚ด์šฉ๋“ค์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ, ๋””์ž์ธ etc ๊ตฌํ˜„
    • Pull Request: Issue์˜ TODO์—์„œ ์ œ์‹œ๋˜์—ˆ๋˜ ๋ชจ๋“  ์ž‘์—…์„ ๋งˆ์นœ ํ›„ PR ์‹ ์ฒญ
    • ์ƒ์œ„ Branch์— Mergeํ•˜๊ธฐ ์ „, ์ƒ์œ„ Branch์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ˜„์žฌ ์ž‘์—…ํ–ˆ๋˜ Branch๋กœ ๋“ค๊ณ ์™€, ์ตœ๋Œ€ํ•œ Conflict๊ฐ€ ์—†๊ฒŒ ๋งŒ๋“ค๊ธฐ
    • ์ตœ์†Œ 2๋ช… ์ด์ƒ์˜ Reviewer์˜ Approve ํ›„ Merge ๊ฐ€๋Šฅ
  2. Phase: Issue

    • Issue ์ƒ์„ฑ ๊ทœ์น™
    • ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ์ด์Šˆ ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ
    • ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ์š”์†Œ๋“ค: ํ•ด๊ฒฐํ•ด์•ผํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ฐ„๋žต ์„œ์ˆ 
    • ๊ตฌํ˜„ ๋ฐฉ์•ˆ: ์œ„์˜ ์š”์†Œ๋“ค์˜ ์‹ค์ œ ๊ตฌํ˜„ ์‹œ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ ๋ฐ ๋ฐฉ๋ฒ•์„ ์ž‘์„ฑํ•œ๋‹ค
  • ์ œ๋ชฉ
    • 50์ž ์ด๋‚ด
    • ๋‹จ์–ด ํ˜•ํƒœ๋กœ ์ข…๊ฒฐ
ex) [FEAT] Add Notification Permission Error
ex) [FEAT] Notification ์ ‘๊ทผ ๊ถŒํ•œ ์ถ”๊ฐ€
  • ๋ณธ๋ฌธ
    • 80์ž ์ด๋‚ด
    • ๋‹จ์–ด ํ˜•ํƒœ๋กœ ์ข…๊ฒฐ
    • ์ž‘์—… ์‚ฌํ•ญ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์„ค๋ช…
  1. Phase: Branch
    • Branch ๊ด€๋ฆฌ
  • Main Branch

    • Dev Branch: For Development
    • View Branch: Development Branch ์ค‘์—์„œ๋„ View ๋‹จ์œ„๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ Branch๋“ค
    • ๊ฐœ๋ฐœ ์ด์™ธ์˜ Branch๋Š” ์–ธ์ œ๋“ ์ง€ ์ถ”๊ฐ€๋  ์—ฌ์ง€ ์กด์žฌ
  • Branch ์ƒ์„ฑ ๊ทœ์น™

    • Default: ์ž‘์—…ํƒœ๊ทธ/์ด์Šˆ๋ฒˆํ˜ธ
    • View Branch: View์ด๋ฆ„/์ด์Šˆ๋ฒˆํ˜ธ
ex) FEAT/[FEAT] AudienceView (#7) #11
ex) HomeView/[FEAT] MainView #3
  1. Phase: Pull Request
  • PR(Pull Request) ๊ทœ์น™

    • [์ž‘์—…ํƒœ๊ทธ] ์ž‘์—… ์‚ฌํ•ญ ์ถ•์•ฝ
    • ex) [FEAT] ํšŒ์›๊ฐ€์ž… ๋ทฐ ์ถ”๊ฐ€
    • PR ์ƒ์„ฑ ํ›„, ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์˜ Development์—์„œ ์—ฐ๊ด€๋œ ์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ
    • Close #์ด์Šˆ๋„˜๋ฒ„ ์˜ ํ˜•ํƒœ๋กœ ์ž๋™ ํ• ๋‹น์ด ๊ฐ€๋Šฅ
  • ์ž‘์—…ํƒœ๊ทธ ์ผ๊ด„

    • FEAT : ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€ / ์ผ๋ถ€ ์ฝ”๋“œ ์ถ”๊ฐ€ / ์ผ๋ถ€ ์ฝ”๋“œ ์ˆ˜์ •(๋ฆฌํŒฉํ† ๋ง๊ณผ ๊ตฌ๋ถ„)
    • FIX : ๋ฒ„๊ทธ ์ˆ˜์ •
    • DOCS : ๋ฌธ์„œ ์ˆ˜์ •
    • TEST : ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€
    • REFACTOR : ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
    • STYLE : ์ฝ”๋“œ ์˜๋ฏธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ
    • CHORE : ๋นŒ๋“œ ๋ถ€๋ถ„ ํ˜น์€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ •์‚ฌํ•ญ

๐Ÿซ‚ Authors

๐Ÿ“š Documentation

Documentation

๐Ÿ” License

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.