Skip to content

🌱 λͺ¨μ—¬λ΄μš” λ™λ¬Όμ˜ 숲 κ²Œμž„μ„ μœ„ν•œ Wiki μ•±

Notifications You must be signed in to change notification settings

leeari95/ACNH-wiki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

Swift 5.6 Xcode 14.0 RxSwift 14.0 Build and Test @nook_portal_plus @lee_ari95

λ„ˆκ΅΄ν¬ν„Έ+

Β 

μΉ΄νƒˆλ‘œκ·Έ μˆ˜μ§‘ 기둝의 즐거움 🌱

v1.0.0 2022.05 - 2022.07

Β 

πŸ‘©πŸ»β€πŸ’» 개발자 μ†Œκ°œ

아리(Ari)

기획, λ””μžμΈ, 개발 λͺ¨λ‘ λ‹€ 아리가 ν–ˆμ–΄μš”. πŸ˜΅β€πŸ’«

Β 

⭐️ ν”„λ‘œμ νŠΈ μ†Œκ°œ

λͺ¨μ—¬λ΄μš” λ™λ¬Όμ˜ μˆ²μ„ ν”Œλ ˆμ΄ν•˜λ©΄μ„œ μˆ˜λ§Žμ€ μ•„μ΄ν…œλ“€μ„ λ‚΄κ°€ μˆ˜μ§‘ν–ˆλŠ”μ§€μ˜ μ—¬λΆ€λ₯Ό κΈ°λ‘ν•΄λ‘˜ 수 μžˆμ–΄μš”. (가ꡬ, 생물, λ ˆμ‹œν”Ό λ“±...)

μ•„μ΄ν…œμ˜ 상세정보 및 μˆ˜μ§‘ν•˜λŠ” 방법에 λŒ€ν•΄μ„œ κ°„λ‹¨ν•˜κ²Œ 확인해볼 수 μžˆμ–΄μš”.

λ˜ν•œ λ™λ¬Όμ˜ 숲의 인기 μ•„ν‹°μŠ€νŠΈ K.K.의 μŒλ°˜λ„ λ§›λ³΄κΈ°λ‘œ 감상할 수 μžˆλŠ” λͺ¨λ™μˆ² κ°€μ΄λ“œμ•±μž…λ‹ˆλ‹€. 🌳

Β 

πŸ›  ν”„λ‘œμ νŠΈ μ£Όμš” κΈ°λŠ₯

πŸŒ“ 닀크λͺ¨λ“œ 라이트λͺ¨λ“œλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

πŸ‡°πŸ‡· πŸ‡ΊπŸ‡Έ 지역화 처리λ₯Ό ν•˜μ—¬ μ˜μ–΄, ν•œκ΅­μ–΄λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

🌴 μ•± κΈ°λ³Έ 섀정을 톡해 λ‚˜μ˜ 섬 정보λ₯Ό νŽΈμ§‘ν•  수 μžˆμ–΄μš”.

πŸ“ 였늘 할일을 ν–ˆλŠ”μ§€ μ²΄ν¬ν•˜κ³ , νŽΈμ§‘μ„ 톡해 할일을 μˆ˜μ •ν•˜κ±°λ‚˜ μΆ”κ°€ν•  수 μžˆμ–΄μš”.

πŸ” λ§ˆμ„ 주민을 μΆ”κ°€ν•œλ‹€λ©΄ λŒ€μ‹œλ³΄λ“œμ—μ„œ λ§ˆμ„ 주민의 정보λ₯Ό μ†μ‰½κ²Œ 확인할 수 μžˆμ–΄μš”.

βœ… λ§ˆμ„ μ£Όλ―Όκ³Ό λŒ€ν™”λ₯Ό ν•˜κ±°λ‚˜ 선물을 μ£Όκ³ λ°›μ•˜λ‹€λ©΄ μ²΄ν¬ν•΄μ„œ ν‘œμ‹œν•  μˆ˜λ„ μžˆμ–΄μš”.

πŸ“Š μˆ˜μ§‘ν˜„ν™©μ„ 톡해 μˆ˜μ§‘ 진행 상황을 ν™•μΈν•˜κ±°λ‚˜, 아직 νšλ“ν•˜μ§€ λͺ»ν•œ μ•„μ΄ν…œλ“€μ„ 확인할 수 μžˆμ–΄μš”.

(μžλ™μœΌλ‘œ λ―Ένšλ“ μ•„μ΄ν…œ ν•„ν„°λ§ν•΄μ€λ‹ˆλ‹€. 생물이라면 λ‹Ήμ›”λ‘œ ν•„ν„°λ§λ˜μ–΄ μ•„μ΄ν…œμ„ λ³΄μ—¬μ€λ‹ˆλ‹€.)

πŸ“š μΉ΄νƒˆλ‘œκ·Έ 탭을 ν™œμš©ν•˜μ—¬ μˆ˜μ§‘ν•œ μ•„μ΄ν…œμ„ 기둝할 수 μžˆμ–΄μš”.

우츑 λ²„νŠΌμ„ 톡해 μ •λ ¬ ν˜Ήμ€ 필터링을 ν•˜μ—¬ μ•„μ΄ν…œμ„ νŽΈλ¦¬ν•˜κ²Œ λ³Ό 수 μžˆμ–΄μš”.

πŸ”Ž 상세정보λ₯Ό 톡해 μ•„μ΄ν…œμ˜ ν‚€μ›Œλ“œλ₯Ό 톡해 κ΄€λ ¨λœ μ•„μ΄ν…œμ„ νƒμƒ‰ν•˜κ±°λ‚˜, 리폼된 λͺ¨μŠ΅μ„ 확인해볼 수 μžˆμ–΄μš”.

