ํด๋์ค, ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ ์์ ์ ์ธ๋ ํจ์๋ ๋ฉ์๋,
๋ณ์/์์๋ ํ๋กํผํฐ๋ผ๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ฉ์๋์ ํ๋กํผํฐ๋ฅผ ๋ฉค๋ฒ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฝ๋์์ญ์์๋ ์ฝ๋๋ฅผ ๊ฐ๊ณ ์๋๋ฐ,
๋์ฐ์ง ์์ ํ๋ฉด์ด๋ ์ฌ์ฉํ์ง ์์ ์ฝ๋๋ ๋ฌธ์ ์์ฒด๋ก ๋จ์ ์๋๋ค.
๋ฐ์ดํฐ ์์ญ์๋ ์ ์ญ๋ณ์๊ฐ ์๋๋ฐ, ์ ์ญ๋ณ์๋ ํ๋ก๊ทธ๋จ ์ ์ฒด์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ณ์๋ค. ํด๋์ค๋ ๊ตฌ์กฐ์ฒด ๋ฐ์ ์ ์ธ๋๋ ๋ณ์/ํจ์ ๋ฑ์ด๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ํ๋ฉด ์ฑ์ ์ผฐ์ ๋๋ถํฐ ๋ ๋๊น์ง ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฐจ์งํ๊ฒ ๋๋ค.
ํ์ ์ฒ์๋ถํฐ ์ฑ์์ง๊ณ ์คํ์ ๋ง์ง๋ง๋ถํฐ ์ฑ์์ง๋ค(?)
์ด ๋์ด ๋ง๋๊ฒ ๋๋ฉด 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์ด๋ค!!
๊ฐ๊น์ด ๋ณ์๋ฅผ ์ฐพ์ ๊ฐ๋ค.
์น์ด์ด ์ฐํ
ํด๋์ค().ํ๋กํผํฐ
๋ก ์ ๊ทผํด์ ์ฌ์ฉํ ์ ์๋ค.
ํน์ self.ํ๋กํผํฐ
๋ก๋ ๊ฐ๋ฅ!
โ redeclaration ์ค๋ฅ๊ฐ ์๋๋ ์ด์ ๊ฐ ๋ญ๊ฐ์?.?
โ ๋ฐ์ค ๊ธฐ์ค์ผ๋ก ๋ณด์์ผ ํ๋ค! (๊ฐ์ ์ ์์ ์๋ ๊ฒ ์๋๋ค)
Struct๋ init() ํจ์๊ฐ ์๋์ผ๋ก ์๊ธด๋ค!
์ด๊ฒ์ด ๋ฉค๋ฒ์์ด์ฆ ์ด๊ธฐํ๊ตฌ๋ฌธ...!(Memberwise Initializer)
Struct ๋ด๋ถ์ ์จ๋ ๋๊ธด ํ์ง๋ง ์ฝ๋ ๋ญ๋น ์๊ฐ ๋ญ๋น,,
์ ์ธ ์ ์ด๊ธฐํ๊ฐ ๋ ํ๋กํผํฐ์ ๊ฒฝ์ฐ
์ด๋์
๋ผ์ด์ ํจ์์์ ๋นผ๋ ๋๋ค.
์คํ ๋ฆฌ๋ณด๋ ์๋ก ๋ง๋ค๊ธฐ
์ํธ๋ฆฌํฌ์ธํธ๋ถํฐ ์ง์ ํ๊ธฐ.
์คํ ๋ฆฌ๋ณด๋๋น ํ๋์ ์ํธ๋ฆฌํฌ์ธํธ๊ฐ ๊ผญ ํ์ํ๋ค!
์ฑ ์คํ ์ ์ฒซ ํ๋ฉด์ผ๋ก ์ง์ ํ๊ณ ์ถ์ผ๋ฉด
์ฌ๊ธฐ์๋ ๋ฐ๊ฟ์ผ ํ๋ค.
์ฌ๊ธฐ์๋ ๋ฐ๊ฟ์ผ ํ๋ค.
(์ฌ๊ธฐ์๋ง ๋ฐ๊ฟ๋ ๋๋ค..)
Storyboard Reference๋ฅผ ์ถ๊ฐํ๊ณ
Storyboard ์ง์ !
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด
์ฝ๋๋ ์ค์ด๊ณ ์๊ฐ๋ ์ค์ผ ์ ์๋ค!
์คํ์์ค ๋ผ์ด์ ์ค
์ด๋ฐ์๋ ๋นจ๋ฆฌ ์ถ์๋ฅผ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ์ง๋ง
์ฌ์ฉ์๊ฐ ๋ง์์ง๋ฉด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋์ด๋ธ๋ค
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐฉ๋ฒ์ผ๋ก๋
CocoaPods, Carthage(๋ผํด์ด๋ก๋ ์นด๋ฅดํ๊ณ , ์์ด๋ก๋ ์นดในthใ
ฃg), Swift Package Manager, ์๋์ค์น ๋ฑ์ด ์๋ค.
๋ด๊ฐ ๊ฒฝํํ์ ๋๋ ์ฝ์ฝ์ํ์ ์ผ๋จ ์ค์น๋ถํฐ๊ฐ ์ข.. ๋ง์๋ชป
ํ์ผ์ด ์ปค์ง๊ณ ๋น๋๊ฐ ๊ต์ฅํ ๋๋ ค์ง๊ณ ..
๋จธ์งํ ๋๋ ๋ฌธ์ ๋ฅผ ๋ง์ด ์ผ์ผ์ผฐ์๋ค.
๋ฐ๋ฉด SPM์ ๊ฐ๋ณ(?)๊ณ ๋น๋ ์๋์ ์ํฅ์ ์ค๋ค๋ ๋๋๋ ๋ณ๋ก ์์๊ณ ..
๋จธ์งํด์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋๋ผ๋ ๊ทธ๋ฅ ๋ค์ ์ค์นํ๋ฉด ๋๊ณ ์ค์น ์๋๋ง์ Pods๋ณด๋ค ๋นจ๋๋ค... (๋์ถฉ ๋๋ SPM์ด ๋ ์ข๋ค๋ ๋ง)
์๋ ์ค์น๋ ์๊ธด ํ๋ค
์๋์ผ๋ก ํ์ผ ๋๋๊ทธ ์ค ๋๋ํ๋ ๋ฐฉ๋ฒ,, ์ ์ ์.
์บ๋ฆฐ๋๋
FSCalendar, JTAppleCalendar
์ด ๋ ๊ฐ์ง๋ฅผ ๋ง์ด ์ด๋ค๊ณ ํ๋ค.
๋ด๊ฐ ์์ฃผ ์ฐ๋ TimeBlocks๊ฐ ํน์ ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ด ๊ฑด ์๋๊น,, ํ๊ณ ์ฑ ์ค์ ์ ๋ค์ด๊ฐ ๋ดค๋๋ฐ,, ์คํ์์ค ๋ผ์ด์ ์ค ๋ถ๋ถ์ ์์ ์ฐพ์ง ๋ชปํ๋ค. ์น์ฌ์ดํธ์๋ ์ ๋์ ์๋ ๊ฒ ๊ฐ๊ณ ,,
(๋ด๊ฐ ๋ชป ์ฐพ๋ ๊ฑด๊ฐ)
(ํ๊ธด ๋ฌธ์๋ฉ์ผ๋ ๋ช ๋ฌ ์งธ ๋ต์ฅ์ด ์๋๋,,)
ํค๋ณด๋๋
IQKeyboardManager
๋ชจ๋ฅด๋ฉด ๊ฐ์ฒฉ์ด๋ผ๊ณ ํ๋ค,,
๋ ๊ฐ์ฒฉ์ด์๊ตฌ๋ ๐ฅฒ
awesome-ios
์ด๋ฐ ๊ฒ๋ ํ ๋ฒ ๋๋ฌ๋ณด๋ฉด ์์ฃผ ์ข์๋ฏ!!?
Package Dependencies ์์ + ๋ฒํผ
ํน์
File - Add Packages
์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฃผ์๋ฅผ ๋ฃ๊ณ
Dependency Rules ์ค์ ํ๊ณ ์ค์นํ๋ฉด
ํ๋ผ~
โ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจํค์ง๋ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์?.?
โ ์์ฃผ ๋น์ท,, ๋์ค์ ๊ตฌ๋ถํ๋ ์๊ฐ ๋ฐ๋ก ๊ฐ์ง ๊ฒ!
์ฐพ์ ๋ณธ ๊ฒฐ๊ณผ๋ก๋,,
ํจํค์ง๋ ๋ชจ๋์ ๋ชจ์๋์ ๊ฒ์ด๊ณ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจํค์ง๋ค์ ๋ชจ์๋์ ๊ฒ..!
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ํฐ ๊ฐ๋
์ด๋ผ๊ณ ๋ณผ ์ ์๊ฒ ๋ค.
(์ถ์ฒ)
์คํ ๋ฆฌ๋ณด๋์์ ํ
์คํธํ๋ ๋ ์ด์์ ์ก๊ณ ์ธ์คํํฐ ํ์ธ!
TextFieldEffects๋ฅผ ์ค์นํ๊ธฐ ๋๋ฌธ์ UITextField๋ฅผ ์์๋ฐ์ ํด๋์ค๋ค์ ๋ณผ ์ ์๋ค!
์ํ๋ ํด๋์ค ์ ํํ๊ณ ๋๋จธ์ง๋ ๊ทธ๋๋ก ๋๊ธฐ
์ด ๋ ๊ฐ์ง ๊ฐ์ ๊ณฑํด์ ํฐํธ ํฌ๊ธฐ๊ฐ ์ ํด์ง๋ค
๋จผ์ Navigation Controller์ Embed
๊ทธ๋ฆฌ๊ณ Navigation Controller์ Class๋ฅผ
SideMenuNavigationController๋ก ์ง์ ํ๋ค.
Present Modally๋ก ํด์ผ ํ๋ค!
(๋ง๋ ์ฌ๋์ด ๊ทธ๋ ๊ฒ ํ๋ผ๊ณ ํ๋ค.)
๋ฐ ๋ฒํผ ์ถ๊ฐ!
๋๋ ค ๋ณด๋ฉด
์ฌ์ด๋ ๋ฉ๋ด ์์๊ฐ์ ๋ง๋ค๊ธฐ ์์ฑ..!
์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ ํ์ฉํ๋ฉด ๋ ๊ทธ๋ด์ธ(?)ํ ์ฑ์ ๋ ์งง์ ์๊ฐ ์์ ๋ง๋ค๊ธฐ์ ์ข์ ๊ฒ ๊ฐ๋ค.
AppDelegate์์ ํ๋ ์ด์ : ๋ชจ๋ ๊ณณ์์ ์ฐ๊ธฐ ์ํจ
โ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ import ํ์ง ์์๋ ๋๋ ์ด์ ๊ฐ ๋ฌด์์ธ๊ฐ์?
โ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ฝ๋ ์์ฑ ์ ํ์ผ๋๊น..! (ใด(ยฐ0ยฐ)ใฑ...!!!!!)
์คํ ๋ฆฌ๋ณด๋์์๋ ๋ด๋ถ์ฝ๋๊ฐ ์์ด์ ๊ฐ๋ฅํ์!
๋ฒ์ฒ๋ผ ํญ์ ์ด๋ ๊ฒ ํด์ผ ํ๋ค๋ ๊ฑด ์๋๊ณ
์ด๋ฐ ํํ๋ก ์ง์ผ ์ฃผ๋ ๊ฒ์ด ์ข๋ค
๋ง์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ 10๊ฐ ์ค์นํ๊ณ ํ๋ค๋ณด๋ฉด
1๊ฐ ์
๋ฐ์ดํธ ํ๋ฉด ์ ๋ง๊ณ ์ด๋ฐ ๊ฒ ์๊ธธ ์ ์๋ค
yyyy MM dd hh mm ss
์ด๋ฐ ํํ..
Month๋ ๋๋ฌธ์ M
minute์ ์๋ฌธ์ m ์ฃผ์,,
HH๋ 24์๊ฐ ํ์
hh๋ 12์๊ฐ ํ์
ํ์ค์๋ก ๋์จ๋ค!