Skip to content
/ ForestTori Public template
forked from DevTillDie/ForestTori

🌳 은둔청년 μƒν™œμŠ΅κ΄€ κ°œμ„  μ•± μˆ²ν† λ¦¬

Notifications You must be signed in to change notification settings

yoohyebin/ForestTori

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

80 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌳 은둔청년 μƒν™œμŠ΅κ΄€ κ°œμ„  μ•± μˆ²ν† λ¦¬

image

Available on the App Store

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

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

  • μˆ²ν† λ¦¬λŠ” 은둔 청년듀이 μƒν™œ μŠ΅κ΄€μ„ κ°œμ„ ν•˜κ³  μžμ‘΄κ°μ„ νšŒλ³΅ν•˜λ„λ‘ λ•λŠ” μ•±μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžλŠ” λ‹¨κ³„λ³„λ‘œ λ―Έμ…˜μ„ μˆ˜ν–‰ν•˜λ©° μ„œμ„œνžˆ μΌμƒμœΌλ‘œ λŒμ•„κ°ˆ μ€€λΉ„λ₯Ό ν•˜κ²Œ λ©λ‹ˆλ‹€.
  • 각 λ‹¨κ³„λ§ˆλ‹€ λ―Έμ…˜μ„ μ„ νƒν•˜μ—¬ μ™„λ£Œν•œ ν›„, ν•΄λ‹Ή λ―Έμ…˜μ— λŒ€ν•œ 감정과 ν›„κΈ°λ₯Ό μΌμ§€λ‘œ μž‘μ„±ν•  수 있으며, μ™„λ£Œλœ λ―Έμ…˜λ“€μ€ "정원"μ—μ„œ λͺ¨μ•„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 이 정원은 AR둜 μ‹€μ œ 세상에 μ‘΄μž¬ν•˜λŠ” κ²ƒμ²˜λŸΌ 카메라λ₯Ό 톡해 μ‹œκ°ν™”λ©λ‹ˆλ‹€.

☺️ 멀버 μ†Œκ°œ

πŸ«’Olive (UI/UX λ””λ ‰ν„°) 🌻Helia (CTO) πŸ—½NewYork (PM)
UI/UX λ””μžμΈ, 기획 개발, 기획 개발, 기획

πŸ”§ Stacks

Environment

Xcode Github

Development

Swift SwiftUI Realm

Communication

Notion Discord

Framework

ARKit

  • 증강 ν˜„μ‹€(AR) ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • 정원을 μ‹€μ œ μƒν™œ 속에 μ‘΄μž¬ν•˜λŠ” κ²ƒμ²˜λŸΌ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

SceneKit

  • 3D κ·Έλž˜ν”½μŠ€ ν”„λ ˆμž„μ›Œν¬λ‘œ, 3D μ½˜ν…μΈ λ₯Ό μƒμ„±ν•˜κ³  λ Œλ”λ§ν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€.
  • μ‚¬μš©μžμ™€ μƒν˜Έμž‘μš©ν•  수 μžˆλŠ” 3D 였브젝트λ₯Ό μƒμ„±ν•˜κ³  λ Œλ”λ§ν•˜λŠ” 데 μ‚¬μš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

⭐ Main Feature

단계별 λ―Έμ…˜ μˆ˜ν–‰

  • μ‚¬μš©μžλŠ” 4개의 챕터λ₯Ό 거치며 λ―Έμ…˜μ„ μ°¨λ‘€λ‘œ μˆ˜ν–‰ν•˜κ²Œ λ©λ‹ˆλ‹€.
  • 각 μ±•ν„°μ˜ λ―Έμ…˜ λ‚œμ΄λ„λŠ” 점차 μƒμŠΉν•˜λ©°, λ―Έμ…˜ μ™„λ£Œ ν›„μ—λŠ” 사진과 기둝을 ν¬ν•¨ν•œ μ„±μž₯일지λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.

