Skip to content

yoohyebin/Outline

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸƒπŸ»β€β™€οΈ GPS Art λŸ¬λ‹ κ°€μ΄λ“œ OUTLINE

image

Available on the App Store Available on the App Store

κ°œλ°œκΈ°κ°„: 2023.09 ~ μ§„ν–‰ 쀑

πŸ“– ν”„λ‘œμ νŠΈ μ†Œκ°œ

  • OUTLINE은 μ‚¬μš©μžμ˜ λŸ¬λ‹ 경둜λ₯Ό GPS둜 μΆ”μ ν•˜μ—¬ λ‚˜λ§Œμ˜ μ•„νŠΈλ₯Ό λ§Œλ“€ 수 μžˆλŠ” μ•±μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžλŠ” 제곡된 μ½”μŠ€λ₯Ό μ„ νƒν•˜κ³ , 지도에 ν‘œμ‹œλœ κ°€μ΄λ“œλΌμΈμ„ 따라 달릴 수 μžˆλ„λ‘ μ•ˆλ‚΄λ°›μŠ΅λ‹ˆλ‹€.
  • λŸ¬λ‹μ„ μ™„λ£Œν•œ ν›„μ—λŠ” 기둝을 ν•œλˆˆμ— ν™•μΈν•˜κ³ , μΈμŠ€νƒ€κ·Έλž¨ μŠ€ν† λ¦¬λ‘œ μ†μ‰½κ²Œ κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

☺️ 멀버 μ†Œκ°œ

Helia Tyler Hain Dana Seze
iOS Developer iOS Developer iOS Developer Designer Project Manager

πŸ”§ Stacks

Environment

Xcode Github
Firebase

Development

Swift SwiftUI

Communication

Notion Discord JIRA

Platform

  • iOS
  • WatchOS

Framework

MapKit

  • 지도 ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • 지도 μƒμ—μ„œ μ‚¬μš©μžμ˜ 이동 경둜λ₯Ό μΆ”μ ν•˜λŠ” 데 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

HealthKit

  • 건강 및 ν”ΌνŠΈλ‹ˆμŠ€ 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžμ˜ 건강 데이터λ₯Ό μΈ‘μ •ν•˜κ³  κ΄€λ¦¬ν•˜μ—¬ λŸ¬λ‹ 데이터λ₯Ό κΈ°λ‘ν•˜λŠ” 데 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

CoreMotion

  • iOS 및 watchOS κΈ°κΈ°μ—μ„œ μ„Όμ„œ 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³  μ²˜λ¦¬ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžμ˜ μ›€μ§μž„μ„ μΆ”μ ν•˜μ—¬ λŸ¬λ‹ 경둜λ₯Ό 보닀 μ •ν™•ν•˜κ²Œ κΈ°λ‘ν•˜λŠ” 데 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ActivityKit

  • μ‹€μ‹œκ°„μœΌλ‘œ μ—…λ°μ΄νŠΈλ˜λŠ” 라이브 μ•‘ν‹°λΉ„ν‹°λ₯Ό 생성할 수 있게 ν•΄μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžμ˜ μ‹€μ‹œκ°„ λŸ¬λ‹ 정보λ₯Ό μž κΈˆν™”λ©΄μ— ν‘œμ‹œν•˜λŠ” 데 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

⭐ Main Feature

GPS Art λŸ¬λ‹

  • μ‚¬μš©μžλŠ” 제곡된 μ½”μŠ€λ₯Ό 선택해 κ°€μ΄λ“œλΌμΈμ„ 따라 λŸ¬λ‹ν•˜λ©°, λŸ¬λ‹ 쀑 μ‹€μ‹œκ°„μœΌλ‘œ κ²½λ‘œμ™€ 완성도λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • λŸ¬λ‹μ΄ λλ‚˜λ©΄ 거리, μ‹œκ°„, 칼둜리, μ‹¬λ°•μˆ˜, 패이슀 λ“±μ˜ 데이터λ₯Ό ν™•μΈν•˜κ³ , 완성도 점수λ₯Ό 받을 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ½”μŠ€ λ‚΄ ν•«μŠ€νŒŸ 정보λ₯Ό μ œκ³΅ν•˜μ—¬ μ£Όλ³€ ν™˜κ²½μ„ μ¦κΈ°λ©΄μ„œ 달릴 수 μžˆμŠ΅λ‹ˆλ‹€.

