๐Ÿ’ก TIL - 22.07.14

saniยท2022๋…„ 7์›” 14์ผ
2
post-custom-banner

Class(+ Structure)



ํด๋ž˜์Šค, ๊ตฌ์กฐ์ฒด, ์—ด๊ฑฐํ˜• ์•ˆ์— ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ๋ฉ”์„œ๋“œ,
๋ณ€์ˆ˜/์ƒ์ˆ˜๋Š” ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ฉค๋ฒ„๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


์ฝ”๋“œ์˜์—ญ์—์„œ๋Š” ์ฝ”๋“œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š”๋ฐ,
๋„์šฐ์ง€ ์•Š์€ ํ™”๋ฉด์ด๋‚˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋Š” ๋ฌธ์ž ์ž์ฒด๋กœ ๋‚จ์•„ ์žˆ๋Š”๋‹ค.

๋ฐ์ดํ„ฐ ์˜์—ญ์—๋Š” ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ, ์ „์—ญ๋ณ€์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์ „์ฒด์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณ€์ˆ˜๋‹ค. ํด๋ž˜์Šค๋‚˜ ๊ตฌ์กฐ์ฒด ๋ฐ–์— ์„ ์–ธ๋˜๋Š” ๋ณ€์ˆ˜/ํ•จ์ˆ˜ ๋“ฑ์ด๋‹ค.
ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์•ฑ์„ ์ผฐ์„ ๋•Œ๋ถ€ํ„ฐ ๋Œ ๋•Œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.

ํž™์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๊ณ  ์Šคํƒ์€ ๋งˆ์ง€๋ง‰๋ถ€ํ„ฐ ์ฑ„์›Œ์ง„๋‹ค(?)
์ด ๋‘˜์ด ๋งŒ๋‚˜๊ฒŒ ๋˜๋ฉด stackoverflow


ํด๋ž˜์Šค์˜ ์‹ค์งˆ์ ์ธ ๊ฐ’์€ ํž™์— ์ €์žฅ๋˜๊ณ ,
์ด ํž™์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š” ๋ถ€๋ถ„์€ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค.

ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค์€ ์Šคํƒ์—์„œ ๋‹ค๋ฅธ ์ฃผ์†Œ๋ฅผ ์ฐจ์ง€ํ•˜๋”๋ผ๋„
๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ(ํž™ ์ฃผ์†Œ)๋Š” ๊ฐ™๋‹ค.

๋”ฐ๋ผ์„œ ํ•œ ์ธ์Šคํ„ด์Šค์—์„œ ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์„ ๋ฐ”๊พธ๋ฉด
ํž™์˜ ์‹ค์งˆ์  ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—
๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์—์„œ๋„ ๋ณ€๊ฒฝ๋œ ๊ฐ’์œผ๋กœ ๋ณด์ธ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •ํ•  ๋•Œ ๊ฐ๊ฐ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„๋„ ๊ฒฐ๊ตญ ๊ฐ™์€ ๊ฒƒ์„ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.


struct๋Š” ๊ฐ๊ฐ์ด๋‹ค.



์œ„์—์„œ
ํด๋ž˜์Šค์˜ ์‹ค์งˆ์ ์ธ ๊ฐ’์€ ํž™์— ์ €์žฅ๋˜๊ณ ,
์ด ํž™์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ–๋Š” ๋ถ€๋ถ„์€ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค๊ณ  ํ–ˆ๋Š”๋ฐ,

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ์—์„œ์ฒ˜๋Ÿผ let ์œผ๋กœ ์„ ์–ธ๋˜์–ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.
์—ฌ๊ธฐ์„œ let์€ '์Šคํƒ์— ์žˆ๋Š” easy'๊ฐ€ ๊ฐ€์ง€๋Š”(๊ฐ€๋ฆฌํ‚ค๋Š”) 'ํž™ ์ฃผ์†Œ'๋ฅผ ๋ชป ๋ฐ”๊พผ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.
๊ทธ ์ฃผ์†Œ์— ์žˆ๋Š” ๋ณ€์ˆ˜(ํ”„๋กœํผํ‹ฐ)๋“ค์€ var์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๊พธ๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
(Class๋Š” let์ด์–ด๋„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์ง€๋งŒ Struct๋Š” ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋‹ค.)


