🌱 SeSAC

[SeSAC] 220714 TIL

taeeekki 2022. 7. 21. 22:54

ν΄λž˜μŠ€μ™€ ꡬ쑰체

0. μš©μ–΄μ˜ ꡬ뢄

ν΄λž˜μŠ€λž‘ κ΅¬μ‘°μ²΄λŠ” ν•˜λ‚˜μ˜ 큰 λ°•μŠ€λΌκ³  생각할 수 μžˆλ‹€. κ·Έ λ™μ•ˆ λ‹€λ€˜λ˜ μž‘μ€ λ‹¨μœ„μ˜ μžλ£Œν˜• λ˜λŠ” ν•¨μˆ˜λ₯Ό ν•˜λ‚˜μ˜ 묢음으둜 λ¬ΆλŠ” 과정이닀. 이에 λ”°λΌμ„œ μš©μ–΄λ₯Ό 쑰금 ꡬ뢄할 ν•„μš”κ°€ μžˆλ‹€.

  • λ³€μˆ˜/μƒμˆ˜ : ν”„λ‘œνΌν‹°
  • ν•¨μˆ˜ : λ©”μ„œλ“œ

μœ„μ˜ 2κ°€μ§€λ₯Ό λ¬Άμ–΄μ„œ 멀버라고 λΆ€λ₯Ό 수 μžˆλ‹€.

1. 클래슀

  • νž™μ— μ €μž₯
  • μ‹€μ§ˆμ μΈ 값은 νž™μ— μ €μž₯(μžλ£Œν˜•μ— 따라)
  • κ°’μ˜ μ£Όμ†Œλ₯Ό κ°€μ§€κ³  있음, μ°Έμ‘°ν•˜λŠ” μ£Όμ†ŒλŠ” μŠ€νƒμ— μ €μž₯

2. ꡬ쑰체

  • μŠ€νƒμ— μ €μž₯
  • 값을 볡사 (독립적)

3. λ©”λͺ¨λ¦¬μ˜ ꡬ쑰(기초)

  • μ½”λ“œ : ν”„λ‘œκ·Έλž¨ μ†ŒμŠ€ μ½”λ“œ
  • 데이터 : μ „μ—­ λ³€μˆ˜, 항상 λ©”λͺ¨λ¦¬ μ°¨μ§€
  • νž™ : ν΄λž˜μŠ€λŠ” 보톡 νž™μ— 올라감, ν΄λž˜μŠ€λŠ” μ£Όμ†Œλ₯Ό κ°€μ§€κ³  있음
  • μŠ€νƒ : 클래슀 μ•ˆμ˜ ν”„λ‘œνΌν‹°(μ‹€μ§ˆμ μΈ κ°’)은 μŠ€νƒμ— 올라감

4. μ΄ˆκΈ°ν™”

클래슀λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄μ£ΌλŠ” 과정이 ν•„μš”ν•˜λ‹€.

  • 클래슀 (μ΄ˆκΈ°ν™” μž‘μ—… ν•„μš”)
  • ꡬ쑰체 (μ΄ˆκΈ°ν™” ꡬ문 없어도 λ™μž‘)

Entry Point

  • μŠ€ν† λ¦¬λ³΄λ“œκ°€ μ΄ˆκΈ°ν™” 될 λ•Œ μ‹œμž‘ν•˜λŠ” 지점
  • 각 μŠ€ν† λ¦¬λ³΄λ“œλ§ˆλ‹€ Entry Pointλ₯Ό κ°€μ§ˆ 수 있음

μŠ€ν† λ¦¬λ³΄λ“œμ˜ 뢄리(+ Storyboard Reference)

λ‹€μŒκ³Ό 같이 μŠ€ν† λ¦¬λ³΄λ“œλ₯Ό λ‚˜λˆ μ„œ μž‘μ—…ν•˜κ³  μ‹Άκ³ , λΆ„λ¦¬λœ μŠ€ν† λ¦¬λ³΄λ“œλ₯Ό μ—°κ²°ν•΄μ„œ ν™”λ©΄ μ „ν™˜ λ“±μ˜ μž‘μ—…μ„ ν•˜κ³  μ‹Άλ‹€.

Storyboard Reference라고 λΆˆλ¦¬μš°λŠ” 것을 μΆ”κ°€ν•œλ‹€.

μ—°κ²°ν•˜κ³  싢은 μŠ€ν† λ¦¬λ³΄λ“œμ˜ 이름을 μ—°κ²°ν•œλ‹€.


μ˜€ν”ˆ μ†ŒμŠ€ 라이브러리

  • μ‹œκ°„μ μΈ 단좕, μ½”λ“œ 라인 수 단좕
  1. TextFieldEffects
  2. SideMenu
  3. FSCalendar
  4. Tabman
  5. IQKeyboardManager
  6. lottie-ios

라이브러리, μ–΄λ–»κ²Œ μ°Ύκ³  μ‚¬μš©ν• κΉŒ?

λ§Žμ€ μ‚¬λžŒλ“€μ΄ μ‚¬μš©ν•˜λŠ” 것듀, λŒ€κΈ°μ—…μ΄ μ“°λŠ” 것듀은 μ•ˆμ •μ μ΄μ§€ μ•Šλ‚˜ μΆ”μΈ‘ν•  수 μžˆλ‹€.

κ·Έλƒ₯ μ‚¬μš©ν•΄λ„ 될까? μ €μž‘κΆŒμ€ μ—†λ‚˜?

μ˜€ν”ˆμ†ŒμŠ€ 라이브러리λ₯Ό μ‚¬μš©ν•  λ•Œ λΌμ΄μ„ μŠ€ ν‘œκΈ°λ₯Ό λͺ…μ‹œν•΄μ£Όμ–΄μ•Ό ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ μžˆλ‹€.


Dependency Manager

  1. CocoaPods : μ§€μ›ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ λ§Žλ‹€. λΉŒλ“œ 속도가 λŠλ¦¬λ‹€.
  2. Carthage : λΉŒλ“œ 속도가 λΉ λ₯΄λ‹€. μ§€μ›ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μƒλŒ€μ μœΌλ‘œ 적닀.
  3. Swift Package Manager : μ• ν”Œμ΄ μ œμž‘ 및 지원(퍼슀트 νŒŒν‹°), Xcode λ‚΄μž₯됨, 이제 지원도 많이 함.
  4. Manually : μˆ˜λ™ μ„€μΉ˜

버전 κ·œμΉ™

  • 3.5.1
  • μžλ¦¬λ³„λ‘œ 각각 major, minor, patchλ₯Ό μ˜λ―Έν•œλ‹€.
  • major : ꡉμž₯히 큰 것듀이 λ³€ν™”λ˜μ—ˆμ„ λ•Œ, 버전이 λ°”λ€Œμ—ˆμ„ λ•Œ, κΈ°μ‘΄ 버전과 ν˜Έν™˜λ˜μ§€ μ•Šμ„ λ•Œ(Swift 2.3 -> 3.0)
  • minor : κΈ°λŠ₯의 μΆ”κ°€
  • patch : μœ μ§€ 보수, 버그 μˆ˜μ •

SPM으둜 라이브러리 μ„€μΉ˜ν•˜κΈ°

  1. TextFieldEffects
  2. FSCalendar
  3. SideMenu
  4. IQKeyboardManager

정말 많이 μ“°μ΄λŠ” 라이브러리. 4κ°€μ§€λ₯Ό μ„€μΉ˜ν•˜κ³  μ‹€μŠ΅ν•΄ λ΄„.