자유 λŸ¬λ‹

  • μ‚¬μš©μžλŠ” 자유 λŸ¬λ‹μ„ μ„ νƒν•˜μ—¬ 자유럽게 λŸ¬λ‹ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŸ¬λ‹ λͺ¨μ•„보기

  • μ™„λ£Œλœ λŸ¬λ‹ 기둝은 μΉ΄λ“œ ν˜•νƒœλ‘œ μ •λ¦¬λ˜λ©°, μ΅œμ‹ μˆœ, 였래된 순, 점수 순으둜 μ •λ ¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μΈμŠ€νƒ€ 곡유

  • μ‚¬μš©μžλŠ” μ™„λ£Œν•œ λŸ¬λ‹ 기둝을 μΈμŠ€νƒ€κ·Έλž¨μ— κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • λ°°κ²½ 이미지λ₯Ό μ΄¬μ˜ν•˜κ±°λ‚˜ μ„ νƒν•˜μ—¬ λŸ¬λ‹ 기둝을 λ”μš± κ°œμ„± 있게 κΎΈλ°€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 4κ°€μ§€μ˜ λ‹€μ–‘ν•œ 곡유 방식이 μ œκ³΅λ˜μ–΄, μ‚¬μš©μžκ°€ μ›ν•˜λŠ” μŠ€νƒ€μΌλ‘œ λŸ¬λ‹ 기둝을 κ³΅μœ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸˆβ€β¬› Git Branch

Git μ „λž΅

πŸ“‚ Project Structure