๋ทฐ ์˜ˆ์‹œ๋ฅผ ๋ณด์ž,,

์—ฌ๊ธฐ์—์„œ alert๊ฐ€ ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—, let์œผ๋กœ ์„ ์–ธํ•ด๋„ addAction๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!


์œ„์˜ ์ˆ˜์ • ์˜ˆ์‹œ๋ฅผ ๋ทฐ๋กœ ๋˜ ๋“ค์–ด ๋ณด์ž,,

alert2 ๋ฅผ ๋งŒ๋“ค๊ณ 
alert2 = alert ํ›„
alert2 ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ 
alert(๊ธฐ์กด)์„ present ํ•ด ๋ณด์ž!

์ด๋ ‡๊ฒŒ,,


๊ฒฐ๊ณผ๋Š”,,,,

ใ„ด(ยฐ0ยฐ)ใ„ฑ

alert๋ฅผ ๋„์› ๋Š”๋ฐ, alert2์—์„œ ์ง€์ •ํ•œ ๊ฐ’์ด ๋‚˜์˜จ๋‹ค!
alert๋‚˜ alert2๋‚˜, ๋˜‘๊ฐ™์€ ์‹ค์งˆ์  ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!





ํ”„๋กœํผํ‹ฐ ์ดˆ๊ธฐํ™” ์—†์ด ์„ ์–ธ?


View Controller์—์„œ,
viewDidLoad() ๋ฐ”๊นฅ์— ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธ๋งŒํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.


๋ณดํ†ต ์ด๋ ‡๊ฒŒ ํ•ด๋„ ๋˜๋Š”๋ฐ ์™ค๊นŒ?
ํด๋ž˜์Šค๋ž‘ ๊ตฌ์กฐ์ฒด๋Š” ์ข€ ๋‹ค๋ฅด๋‹ค


์ด๋ ‡๊ฒŒ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค.
ํด๋ž˜์Šค์˜ ํ”„๋กœํผํ‹ฐ๋Š” ๋‚ด๋ถ€์ ์ธ ๊ฐ’์ด ์žˆ์–ด์•ผ ์ œ๋Œ€๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
๋ช…ํ™•ํ•œ ๊ฐ’์ด ์—†์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆด ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


์ด๋ ‡๊ฒŒ ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ..
nil๊ฐ’์ด ๋“ค์–ด๊ฐˆ ํ•„์š”๊ฐ€ ์—†๋Š”๋ฐ ๊ตณ์ด ์˜ต์…”๋„๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋‹ค.




์™œ ์ด๊ฑด ์•ˆ ๋˜๊ณ 

์ด๊ฑด ๋ ๊นŒ...
(์ƒ๊ฐํ•ด ๋ณด๊ธฐ)






๋งค๊ฐœ๋ณ€์ˆ˜๋Š” let์ด๋‹ค


๋งค๊ฐœ๋ณ€์ˆ˜๋Š” let์ด๋‹ค!!





ํ”„๋กœํผํ‹ฐ / ๋ฉ”์„œ๋“œ์˜ ๋ณ€์ˆ˜(์ƒ์ˆ˜)


๊ฐ€๊นŒ์šด ๋ณ€์ˆ˜๋ฅผ ์ฐพ์•„ ๊ฐ„๋‹ค.
์น™์ด‰์ด ์ฐํž˜


ํด๋ž˜์Šค().ํ”„๋กœํผํ‹ฐ
๋กœ ์ ‘๊ทผํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


ํ˜น์€ self.ํ”„๋กœํผํ‹ฐ
๋กœ๋„ ๊ฐ€๋Šฅ!