μ œμž‘μ„ 톡해 얻을 수 μžˆλŠ” μ•„μ΄ν…œμ˜ 경우, λ ˆμ‹œν”Ό νšλ“λ°©λ²•, 그리고 ν•„μš”ν•œ μž¬λ£Œλ„ μΆ”κ°€λ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€.

πŸ•™ μƒλ¬Όμ˜ 경우 μ–΄λ””μ„œ μΆœν˜„ν•˜λŠ”μ§€, λͺ‡μ‹œμ— μ–Έμ œ μΆœν˜„ν•˜λŠ”μ§€μ— λŒ€ν•œ 정보λ₯Ό 확인해볼 수 μžˆμ–΄μš”.

🐰 λ§ˆμ„ 주민의 경우 μƒμ„Έν•œ 필터링을 톡해 νŽΈλ¦¬ν•˜κ²Œ 주민을 μ°Ύμ•„λ³Ό 수 μžˆμ–΄μš”.

μ’‹μ•„ν•˜λŠ” μ£Όλ―Ό, λ‚΄ 섬 주민을 λ‚˜λˆ μ„œ ν•œ λˆˆμ— λ³Ό μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

πŸ“¦ μˆ˜μ§‘ν’ˆμ„ 톡해 λ‚΄κ°€ μˆ˜μ§‘ν•œ μ•„μ΄ν…œμ„ 관리할 수 μžˆμ–΄μš”.

μˆ˜μ§‘ν•œ μ•„μ΄ν…œμ΄ μ—†λŠ” κ²½μš°μ—λŠ” 아무것도 ν‘œμ‹œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Β 

μ•„ν‚€ν…μ²˜

MVVM

  • MVVM을 λ„μž…ν•˜μ—¬ λ·° μ»¨νŠΈλ‘€λŸ¬μ™€ λ·°λŠ” 화면을 κ·Έλ¦¬λŠ” μ—­ν• μ—λ§Œ μ§‘μ€‘ν•˜κ³ , 데이터 관리, 둜직 싀행은 λ·° λͺ¨λΈμ—μ„œ μ§„ν–‰λ˜λ„λ‘ ν–ˆμŠ΅λ‹ˆλ‹€.

Input/Output Modeling

  • λ·°λͺ¨λΈμ„ Inputκ³Ό Output으둜 μ •μ˜ν•˜μ—¬ 뷰의 μ΄λ²€νŠΈλ“€μ„ Input에 λ°”μΈλ”©ν•˜κ³ , 뷰에 λ³΄μ—¬μ§ˆ 데이터λ₯Ό Output에 바인딩 ν–ˆμŠ΅λ‹ˆλ‹€.
  • 일관성 있고 직관적인 ꡬ쑰λ₯Ό μœ μ§€ν•΄ λ·°λͺ¨λΈμ˜ μ½”λ“œ 가독성이 λ†’μ•„μ‘ŒμŠ΅λ‹ˆλ‹€.

Coordinator

  • ν™”λ©΄ μ „ν™˜μ— λŒ€ν•œ λ‘œμ§μ„ ViewControllerλ‘œλΆ€ν„° λΆ„λ¦¬ν•˜κ³  μ˜μ‘΄μ„± 객체에 λŒ€ν•œ μ£Όμž…μ„ μ™ΈλΆ€μ—μ„œ μ²˜λ¦¬ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄ 코디넀이터λ₯Ό μ μš©ν–ˆμŠ΅λ‹ˆλ‹€.

Β 

기술적 도전

RxSwift

  • μ—°μ†λœ escaping closureλ₯Ό ν”Όν•˜κ³ , μ„ μ–Έν˜• ν”„λ‘œκ·Έλž˜λ°μ„ ν†΅ν•œ 높은 가독성과 RX μ˜€νΌλ ˆμ΄ν„°λ“€μ„ ν†΅ν•œ 효율적인 비동기 처리λ₯Ό μœ„ν•΄μ„œ RxSwiftλ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • 데이터가 λ°œμƒν•˜λŠ” μ‹œμ μ—μ„œλΆ€ν„° 뷰에 그렀지기 κΉŒμ§€ ν•˜λ‚˜μ˜ 큰 Stream으둜 데이터λ₯Ό 바인딩 ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

CI/CD λΉŒλ“œ 및 ν…ŒμŠ€νŠΈ μžλ™ν™”

  • Github Actionsλ₯Ό ν™œμš©ν•˜μ—¬ develop 브랜치둜 pushλ₯Ό ν•˜κ²Œ 되면 λΉŒλ“œ 및 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λ„λ‘ μžλ™ν™”λ₯Ό μ²˜λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€.

Β 

Credits/Thanks

πŸ™πŸ» Thanks to Animal Crossing: New Horizons spreadsheet

  • 이 앱은 μœ„ μŠ€ν”„λ ˆλ“œ μ‹œνŠΈλ₯Ό ν™œμš©ν•˜μ—¬ λ§Œλ“  Norviah의 λ ˆνŒŒμ§€ν† λ¦¬λ₯Ό ν™œμš©ν•˜μ—¬ λ™λ¬Όμ˜ 숲 μ•„μ΄ν…œμ„ κ°€μ Έμ˜΅λ‹ˆλ‹€.

πŸ™πŸ» Thanks to ACNH API

  • λ™λ¬Όμ˜ 숲의 μŒμ•…, BGM 등을 이 APIλ₯Ό 톡해 λΆˆλŸ¬μ˜΅λ‹ˆλ‹€

μ•„λ¦¬μ˜ κ°œλ°œκΈ°μ— λŒ€ν•΄ 더 μžμ„Έν•œ λ‚΄μš©μ΄ 보고싢닀면, λ„ˆκ΅΄ν¬ν„Έ Wikiλ₯Ό λ°©λ¬Έν•΄μ£Όμ„Έμš”.