β”œβ”€ .swiftlint.yml
β”œβ”€ GoogleService-Info.plist
β”‚
β”œβ”€ Shared
β”‚  β”œβ”€ Manager
β”‚  β”‚  β”œβ”€ LocationManager.swift
β”‚  β”‚  β”œβ”€ PathManager.swift
β”‚  β”‚  └─ ScoreManager.swift
β”‚  └─ Model
β”‚     β”œβ”€ GPSArtCourse.swift
β”‚     β”œβ”€ MirroringModel.swift
β”‚     └─ RunningRecord.swift
β”‚
β”œβ”€ Outline
β”‚  β”œβ”€ Info.plist
β”‚  β”œβ”€ Outline.entitlements
β”‚  β”œβ”€ Resource
β”‚  β”‚  β”œβ”€ Color.xcassets
β”‚  β”‚  β”œβ”€ Font
β”‚  β”‚  β”œβ”€ Image
β”‚  β”‚  └─ KML
β”‚  β”‚  
β”‚  β”œβ”€ Source
β”‚  β”‚  β”œβ”€ ContentView.swift
β”‚  β”‚  β”œβ”€ Manager
β”‚  β”‚  β”‚  β”œβ”€ ConnectivityManager.swift
β”‚  β”‚  β”‚  β”œβ”€ CourseDataUploadManager.swift
β”‚  β”‚  β”‚  β”œβ”€ HapticManager.swift
β”‚  β”‚  β”‚  β”œβ”€ HealthKitManager.swift
β”‚  β”‚  β”‚  β”œβ”€ KMLParserManager.swift
β”‚  β”‚  β”‚  β”œβ”€ MotionManager.swift
β”‚  β”‚  β”‚  β”œβ”€ RunningDataManager.swift
β”‚  β”‚  β”‚  └─ RunningStartManager.swift
β”‚  β”‚  β”œβ”€ Model
β”‚  β”‚  β”‚  β”œβ”€ Auth
β”‚  β”‚  β”‚  β”‚  β”œβ”€ AppleAuthModel.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ AuthModel.swift
β”‚  β”‚  β”‚  β”‚  └─ KakaoAuthModel.swift
β”‚  β”‚  β”‚  β”œβ”€ CardModel.swift
β”‚  β”‚  β”‚  β”œβ”€ Course
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CourseCategoryModelType.swift
β”‚  β”‚  β”‚  β”‚  └─ CourseModel.swift
β”‚  β”‚  β”‚  β”œβ”€ Place.swift
β”‚  β”‚  β”‚  β”œβ”€ RunningAttributes.swift
β”‚  β”‚  β”‚  β”œβ”€ Score
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CourseScoreModel.swift
β”‚  β”‚  β”‚  β”‚  └─ CourseScoreModelType.swift
β”‚  β”‚  β”‚  β”œβ”€ ShareModel.swift
β”‚  β”‚  β”‚  β”œβ”€ TabModel.swift
β”‚  β”‚  β”‚  β”œβ”€ UserData
β”‚  β”‚  β”‚  β”‚  β”œβ”€ PersistentController.swift
β”‚  β”‚  β”‚  β”‚  └─ UserDataModel.swift
β”‚  β”‚  β”‚  └─ UserInfo
β”‚  β”‚  β”‚     β”œβ”€ UserInfoModel.swift
β”‚  β”‚  β”‚     └─ UserInfoModelType.swift
β”‚  β”‚  β”œβ”€ Utils
β”‚  β”‚  β”‚  β”œβ”€ Component
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ButtonStyle.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Card
β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ BigCard.swift
β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ BigCardBackside.swift
β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ BigCardFrontside.swift
β”‚  β”‚  β”‚  β”‚  β”‚  └─ ScoreShimmer.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardBorder.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CompleteButton.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Confetti
β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ Confetti.swift
β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ ConfettiShapes.swift
β”‚  β”‚  β”‚  β”‚  β”‚  └─ ConfettiView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CountDown.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ GuideToFreeRunningSheet.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ NeedLoginSheet.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ PermissionSheet.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ PreferenceKey.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningFinishPopUp.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningPopup.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ScoreStar.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ Shimmer.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ SlideToUnlock.swift
β”‚  β”‚  β”‚  β”‚  └─ UnderlineButton.swift
β”‚  β”‚  β”‚  └─ Extension
β”‚  β”‚  β”‚     β”œβ”€ ArrayExtension.swift
β”‚  β”‚  β”‚     β”œβ”€ CoordinateExtension.swift
β”‚  β”‚  β”‚     β”œβ”€ DateExtention.swift
β”‚  β”‚  β”‚     β”œβ”€ DoubleExtension.swift
β”‚  β”‚  β”‚     β”œβ”€ FontExtension.swift
β”‚  β”‚  β”‚     └─ ViewExtension.swift
β”‚  β”‚  β”œβ”€ View
β”‚  β”‚  β”‚  β”œβ”€ FininshRunning
β”‚  β”‚  β”‚  β”‚  β”œβ”€ FinishRunningMapView.swift
β”‚  β”‚  β”‚  β”‚  └─ FinishRunningView.swift
β”‚  β”‚  β”‚  β”œβ”€ FreeRunning
β”‚  β”‚  β”‚  β”‚  β”œβ”€ FreeRunningHomeView.swift
β”‚  β”‚  β”‚  β”‚  └─ FreeRunningMapView.swift
β”‚  β”‚  β”‚  β”œβ”€ GPSArtHome
β”‚  β”‚  β”‚  β”‚  β”œβ”€ BigCardView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardDetailInformationMapView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardDetailInformationView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardDetailMap.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardDetailMapView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CardDetailView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CategoryScrollView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ GPSArtHomeHeader.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ GPSArtHomeView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MapInfoView.swift
β”‚  β”‚  β”‚  β”‚  └─ RankingScrollView.swift
β”‚  β”‚  β”‚  β”œβ”€ LookAround
β”‚  β”‚  β”‚  β”‚  └─ LookAroundView.swift
β”‚  β”‚  β”‚  β”œβ”€ Mirroring
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MirroringMapView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MirroringMetricsView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MirroringNavigationView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MirroringView.swift
β”‚  β”‚  β”‚  β”‚  └─ Mirroringsheet.swift
β”‚  β”‚  β”‚  β”œβ”€ Onboarding
β”‚  β”‚  β”‚  β”‚  β”œβ”€ HealthAuthView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ InputNicknameView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ InputUserInfoView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ LoginView.swift
β”‚  β”‚  β”‚  β”‚  └─ NotificationAuthView.swift
β”‚  β”‚  β”‚  β”œβ”€ Profile
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ProfileHealthInfoView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ProfileUserInfoView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ProfileView.swift
β”‚  β”‚  β”‚  β”‚  └─ ProfileVoiceView.swift
β”‚  β”‚  β”‚  β”œβ”€ Record
β”‚  β”‚  β”‚  β”‚  β”œβ”€ MapSnapshotImageView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordCardView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordDetailView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordEmptyRunningView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordGridView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordHeaderView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordListHeaderView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordListView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RecordLookAroundView.swift
β”‚  β”‚  β”‚  β”‚  └─ RecordView.swift
β”‚  β”‚  β”‚  β”œβ”€ Running
β”‚  β”‚  β”‚  β”‚  β”œβ”€ CourseGuideView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ FirstRunningGuideView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningMapView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningMetricsView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningNavigationView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ RunningView.swift
β”‚  β”‚  β”‚  β”‚  └─ TransparentBlurView.swift
β”‚  β”‚  β”‚  β”œβ”€ Share
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ShareMapView.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ShareView+Camera.swift
β”‚  β”‚  β”‚  β”‚  β”œβ”€ ShareView+Extension.swift
β”‚  β”‚  β”‚  β”‚  └─ ShareView.swift
β”‚  β”‚  β”‚  β”œβ”€ Tab
β”‚  β”‚  β”‚  β”‚  β”œβ”€ HomeTabView.swift
β”‚  β”‚  β”‚  β”‚  └─ TabBar.swift
β”‚  β”‚  β”‚  └─ TestView
β”‚  β”‚  β”‚     β”œβ”€ MapSnapshotTestView.swift
β”‚  β”‚  β”‚     └─ PathManagerTestView.swift
β”‚  β”‚  └─ ViewModel
β”‚  β”‚     β”œβ”€ FinishRunningViewModel.swift
β”‚  β”‚     β”œβ”€ GPSArtHomeViewModel.swift
β”‚  β”‚     β”œβ”€ HealthAuthViewModel.swift
β”‚  β”‚     β”œβ”€ InputNicknameViewModel.swift
β”‚  β”‚     β”œβ”€ InputUserInfoViewModel.swift
β”‚  β”‚     β”œβ”€ Login
β”‚  β”‚     β”‚  └─ LoginViewModel.swift
β”‚  β”‚     β”œβ”€ ProfileUserInfoViewModel.swift
β”‚  β”‚     β”œβ”€ ProfileViewModel.swift
β”‚  β”‚     β”œβ”€ RecordViewModel.swift
β”‚  β”‚     β”œβ”€ RunningMapViewModel.swift
β”‚  β”‚     └─ ShareViewModel.swift
β”‚  └─ UserCoreDataModel.xcdatamodeld
β”‚     └─ UserCoreDataModel.xcdatamodel
β”‚        └─ contents
β”‚ 
β”œβ”€ Outline Watch
β”‚  β”œβ”€ Info.plist
β”‚  β”œβ”€ Resource
β”‚  β”‚  β”œβ”€ Font
β”‚  β”‚  β”œβ”€ Image
β”‚  β”‚  └─ WatchColor.xcassets
β”‚  β”‚
β”‚  └─ Source
β”‚     β”œβ”€ ContentWatchView.swift
β”‚     β”œβ”€ DesignSystem
β”‚     β”‚  β”œβ”€ Component
β”‚     β”‚  β”‚  β”œβ”€ Confetti
β”‚     β”‚  β”‚  β”‚  β”œβ”€ Confetti.swift
β”‚     β”‚  β”‚  β”‚  β”œβ”€ ConfettiShapes.swift
β”‚     β”‚  β”‚  β”‚  └─ ConfettiWatchView.swift
β”‚     β”‚  β”‚  β”œβ”€ ControlButton.swift
β”‚     β”‚  β”‚  β”œβ”€ ElapsedTime.swift
β”‚     β”‚  β”‚  β”œβ”€ EndRunningSheet.swift
β”‚     β”‚  β”‚  β”œβ”€ FinalImage.swift
β”‚     β”‚  β”‚  β”œβ”€ PermissionSheet.swift
β”‚     β”‚  β”‚  └─ TwoButtonSheet.swift
β”‚     β”‚  └─ Extension
β”‚     β”‚     β”œβ”€ ArrayExtension.swift
β”‚     β”‚     β”œβ”€ CoordinateExtension.swift
β”‚     β”‚     β”œβ”€ DoubleExtension.swift
β”‚     β”‚     └─ FontExtension.swift
β”‚     β”œβ”€ Manager
β”‚     β”‚  β”œβ”€ ConnectivityManager.swift
β”‚     β”‚  β”œβ”€ WatchRunningManager.swift
β”‚     β”‚  └─ WatchWorkoutManager.swift
β”‚     β”œβ”€ View
β”‚     β”‚  β”œβ”€ CountDownView.swift
β”‚     β”‚  β”œβ”€ CourseDetailView.swift
β”‚     β”‚  β”œβ”€ CourseListWatchView.swift
β”‚     β”‚  β”œβ”€ EmptyContentView.swift
β”‚     β”‚  β”œβ”€ FinishWatchView.swift
β”‚     β”‚  β”œβ”€ Mirroring
β”‚     β”‚  β”‚  β”œβ”€ MirroringControlsView.swift
β”‚     β”‚  β”‚  β”œβ”€ MirroringMapWatchView.swift
β”‚     β”‚  β”‚  β”œβ”€ MirroringMetricsView.swift
β”‚     β”‚  β”‚  β”œβ”€ MirroringNavigationWatchView.swift
β”‚     β”‚  β”‚  └─ MirroringTabWatchView.swift
β”‚     β”‚  β”œβ”€ Running
β”‚     β”‚  β”‚  β”œβ”€ ControlsView.swift
β”‚     β”‚  β”‚  β”œβ”€ MapWatchView.swift
β”‚     β”‚  β”‚  β”œβ”€ MetricsView.swift
β”‚     β”‚  β”‚  β”œβ”€ NavigationTabView.swift
β”‚     β”‚  β”‚  └─ TabWatchView.swift
β”‚     β”‚  └─ SummaryView.swift
β”‚     └─ ViewModel
β”‚        └─ CourseListWatchViewModel.swift
β”‚
└─ OutlineLiveActivity
   β”œβ”€ AppIntent.swift
   β”œβ”€ Assets.xcassets
   β”‚  β”œβ”€ AccentColor.colorset
   β”‚  β”‚  └─ Contents.json
   β”‚  β”œβ”€ AppIcon.appiconset
   β”‚  β”‚  └─ Contents.json
   β”‚  β”œβ”€ Contents.json
   β”‚  └─ WidgetBackground.colorset
   β”‚     └─ Contents.json
   β”œβ”€ Info.plist
   β”œβ”€ OutlineLiveActivity.swift
   └─ OutlineLiveActivityBundle.swift