โ” redeclaration ์˜ค๋ฅ˜๊ฐ€ ์•ˆ๋‚˜๋Š” ์ด์œ ๊ฐ€ ๋ญ”๊ฐ€์š”?.?
โ• ๋ฐ•์Šค ๊ธฐ์ค€์œผ๋กœ ๋ณด์•„์•ผ ํ•œ๋‹ค! (๊ฐ™์€ ์„  ์ƒ์— ์žˆ๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค)





Memberwise Initializer


Struct๋Š” init() ํ•จ์ˆ˜๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ๊ธด๋‹ค!
์ด๊ฒƒ์ด ๋ฉค๋ฒ„์™€์ด์ฆˆ ์ดˆ๊ธฐํ™”๊ตฌ๋ฌธ...!(Memberwise Initializer)
Struct ๋‚ด๋ถ€์— ์จ๋„ ๋˜๊ธด ํ•˜์ง€๋งŒ ์ฝ”๋“œ ๋‚ญ๋น„ ์‹œ๊ฐ„ ๋‚ญ๋น„,,


์„ ์–ธ ์‹œ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ ํ”„๋กœํผํ‹ฐ์˜ ๊ฒฝ์šฐ
์ด๋‹ˆ์…œ๋ผ์ด์ € ํ•จ์ˆ˜์—์„œ ๋นผ๋„ ๋œ๋‹ค.





Storyboard Reference


์Šคํ† ๋ฆฌ๋ณด๋“œ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ


์—”ํŠธ๋ฆฌํฌ์ธํŠธ๋ถ€ํ„ฐ ์ง€์ •ํ•˜๊ธฐ.
์Šคํ† ๋ฆฌ๋ณด๋“œ๋‹น ํ•˜๋‚˜์˜ ์—”ํŠธ๋ฆฌํฌ์ธํŠธ๊ฐ€ ๊ผญ ํ•„์š”ํ•˜๋‹ค!


์•ฑ ์‹คํ–‰ ์‹œ ์ฒซ ํ™”๋ฉด์œผ๋กœ ์ง€์ •ํ•˜๊ณ  ์‹ถ์œผ๋ฉด
์—ฌ๊ธฐ์„œ๋„ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค.


์—ฌ๊ธฐ์„œ๋„ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค.
(์—ฌ๊ธฐ์„œ๋งŒ ๋ฐ”๊ฟ”๋„ ๋œ๋‹ค..)


Storyboard Reference๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ 


Storyboard ์ง€์ •!






๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
์ฝ”๋“œ๋„ ์ค„์ด๊ณ  ์‹œ๊ฐ„๋„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค!
์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค

์ดˆ๋ฐ˜์—๋Š” ๋นจ๋ฆฌ ์ถœ์‹œ๋ฅผ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ์ง€๋งŒ
์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์ง€๋ฉด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋œ์–ด๋‚ธ๋‹ค


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š”
CocoaPods, Carthage(๋ผํ‹ด์–ด๋กœ๋Š” ์นด๋ฅดํƒ€๊ณ , ์˜์–ด๋กœ๋Š” ์นดใ„นthใ…ฃg), Swift Package Manager, ์ˆ˜๋™์„ค์น˜ ๋“ฑ์ด ์žˆ๋‹ค.

  • ์ฝ”์ฝ”์•„ํŒŸ์ด ๋ํŒ์™•์ด๋ผ๊ณ  ํ•œ๋‹ค,,
    ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์ฝ”์ฝ”์•„ํŒŸ์„ ์ง€์›ํ•จ!
    ํ•˜์ง€๋งŒ ๋นŒ๋“œ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค..
  • Carthage๋Š” ๋นŒ๋“œ ์†๋„๋Š” CocoaPods์— ๋น„ํ•ด ๋น ๋ฅด์ง€๋งŒ
    ์ง€์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐฏ์ˆ˜๊ฐ€ ๋งŽ์ง€ ์•Š๋‹ค.
  • SwiftPM์€ ์• ํ”Œ์—์„œ ์ง€์›ํ•˜๋Š” ๋ชจ๋“ˆ!
    (์•„๋ž˜์—์„œ ํŒจํ‚ค์ง€ = ๋ชจ๋“ˆ ๋ชจ์•„๋†“์€ ๊ฒƒ ์ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๊ฐ€ ๋ชจ๋“ˆ..?)
    ์›๋ž˜๋Š” ๋ณ„๋„์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์žˆ์—ˆ๊ณ  ์„ค์น˜๊ฐ€ ๊ต‰์žฅํžˆ ๊นŒ๋‹ค๋กœ์› ๋‹ค๊ณ  ํ•œ๋‹ค,,
    ํ•˜์ง€๋งŒ ๋„ค์ดํ‹ฐ๋ธŒ๊ฐ€ ์งฑ.. ์š”๋Ÿฐ ๋Š๋‚Œ์œผ๋กœ ๊ธฐ์–ตํ•˜๊ธฐ,, โญ๏ธ
    ์ด์ œ ๊ฑฐ์˜ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์ง€์›ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค!

