๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SeSAC

[iOS] TIL_230725

by lizzydev 2023. 7. 30.

1. Blog ์ž‘์„ฑ๋ฒ•

  • ๋‹จ์ˆœ ์‚ฌ์šฉ๋ฒ• ๋ณด๋‹ค๋Š” ์ƒ๊ฐ๊ณผ ์„ค๊ณ„๊ฐ€ ๋“ค์–ด๊ฐ„ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ๋“ฑ์„ ์ ๋Š”๊ฒŒ ๋‚˜์Œ
  • ์–‘๋ณด๋‹ค๋Š” ์งˆ
  • ์ฃผ 1ํšŒ ์ •๋„๊ฐ€ ์ ๋‹น. ํ•œ ์ฃผ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ ์ •๋ฆฌ ๋“ฑ.

2. Open Source License

  • ํฐ ์–ดํ”Œ๋“ค ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ํ™•์ธํ•ด์„œ ์–ด๋–ค ๊ฒƒ๋“ค ์“ฐ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ธฐ
  • ์Šคํƒ€ ๋ช‡๋ฐฑ๊ฐœ๋งŒ ๋„˜์–ด๋„ ์œ ๋ช…ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•จ.
  • ๋‹ค๋ฅธ์‚ฌ๋žŒ์ด ๋งŒ๋“  ์ฝ”๋“œ๋ผ ์›๋ฆฌ๋ฅผ ๊นŠ๊ฒŒ ์ดํ•ดํ•˜์ง„ ์•Š์•„๋„ ๋จ. ์–ด์ฐจํ”ผ ์• ํ”Œ์ฝ”๋“œ๋กœ ํ•œ ๊ฒƒ.
  • ๋ผ์ด์„ ์Šค ์ž˜ ํ™•์ธ ํ•ด์•ผ ํ•จ. - ๋ณดํ†ต ์šฐ๋ฆฌ๊ฐ€ ์“ฐ๋Š” ๊ฒƒ๋“ค์€ ๋ช…์‹œ๋งŒ ๋˜์–ด์žˆ์œผ๋ฉด ๋จ.

Reference

 

 

GitHub - raulriera/TextFieldEffects: Custom UITextFields effects inspired by Codrops, built using Swift

Custom UITextFields effects inspired by Codrops, built using Swift - GitHub - raulriera/TextFieldEffects: Custom UITextFields effects inspired by Codrops, built using Swift

github.com

 

 

GitHub - WenchaoD/FSCalendar: A fully customizable iOS calendar library, compatible with Objective-C and Swift

A fully customizable iOS calendar library, compatible with Objective-C and Swift - GitHub - WenchaoD/FSCalendar: A fully customizable iOS calendar library, compatible with Objective-C and Swift

github.com

 

 

GitHub - hackiftekhar/IQKeyboardManager: Codeless drop-in universal library allows to prevent issues of keyboard sliding up and

Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more. - GitHub - ...

github.com

 

 

GitHub - onevcat/Kingfisher: A lightweight, pure-Swift library for downloading and caching images from the web.

A lightweight, pure-Swift library for downloading and caching images from the web. - GitHub - onevcat/Kingfisher: A lightweight, pure-Swift library for downloading and caching images from the web.

github.com

+swiftyjson, alamofire ๋“ฑ…

โœ… Dependency Manager

  • CocoaPods : ๊ฑฐ์˜ 100ํผ ์ง€์›. ๊ต‰์žฅํžˆ ๋งŽ์ด ์‚ฌ์šฉ. but ํ„ฐ๋ฏธ๋„๋กœํ•ด์„œ ๋ณต์žก, m1,์ธํ…” ๋ฐฉ๋ฒ• ์ฐจ์ด๊ฐ€ ์žˆ์Œ
  • Carthage (์ž˜ ์•ˆ ์จ๊ฐ€๋Š” ์ถ”์„ธ, ์—…๋ฐ์ดํŠธ ์ž˜ ์•ˆ ํ•จ)
  • Swift Package Manager : ์• ํ”Œ์ด ๋งŒ๋“  ๊ฒƒ. ์ง€๊ธˆ์€ ์˜คํ”ˆ์†Œ์Šค๋“ค์ด ๊ฑฐ์˜ ๋‹ค ์ง€์›ํ•ด์ฃผ๋Š” ๋“ฏ