정원

  • μ‚¬μš©μžλŠ” μ™„λ£Œν•œ λ―Έμ…˜μ„ μ •μ›μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ •μ›μ—λŠ” μ™„λ£Œλœ λ―Έμ…˜μ„ μƒμ§•ν•˜λŠ” 식물이 심어지며, 각 식물을 μ„ νƒν•˜λ©΄ ν•΄λ‹Ή λ―Έμ…˜μ˜ μ„±μž₯일지λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

AR κΈ°λŠ₯

  • μ‚¬μš©μžλŠ” AR을 톡해 정원을 생동감 있게 감상할 수 있으며, 이λ₯Ό 톡해 μ‹€μ œ μƒν™œ μ†μ—μ„œ λ―Έμ…˜ μˆ˜ν–‰μ— λŒ€ν•œ 동기뢀여λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.

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

Git μ „λž΅

πŸ“‚ Project Structure

β”œβ”€ .swiftlint.yml
β”œβ”€ ForestToriApp.swift
β”œβ”€ Info.plist
β”œβ”€ Preview Content
β”œβ”€ Resource
β”‚  β”œβ”€ 3D_Objects
β”‚  β”œβ”€ Assets.xcassets
β”‚  β”œβ”€ Chapters
β”‚  β”‚  β”œβ”€ AutumnPlants.tsv
β”‚  β”‚  β”œβ”€ Chapters.tsv
β”‚  β”‚  β”œβ”€ SpringPlants.tsv
β”‚  β”‚  β”œβ”€ SummerPlants.tsv
β”‚  β”‚  └─ WinterPlants.tsv
β”‚  β”œβ”€ CharacterDialogues
β”‚  β”‚  β”œβ”€ AutumnCharacter.tsv
β”‚  β”‚  β”œβ”€ SpringCharacter.tsv
β”‚  β”‚  β”œβ”€ SummerCharacter.tsv
β”‚  β”‚  └─ WinterCharacter.tsv
β”‚  └─ Pretendard
└─ Source
   β”œβ”€ Ending
   β”‚  β”œβ”€ EndingView.swift
   β”‚  └─ EpilogueView.swift
   β”œβ”€ Model
   β”‚  β”œβ”€ Chapter.swift
   β”‚  β”œβ”€ Dialogue.swift
   β”‚  β”œβ”€ GardenPlant.swift
   β”‚  β”œβ”€ History.swift
   β”‚  β”œβ”€ Mission.swift
   β”‚  β”œβ”€ Onboarding.swift
   β”‚  β”œβ”€ Plant.swift
   β”‚  └─ User.swift
   β”œβ”€ Utils
   β”‚  β”œβ”€ Component
   β”‚  β”‚  β”œβ”€ BottomSheet.swift
   β”‚  β”‚  β”œβ”€ Buttons
   β”‚  β”‚  β”‚  β”œβ”€ OnboardingDoneButton.swift
   β”‚  β”‚  β”‚  └─ OnboardingSkipButton.swift
   β”‚  β”‚  β”œβ”€ ChapterButtonStyle.swift
   β”‚  β”‚  β”œβ”€ ProgressStyle.swift
   β”‚  β”‚  β”œβ”€ Scenes
   β”‚  β”‚  β”‚  └─ GardenScene.swift
   β”‚  β”‚  β”œβ”€ TextBoxes
   β”‚  β”‚  β”‚  └─ OnboardingTextBox.swift
   β”‚  β”‚  └─ UnevenRoundedRectangle.swift
   β”‚  β”œβ”€ Extension
   β”‚  β”‚  β”œβ”€ Date+.swift
   β”‚  β”‚  β”œβ”€ Font+.swift
   β”‚  β”‚  β”œβ”€ String+.swift
   β”‚  β”‚  └─ View+.swift
   β”‚  β”œβ”€ KeyboardHandler.swift
   β”‚  └─ Manager
   β”‚     β”œβ”€ DataManager.swift
   β”‚     β”œβ”€ GameManager.swift
   β”‚     β”œβ”€ NotificationManager.swift
   β”‚     └─ RealmManager.swift
   β”œβ”€ View
   β”‚  β”œβ”€ Garden
   β”‚  β”‚  β”œβ”€ CameraPreview.swift
   β”‚  β”‚  β”œβ”€ GardenARView.swift
   β”‚  β”‚  β”œβ”€ GardenView.swift
   β”‚  β”‚  β”œβ”€ HistoryDetailView.swift
   β”‚  β”‚  └─ HistoryView.swift
   β”‚  β”œβ”€ Main
   β”‚  β”‚  β”œβ”€ CompleteMissionView.swift
   β”‚  β”‚  β”œβ”€ History
   β”‚  β”‚  β”‚  β”œβ”€ ImageCropView.swift
   β”‚  β”‚  β”‚  β”œβ”€ ImagePicker.swift
   β”‚  β”‚  β”‚  └─ WriteHistoryView.swift
   β”‚  β”‚  β”œβ”€ MainView.swift
   β”‚  β”‚  β”œβ”€ PlantCardView.swift
   β”‚  β”‚  β”œβ”€ PlantPotView.swift
   β”‚  β”‚  β”œβ”€ PlantView.swift
   β”‚  β”‚  └─ SelectPlantView.swift
   β”‚  β”œβ”€ Onboarding
   β”‚  β”‚  β”œβ”€ NameSettingView.swift
   β”‚  β”‚  β”œβ”€ OnboardingCompletionView.swift
   β”‚  β”‚  β”œβ”€ OnboardingGreetingView.swift
   β”‚  β”‚  β”œβ”€ OnboardingIntroductionView.swift
   β”‚  β”‚  β”œβ”€ OnboardingNamingView.swift
   β”‚  β”‚  └─ OnboardingView.swift
   β”‚  └─ ServieStateView.swift
   └─ ViewModel
      β”œβ”€ EpilogueViewModel.swift
      β”œβ”€ GardenARViewModel.swift
      β”œβ”€ GardenViewModel.swift
      β”œβ”€ HistoryViewModel.swift
      β”œβ”€ MainViewModel.swift
      β”œβ”€ OnboardingViewModel.swift
      β”œβ”€ ServiceStateViewModel.swift
      └─ WriteHistoryViewModel.swift


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

  • μ„œλΉ„μŠ€ 기획
  • UI 및 μΈν„°λž™μ…˜ κ΅¬ν˜„
  • AR κΈ°λŠ₯ κ΅¬ν˜„
  • λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕

πŸ’‘ Learnings and Insights

  • 기술 νŒ€μž₯μœΌλ‘œμ„œ κΈ°λŠ₯ λͺ…μ„Έμ„œ μž‘μ„±λΆ€ν„° μ½”λ“œ μ»¨λ²€μ…˜ 및 브랜치 μ „λž΅ κ΄€λ¦¬μ˜ μ€‘μš”μ„±μ„ μ‹€κ°ν•˜λ©°, 이λ₯Ό 톡해 기술 관리 λŠ₯λ ₯을 ν•œμΈ΅ 더 μ„±μž₯μ‹œν‚¬ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.
  • ARKitκ³Ό SceneKit을 ν™œμš©ν•œ μ‹ κΈ°μˆ μ„ 앱에 μ μš©ν•˜λ©΄μ„œ 큰 ν₯λ―Έλ₯Ό 느꼈고, μƒˆλ‘œμš΄ 도전에 λŒ€ν•œ 즐거움을 κ²½ν—˜ν–ˆμŠ΅λ‹ˆλ‹€.

About

🌳 은둔청년 μƒν™œμŠ΅κ΄€ κ°œμ„  μ•± μˆ²ν† λ¦¬

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%