๋‚ด๊ฐ€ ๊ฒฝํ—˜ํ–ˆ์„ ๋•Œ๋„ ์ฝ”์ฝ”์•„ํŒŸ์€ ์ผ๋‹จ ์„ค์น˜๋ถ€ํ„ฐ๊ฐ€ ์ข€.. ๋ง์ž‡๋ชป
ํŒŒ์ผ์ด ์ปค์ง€๊ณ  ๋นŒ๋“œ๊ฐ€ ๊ต‰์žฅํžˆ ๋Š๋ ค์ง€๊ณ ..
๋จธ์ง€ํ•  ๋•Œ๋„ ๋ฌธ์ œ๋ฅผ ๋งŽ์ด ์ผ์œผ์ผฐ์—ˆ๋‹ค.
๋ฐ˜๋ฉด SPM์€ ๊ฐ€๋ณ(?)๊ณ  ๋นŒ๋“œ ์†๋„์— ์˜ํ–ฅ์„ ์ค€๋‹ค๋Š” ๋Š๋‚Œ๋„ ๋ณ„๋กœ ์—†์—ˆ๊ณ ..
๋จธ์ง€ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋”๋ผ๋„ ๊ทธ๋ƒฅ ๋‹ค์‹œ ์„ค์น˜ํ•˜๋ฉด ๋˜๊ณ  ์„ค์น˜ ์†๋„๋งˆ์ € Pods๋ณด๋‹ค ๋นจ๋ž๋‹ค... (๋Œ€์ถฉ ๋‚˜๋Š” SPM์ด ๋” ์ข‹๋‹ค๋Š” ๋ง)

์ˆ˜๋™ ์„ค์น˜๋„ ์žˆ๊ธด ํ•˜๋‹ค
์ˆ˜๋™์œผ๋กœ ํŒŒ์ผ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋žํ•˜๋Š” ๋ฐฉ๋ฒ•,, ์ž˜ ์•ˆ ์”€.




์บ˜๋ฆฐ๋”๋Š”
FSCalendar, JTAppleCalendar
์ด ๋‘ ๊ฐ€์ง€๋ฅผ ๋งŽ์ด ์“ด๋‹ค๊ณ  ํ•œ๋‹ค.
๋‚ด๊ฐ€ ์ž์ฃผ ์“ฐ๋Š” TimeBlocks๊ฐ€ ํ˜น์‹œ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์“ด ๊ฑด ์•„๋‹๊นŒ,, ํ•˜๊ณ  ์•ฑ ์„ค์ •์— ๋“ค์–ด๊ฐ€ ๋ดค๋Š”๋ฐ,, ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด์„ ์Šค ๋ถ€๋ถ„์„ ์•„์˜ˆ ์ฐพ์ง€ ๋ชปํ–ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ์—๋„ ์•ˆ ๋‚˜์™€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๊ณ ,,
(๋‚ด๊ฐ€ ๋ชป ์ฐพ๋Š” ๊ฑด๊ฐ€)
(ํ•˜๊ธด ๋ฌธ์˜๋ฉ”์ผ๋„ ๋ช‡ ๋‹ฌ ์งธ ๋‹ต์žฅ์ด ์—†๋Š”๋””,,)