โœ… Deployment Target

project์—์„œ ์„ค์ •ํ•œํ…Œ target์— ์ž๋™ ๋ฐ˜์˜๋˜์ง€๋งŒ target์—์„œ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋ฐ”๋€๋Œ€๋กœ ๋จ.

  • Project

  • Target

โœ… spm ์›ํ•˜๋Š” ๋ฒ„์ „ ์„ ํƒ ๋ฐฉ๋ฒ•

๋ณดํ†ต ๊ฑฐ์˜ Up to Next Major Version ํ•จ

ํ•œ๋ฒˆ ์„ค์น˜ํ•˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ํ•  ๋•Œ๋„ ๊ณ„์† ๋‚จ์•„์žˆ์Œ.

๋ฒ„์ „ ์ˆซ์ž ์˜๋ฏธ (๋ฒ„์ „ ๋ฃฐ)

3.1.2

3 : major

1 : minor

2 : patch - ๋ฒ„๊ทธ ์ˆ˜์ •

โœ… ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ ๋ฐฉ๋ฒ•

โœ… ๋ ˆ์ด์•„์›ƒ์„ superview์˜ ์ผ์ • ๋น„์œจ๋กœ ์ง€์ •ํ•˜๊ธฐ

  1. SuperView์™€ Equal Heights๋กœ ์šฐ์„  ์ง€์ •

  1. ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ์›ํ•˜๋Š” ๋น„์œจ ์„ค์ •

๐Ÿ“’ FSCalendar

 

 

GitHub - WenchaoD/FSCalendar: A fully customizable iOS calendar library, compatible with Objective-C and Swift

A fully customizable iOS calendar library, compatible with Objective-C and Swift - GitHub - WenchaoD/FSCalendar: A fully customizable iOS calendar library, compatible with Objective-C and Swift

github.com

class ์ง€์ •ํ•ด์ฃผ๋ฉด ๋ฐ”๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ

์ธ์ŠคํŽ™ํ„ฐ์— ์†์„ฑ ์„ค์ •๋“ค์ด ๋œธ (์˜ค..์‹ฑ๊ธฐ)

๐Ÿ“’ TextFieldEffects

 

GitHub - raulriera/TextFieldEffects: Custom UITextFields effects inspired by Codrops, built using Swift

Custom UITextFields effects inspired by Codrops, built using Swift - GitHub - raulriera/TextFieldEffects: Custom UITextFields effects inspired by Codrops, built using Swift

github.com

๐Ÿ“’ IQKeyboardManager

 

GitHub - hackiftekhar/IQKeyboardManager: Codeless drop-in universal library allows to prevent issues of keyboard sliding up and

Codeless drop-in universal library allows to prevent issues of keyboard sliding up and cover UITextField/UITextView. Neither need to write any code nor any setup required and much more. - GitHub - ...

github.com

ํ‚ค๋ณด๋“œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„

Github Readme

readme๋Œ€๋กœ AppDelegate์— ์ถ”๊ฐ€

์ƒํƒœ๋ฐ” ํฌ๊ธฐํผ ์ ํ•‘ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ. ๊นƒํ—™ ์ด์Šˆ ๋ณด๋ฉด์„œ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ์•„๋ž˜ ํŠœํ† ๋ฆฌ์–ผ ๋ณด๋ฉด์„œ ํ•ด์•ผ ํ•จ.

Tutorial

bookmark

์ด ์•„์ €์”จ ์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๊ฒƒ์ €๊ฒƒ ์ž˜์•Œ๋ ค์คŒ