πŸ‘©πŸ»β€πŸ’» Role

  • μ„œλΉ„μŠ€ 기획
  • UI 및 μΈν„°λž™μ…˜ κ΅¬ν˜„
  • Map κΈ°λŠ₯ 개발
  • μ‚¬μš©μžμ˜ μ΄λ™κ²½λ‘œ 좔적
  • κ°€μ΄λ“œλΌμΈ ν‘œμ‹œ
  • 경둜 보정을 μœ„ν•œ Smoothing Algorithm κ΅¬ν˜„
  • μΈμŠ€νƒ€ 곡유 κΈ°λŠ₯ κ΅¬ν˜„

πŸ’‘ Learnings and Insights

  • Daily Scrumκ³Ό μ£Όκ°„ 회고λ₯Ό 톡해 νŒ€μ›λ“€κ³Ό μ§„ν–‰ 상황을 κ³΅μœ ν•˜κ³  효과적으둜 μ†Œν†΅ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
  • ν”„λ‘œμ νŠΈμ˜ ꡬ쑰λ₯Ό μ²΄κ³„μ μœΌλ‘œ μ„€κ³„ν•˜λŠ” 방법을 λ°°μ› μŠ΅λ‹ˆλ‹€.
  • μ½”λ“œ 리뷰λ₯Ό 톡해 νŒ€μ›λ“€κ³Ό μ½”λ“œ μŠ€νƒ€μΌμ„ ν†΅μΌν•˜κ³ , 더 효율적인 μ½”λ“œ μž‘μ„± 방법을 읡힐 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

About

πŸƒπŸ»β€β™€οΈ GPS Art λŸ¬λ‹ κ°€μ΄λ“œ OUTLIN

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%