ํ‚ค๋ณด๋“œ๋Š”
IQKeyboardManager
๋ชจ๋ฅด๋ฉด ๊ฐ„์ฒฉ์ด๋ผ๊ณ  ํ•œ๋‹ค,,
๋‚œ ๊ฐ„์ฒฉ์ด์—ˆ๊ตฌ๋‚˜ ๐Ÿฅฒ

awesome-ios
์ด๋Ÿฐ ๊ฒƒ๋„ ํ•œ ๋ฒˆ ๋‘˜๋Ÿฌ๋ณด๋ฉด ์•„์ฃผ ์ข‹์„๋“ฏ!!?


Package Dependencies ์—์„œ + ๋ฒ„ํŠผ
ํ˜น์€
File - Add Packages

์›ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋„ฃ๊ณ 
Dependency Rules ์„ค์ •ํ•˜๊ณ  ์„ค์น˜ํ•˜๋ฉด

ํƒ€๋ผ~




โ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž‘ ํŒจํ‚ค์ง€๋ž‘ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”?.?
โ• ์•„์ฃผ ๋น„์Šท,, ๋‚˜์ค‘์— ๊ตฌ๋ถ„ํ•˜๋Š” ์‹œ๊ฐ„ ๋”ฐ๋กœ ๊ฐ€์งˆ ๊ฒƒ!


์ฐพ์•„ ๋ณธ ๊ฒฐ๊ณผ๋กœ๋Š”,,

ํŒจํ‚ค์ง€๋Š” ๋ชจ๋“ˆ์„ ๋ชจ์•„๋†“์€ ๊ฒƒ์ด๊ณ 
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํŒจํ‚ค์ง€๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ..!
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋” ํฐ ๊ฐœ๋…์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค.
(์ถœ์ฒ˜)




TextFieldEffects ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ ํ…์ŠคํŠธํ•„๋“œ ๋ ˆ์ด์•„์›ƒ ์žก๊ณ  ์ธ์ŠคํŽ™ํ„ฐ ํ™•์ธ!
TextFieldEffects๋ฅผ ์„ค์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— UITextField๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!


์›ํ•˜๋Š” ํด๋ž˜์Šค ์„ ํƒํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๋‘๊ธฐ


์ด ๋‘ ๊ฐ€์ง€ ๊ฐ’์„ ๊ณฑํ•ด์„œ ํฐํŠธ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง„๋‹ค




SideMenu ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

๋จผ์ € Navigation Controller์— Embed


๊ทธ๋ฆฌ๊ณ  Navigation Controller์˜ Class๋ฅผ
SideMenuNavigationController๋กœ ์ง€์ •ํ•œ๋‹ค.


Present Modally๋กœ ํ•ด์•ผ ํ•œ๋‹ค!
(๋งŒ๋“  ์‚ฌ๋žŒ์ด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ผ๊ณ  ํ–ˆ๋‹ค.)


๋ฐ” ๋ฒ„ํŠผ ์ถ”๊ฐ€!


๋Œ๋ ค ๋ณด๋ฉด


์‚ฌ์ด๋“œ ๋ฉ”๋‰ด ์ˆœ์‹๊ฐ„์— ๋งŒ๋“ค๊ธฐ ์™„์„ฑ..!
์—ฌ๋Ÿฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋” ๊ทธ๋Ÿด์‹ธ(?)ํ•œ ์•ฑ์„ ๋” ์งง์€ ์‹œ๊ฐ„ ์•ˆ์— ๋งŒ๋“ค๊ธฐ์— ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.




IQKeyboardManager ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