๐Ÿ“’ Kingfisher

https://github.com/onevcat/Kingfisher

์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • ๋‚ด๋ถ€์ ์œผ๋กœ ์ž๋™์œผ๋กœ ์บ์‹ฑ ์ง€์›ํ•ด์„œ ํ•œ ๋ฒˆ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋‚˜๋ฉด ๋กœ๋”ฉ x
  • apple์€ http๋ฅผ ์ž๋™์œผ๋กœ ๋ง‰์Œ. ๋ณด์•ˆ์ ์œผ๋กœ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฃผ์†Œ์—ฌ์„œ ์•Œ์•„์„œ ๋ง‰์•„๋ฒ„๋ฆผ. https๋กœ ํ•ด์•ผํ•จ.
  • http ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด App Transport Security Setting (ATS) ์˜ต์…˜์„ ์ด์šฉํ•ด์„œ ํ†ต๋กœ ์ด์šฉ ๊ฐ€๋Šฅ.

โœ… ATS ์„ค์ • ๋ฐฉ๋ฒ•

์—ฌ๋Ÿฌ ์˜ต์…˜ ๊ฐ€๋Šฅ

โœ… ๋„ค๋น„๊ฒŒ์ด์…˜ ์˜์—ญ์— ๋นจ๊ฐ„ ์ค„ ๋œจ๋Š” ๋ฌธ์ œ

→ ์ฐธ์กฐ ํ•œ ํŒŒ์ผ์ด ์‚ฌ๋ผ์ ธ์„œ ๊ทธ๋Ÿผ

์ด๋ฏธ์ง€ ๋Œ์–ด์„œ ๋„ฃ์„ ๋•Œ ์„ธ ๊ฐœ ๋‹ค ์ฒดํฌ ํ•˜๊ธฐ

์ž˜ ๋“ค์–ด๊ฐ”๋Š”์ง€ ํ™•์ธ ๋ฐฉ๋ฒ•

์ž˜ ๋“ค์–ด๊ฐ€์žˆ์Œ (์œ„์—์„œ Add to targets ์ฒดํฌํ•ด์„œ )

โœ… ํด๋ž˜์Šค ์„ ์–ธ ํ•  ๋•Œ ๋ณ€์ˆ˜ ๊ฐ€์ ธ์˜ค๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํด๋ž˜์Šค ์„ ์–ธํ•  ๋•Œ ๋‘ ์ค„์ด ๊ฑฐ์˜๋™์‹œ์— ์‹คํ–‰ ๋˜๊ธฐ ๋•Œ๋ฌธ์— a์— ๋”•์…”๋„ˆ๋ฆฌ๋“ค ๊ฐ’๋“ค์ด ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ํ‚ค๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ ๋–„๋ฌธ์— ์˜ค๋ฅ˜

3. Enum(์—ด๊ฑฐํ˜•)

0๊ณผ 1์ด ๋ฌด์Šจ ์šฉ๋„์˜€๋Š”์ง€ ๊ธฐ์–ต ์•ˆ ๋‚  ์ˆ˜ ์žˆ์Œ. ์ฃผ์„๋‹ฌ์•„๋„ ๋˜์ง€๋งŒ ๋„ˆ๋ฌด ๊ธธ์–ด์งˆ ๊ฒƒ.

enum์€ ์ฃผ๊ด€์‹์œผ๋กœ ๊ฐ๊ด€์‹์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋Š๋‚Œ

์ปดํŒŒ์ผ ์‹œ์ ์— enum case๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด, ์˜คํƒ€๋‚˜ ํœด๋จผ ์—๋Ÿฌ ๋“ฑ ๋ฐฉ์ง€ ๊ฐ€๋Šฅ.

rawValue ์‚ฌ์šฉํ•˜๋ ค๋ฉด enum์˜ ํƒ€์ž… ์ง€์ •ํ•ด์•ผํ•จ