AppDelegate์—์„œ ํ•˜๋Š” ์ด์œ : ๋ชจ๋“  ๊ณณ์—์„œ ์“ฐ๊ธฐ ์œ„ํ•จ



โ” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” import ํ•˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?
โ• ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ฝ”๋“œ ์ž‘์„ฑ ์•ˆ ํ–ˆ์œผ๋‹ˆ๊นŒ..! (ใ„ด(ยฐ0ยฐ)ใ„ฑ...!!!!!)
์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ๋Š” ๋‚ด๋ถ€์ฝ”๋“œ๊ฐ€ ์žˆ์–ด์„œ ๊ฐ€๋Šฅํ–ˆ์Œ!





์†Œํ”„ํŠธ์›จ์–ด ๋ฒ„์ „ ๊ทœ์น™


  • Major: ๊ฐ€์žฅ ํฌ๊ฒŒ ๋‹ฌ๋ผ์ง€๋Š” ์ง€์ ๋“ค์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ
    ๊ธฐ์กด ๋ฒ„์ „๊ณผ ํ˜ธํ™˜์ด ์•ˆ ๋จ
    ์ด๋Ÿด ๋•Œ deprecate๋˜๋Š” ๊ฒƒ๋“ค์ด ๋งŽ๋‹ค
  • Minor: ์„ธ์„ธํ•œ ๊ธฐ๋Šฅ ์˜ฌ๋ผ๊ฐˆ ๋•Œ
  • Patch: ๋ฒ„๊ทธ ์ˆ˜์ •. ์œ ์ง€๋ณด์ˆ˜


๋ฒ•์ฒ˜๋Ÿผ ํ•ญ์ƒ ์ด๋ ‡๊ฒŒ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฑด ์•„๋‹ˆ๊ณ 
์ด๋Ÿฐ ํ˜•ํƒœ๋กœ ์ง€์ผœ ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

๋งŒ์•ฝ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ 10๊ฐœ ์„ค์น˜ํ•˜๊ณ  ํ•˜๋‹ค๋ณด๋ฉด
1๊ฐœ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ์•ˆ ๋งž๊ณ  ์ด๋Ÿฐ ๊ฒŒ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค





DateFormatter


yyyy MM dd hh mm ss
์ด๋Ÿฐ ํ˜•ํƒœ..

Month๋Š” ๋Œ€๋ฌธ์ž M
minute์€ ์†Œ๋ฌธ์ž m ์ฃผ์˜,,

HH๋Š” 24์‹œ๊ฐ„ ํ‘œ์‹œ
hh๋Š” 12์‹œ๊ฐ„ ํ‘œ์‹œ


ํ‘œ์ค€์‹œ๋กœ ๋‚˜์˜จ๋‹ค!






ํ™•์ธํ•ด์•ผ ํ•  ๋ถ€๋ถ„๋“ค

  • clipsToBounds์™€ masksToBounds์˜ ์ฐจ์ด..
    ํšจ๊ณผ๋Š” ๋˜‘๊ฐ™์€๋ฐ, ์–ด๋””์—์„œ ํ˜ธ์ถœํ•˜๋Š”์ง€๋งŒ ๋‹ค๋ฅด๋‹ค!
    clipsToBounds๋ฅผ ๋ฐ”๊พธ๋ฉด masksToBounds๋„ ์ž๋™์œผ๋กœ ๋‹ฌ๋ผ์ง„๋‹ค.
    clipsToBounds, shadow, cornerRadius๋ฅผ
    Button, Label, Image์— ๋‹ค ํ•ด ๋ณด๊ธฐ.
    ๋‹ค ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ..!
  • ํž™์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฑ„์›Œ์ง€๊ณ  ์Šคํƒ์€ ๋งˆ์ง€๋ง‰๋ถ€ํ„ฐ ์ฑ„์›Œ์ง„๋‹ค(?)
  • ํ”„๋กœํผํ‹ฐ ์ดˆ๊ธฐํ™” ์—†์ด ์„ ์–ธ?




profile
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€