rawValue๋Š” ์ž๋™์œผ๋กœ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ •ํ•ด์ง

rawValue ์ž„์˜ ์ง€์ • ๊ฐ€๋Šฅ, ์ง€์ • ์•ˆ ๋œ ๊ฒƒ์€ 1์”ฉ ๋Š˜๋ฉด์„œ ๋“ค์–ด๊ฐ

CaseIterable

→์—ด๊ฑฐํ˜•์˜ ๋ฉค๋ฒ„๋“ค์„ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜ ํƒ€์ž…์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ. ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ์Œ

CaseIterable ์•ˆ ํ•˜๋ฉด ์˜ค๋ฅ˜

4. ํ™”๋ฉด์ „ํ™˜

โœ… Present Modally - Page Sheet

๋’ค๋กœ๊ฐ€๊ธฐ ์•ˆ ๋งŒ๋“ค์–ด๋„๋จ

โœ… Present Modally - Full Screen

๋’ค๋กœ๊ฐ€๊ธฐ ๋งŒ๋“ค์–ด์•ผํ•จ

โœ… ์ด์ „ ํ™”๋ฉด์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ

์ด๋Ÿฐ ์‹์œผ๋กœ ์–‘์ชฝ ์„ธ๊ทธ ํ•ด์„œ ์ด์ „ ํ™”๋ฉด ๋Œ์•„๊ฐ€๋ ค๊ณ  ํ•˜๋ฉด ๋ฌดํ•œ์ •์œผ๋กœ ํ™”๋ฉด์ด ์œ„์— ๊ฒน์ฒ˜์„œ ๋œจ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ ๋จ

unwind ๊ตฌํ˜„ํ•˜๊ธฐ

โœ… Current Context

๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ”๋ž‘ ํƒญ๋ฐ” ๋ณด์ด๋Š” ์ฑ„๋กœ ํ™”๋ฉด ์ „ํ™˜.

full screen ํ–ˆ์„ ๋•Œ๋Š” ํ™”๋ฉด ๋‚˜์™”์„ ๋•Œ ๋„ค๋น„๊ฒŒ์ด์…˜๋ฐ”๋ž‘ ํƒญ๋ฐ” ์•ˆ๋ณด์˜€์Œ

โœ… ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์ƒ๋ช…์ฃผ๊ธฐ

๋ทฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ

  • viewDidLoad
  • viewWillAppear
  • viewDidAppear
  • viewWillDisappear
  • viewDidDisappear

์›๋ž˜ ์•„๋ž˜ ๋‹ค์„ฏ๊ฐœ์˜€์Œ ํ•˜์ง€๋งŒ iOS 17๋ถ€ํ„ฐ viewIsAppearing ์ถ”๊ฐ€ ๋  ๊ฒƒ (์ง€์› ๋‹ค ํ•ด์ค˜์„œ iOS 13๋ถ€ํ„ฐ ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ)

#function

ํ˜„์žฌ ์ฝ”๋“œ ํ˜ธ์ถœ ํ•œ ํ•จ์ˆ˜ ์ด๋ฆ„ ์•Œ๋ ค์คŒ.

print("CalendarViewController",#function) 

์ƒ๋ช…์ฃผ๊ธฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋˜๋Š” ๋ชจ์Šต

Presentation style์— ๋”ฐ๋ผ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๋‹ค๋ฆ„ → ์ง์ ‘ ํ•ด๋ณด๋ฉด์„œ ์ƒ๋ช…์ฃผ๊ธฐ ํ™•์ธ ํ•ด๋ณด๊ธฐ

'SeSAC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[iOS] TIL_230728  (0) 2023.08.01
[iOS] TIL_230727  (0) 2023.07.31
[iOS] TIL_230726  (0) 2023.07.31
[iOS] TIL_230719  (0) 2023.07.25
[iOS] TIL_230718  (0) 2023.07.20