UI7Kit - 0.0.1์์ 1k starred repo๊น์ง
์ง๋ ๋ ๋ฌ๊ฐ UI7Kit1์์ ๊ฒช์ ๊ฒฝํ์ ํน๋ณํ ๊ฒ์ด์๋ค. ์์ง ์๊ธฐ ์ํด ์ ๋ฆฌํด ๋ณธ๋ค.
์์
์ง๊ธ๊น์ง (์ฑ ๋ง๋๋ ์ฃผ์ ์) ํ๋ฒ๋ iOS๋ OS X์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒ์ ์ ์ค์นํด ๋ณธ ์ ์ด ์์๋๋ฐ, iOS7์ ์๋ฎฌ๋ ์ดํฐ๋ก ์ข ๊ตฌ๊ฒฝ์ด๋ ํด๋ณด๋ ค๋ ๋ง์์ผ๋ก WWDC ์ดํ ๋์จ ๋ฐ๋๋ฐ๋ํ Preview1์ ์ค์นํด ๋ณด์๋ค.
๋ช GB์ง๋ฆฌ xcode5๋ฅผ ๋ค์ด๋ฐ๊ณ ์ค์นํ๋๋ผ ์ข์ SSD ์ ๋ฆฌ๋ง ํ์ฐธ์ ํ๋๋ฐ2, ๊ธฐ๋ณธ ์ฑ์ ์ด๋ฆฌ์ ๋ฆฌ ๊ตฌ๊ฒฝํ๊ณ ๋์๋ ๊ทธ๋ค์ง ํด๋ณผ ๋งํ ๊ฒ ์์๋ค. ์๋ฎฌ๋ ์ดํฐ์๋ ์๋ ๊ธฐ๋ณธ ์ฑ์ด ๋ค ๋ ๊ฒ๋ ์๋๊ณ , ๊ธฐ๋ณธ ์ฑ์ด iOS์ ๋ชจ๋ ์ปจํธ๋กค์ ์ฐ๊ณ ์๋ ๊ฒ๋ ์๋๋๊น. ๊ทธ๋์ ๊ทธ ๋ค์์๋ ์ด์ ์ ๊ฐ๋ฐํ ์ฑ๋ค์ด iOS7์์ ์ด๋ป๊ฒ ๋ณด์ด๋ ํ๋์ฉ ๋๋ ค๋ณด๊ธฐ ์์ํ๋ค. ํ์ฌ์์ ๊ฐ๋ฐ ์ค์ธ ๊ฒ์๋ค์, status bar๊ฐ ๊ฒน์ณ์ ๋์ค๋ ๋ฌธ์ ๋ฅผ ์ ์ธํ๋ฉด ์ ํ ๋ฌธ์ ๊ฐ ์์๋ค. ๊ฒ์์ด์ผ ๋ชจ๋ ํ๋ฉด์ ๊ฒ์ ์์ง์ด ๊ทธ๋ ค์ฃผ๋ ๊ทธ๋ด๋ฒ ํ๋ค.
๊ทธ ๋ค์์๋ ๋ด๊ฐ ๋ง๋ ์ฑ์ ํ๋์ฉ ์ฌ๋ ค๋ณด๊ธฐ ์์ํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฒ ์ฌ๊ฑธ. ์ฒซ ์ฑ๋ถํฐ ๋ง์ฝ์ ๋ถ๋ฆฌ๊ธฐ ์์ํ๋ค. ๋ฒ์ธ์ FoundationExtension3์ด์๋ค. Foundation์ด๋ UIKit์ ๋น ์ง ๊ธฐ๋ฅ์ ์ฑ์ฐ์๊ณ ๋ง๋ค๊ธฐ ์์ํ ํ๋ก์ ํธ์ธ๋ฐ, ๊ทธ '๋น ์ง ๊ธฐ๋ฅ' ๊ฐ์ด๋ฐ ํ๋๋ก ๋ฃ์ ์ฌ๋ณผ์ด iOS7 UIKit์ ์ค์ ๋ก ๋ค์ด๊ฐ ๋ฒ๋ฆฐ ๊ฒ. FoundationExtension์ ์ฝ์ธ๊ฒ ํจ์นํ์ ์ ๋๋ก ๋น๋๊ฐ ๋๊ธฐ ์์ํ๋ค.
์ฑ๋ค์ ๋ญ ๊ทธ๋ฅ... ์ฒ์ฐธํ๋ค๊ณ ํด๋์. FoundationExtension์๋ UUID ๋์์ iOS ๋ฒ์ ๋ณ๋ก ์ ๋นํ ๊ณจ๋ผ ํธ์ถํด ์ค๋ค๊ฑฐ๋ ํ๋ ๊ตฌํ๋ ๋ค์ด ์์๋๋ฐ, ์ฌ๊ธฐ์ ์์ด๋์ด๊ฐ ๋ ์ฌ๋๋ค. iOS7์ UI์ ๊ธฐ๋ณธ์ผ๋ก ์ด์ ์ OS์ ํธํ์ฑ์ ์ ๊ณตํ๋ฉด ์ด ์ธ๊ธฐ ์๋ ํ๋ก์ ํธ์๋ ๋ณ์ด ๋ค ๋ ์ด ์ค์ง ์์๊น? FoundationExtension์๋ UIKit7์ด๋ผ๋ ํ๊ฒ๊ณผ ๋ธ๋์น๊ฐ ์ถ๊ฐ๋๊ณ ๊ฐ๋จํ ๊ตฌํ์ด ๋ค์ด๊ฐ๊ธฐ ์์ํ๋ค.
์ฒซ ๋ฒ์
๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ๊ธฐ๋ฅ์ด ์ฒซ ๋ชฉํ๋ก ์ ํด์ก๋ค. ๋ชจ๋ ์ฑ์๋ navigation bar๋ ๋ค์ด๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ํ ๋ด๊ฐ ๋ง๋ ๋ชจ๋ ์ฑ์๋ table view๊ฐ ๋ค์ด๊ฐ๋ค. ์ผ๋จ navigation bar์ table view๊ฐ ๋ค์ด๊ฐ ์ฑ์ ํ๋ ๋ง๋ค์ด์ผ๊ฒ ๋๋ฐ, ๋นจ๋ฆฌ ๊ธฐ๋ฅ์ ํ ์คํธํด๋ณด๊ณ ์ถ์ ์๊ฐ์ ๊ธํ ๊น์ FoundationExtension ๊ธฐ๋ฅ ํ ์คํธ์ ์ฐ๋ ์ฑ์ ๊ทธ๋ฅ ํจ์นํ๊ธฐ ์์ํ๋ค. ์ง๊ธ๋ ์ด ๋ฒ์ ๊ธฐ๋ฐ์ ํ ์คํธ ์ฑ์ด ์์ง ์ฐ์ด๊ณ ์๋ค.
navigaiton bar์ ๋์ ๋ณด์ด๋ ๋ถ๋ถ ๊ตฌํ์ ์๊ฐ๋ณด๋ค ์ฌ์ ๋ค. ์ ํ์ iOS5์ navigation controller๋ฅผ ์ํ๋ navigation bar์ toolbar๋ก ์์ฑํ ์ ์๋ API๋ฅผ ์ถ๊ฐํ๋ค.4 ์ฌ๊ธฐ์ ์ต์ ์ง์ ๋ฒ์ ์ด iOS5๋ก ์ ํด์ก๋ค.5 UINavigationBar๋ฅผ ์์ํ UI7NavigationBar๋ฅผ ๋ง๋ค๊ณ UI7NavigationController๋ฅผ ๋ง๋ค์ด ๋ชจ๋ ์ด๊ธฐํ ํจ์์์ ํญ์ navigation bar๋ฅผ ๊ต์ฒดํ๋๋ก ์ค๋ฒ๋ผ์ด๋ ํ๋ค. ๊ฒฐ๊ณผ๋... ์ผ๋จ ์ ๋์๊ฐ๋ค. Interface Builder๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ปจํธ๋กค์ Interface Builer์ ์ง์ ๋ ํด๋์ค๋ก ์ด๊ธฐํ๋๋ค. ๊ฒฐ๊ตญ ์์ผ๋ก UINavigationBar๋ฅผ ์ฐพ์ ํด๋์ค๋ฅผ ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๋ค. ๊ธฐ์ ์ ๊ดํ ์ด์ผ๊ธฐ๋ฅผ ์ข ์ฅํฉํ๊ฒ ํ๋๋ฐ, ๊ฝค ์ค์ํ ๋ถ๋ถ์ด๋ค. Interface Builder์์ ๋งค๋ฒ ํด๋์ค ์ด๋ฆ์ ๋ฐ๊พธ๋ ๊ฒ์ด ์ฐธ์ ์ ์์ ์ ๋๋ก ๊ท์ฐฎ์๊ธฐ ๋๋ฌธ์, ์ด๊ฑด ์๋ฌด๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ ๋์๋ ๋๋ผ๋ฉด ์ฐ์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ค. ์ฐ๊ธฐ ๋ ์ฝ๊ณ ๋ ๊ฐ๋จํด์ผ ํ๊ธฐ ๋๋ฌธ์, UI7Kit์ ๋ ๋ฒ์งธ ๋ชฉํ๋ฅผ ์ ํ๋ค. "๊ธฐ์กด์ UIKit์ ๋์ ์ผ๋ก ํจ์นํด์ ๊ท์ฐฎ์ ์์ ์์ด UI7Kit์ด ๋์ํ๊ฒ ๋ง๋ค ๊ฒ". Objective-C๋ C์ฒ๋ผ ๋ณด์ด์ง๋ง ๋์ ์ธ์ด์ด๋ค. ๋ฐํ์์ ํด๋์ค์ ๋ฉ์๋๋ฅผ ๊ต์ฒดํ๊ณ ๊ณ ์น ์ ์๋ค. ์ฑ์ด UIKit์ ๋ถ๋ฌ์จ ๋ค์ UIKit์ ๊ตฌ์ฑ์์๋ฅผ ๋ชจ๋ UIKit๊ณผ ํธํ๋๋ UI7Kit์ผ๋ก ๋ฐ๊ฟ ๋ฃ์ผ๋ฉด ์ฑ์ด ๋ณด๊ธฐ์ UIKit์ UI7Kit๊ณผ ๊ตฌ๋ถ๋์ง ์๋๋ค. ์ฑ์ ๋ง์น iOS7์์ ๋์๊ฐ๋ ๊ฒ ์ฒ๋ผ iOS6์์ ๋์๊ฐ ์ ์๋ค. ์ด๋ฆ๋ ์ด๋ UI7Kit์ผ๋ก ๋ฐ๊ฟจ๋ค. ํค๋๋ฅผ ์ฐพ์ ๋(UIKit7)์ ๊ฐ ํด๋์ค์ ์ ๊ทผํ ๋(UI7-) ์ด๋ 7์ด ๋ค์ด๊ฐ๋ ๋ชฐ๋ผ ํท๊ฐ๋ฆฌ๋ ๊ฒ ๋๋ฌด ์ซ์๋ค.
navigation bar์ ๋น๊ตํ๋ฉด, table view๋ ๊ฝค ๊ณ ํต์ค๋ฌ์ด ์์ ์ด์๋ค. ๋จผ์ , cell๊ณผ section์ table view์ ํต์ฌ ๊ตฌ์ฑ์์์ด๋ค. cell์ UITableViewCell์ ํจ์นํ๋ฉด ๋๋ค. ๊ทธ๋ฐ๋ฐ table view๋ง ๊ณ ์ณ์ section header์ footer๋ฅผ ๊ณ ์น ๋ฐฉ๋ฒ์ด ์ด๋ ๋ด๋ ์์๋ค.6 section header์ footer๋ delegate์ dataSource์์ ์กฐ๊ธ์ฉ ๋๋์ด ์ฒ๋ฆฌ๋๋ค. ๊ฒฐ๊ตญ ๋๋ delegate์ data source๊ฐ ์ค์ ๋๋ ์๊ฐ ์ด๊ฒ๋ค์ ํจ์นํด iOS7์ ๋์์ ํ๋ด๋ด ๋ณด๊ธฐ๋ก ํ๋ค. delegate์ data source๋ UIKit์ ๊ตฌ์ฑ์์๊ฐ ์๋ ์ฌ์ฉ์๊ฐ ์ ์ํ๋ ๋ถ๋ถ์ด๊ธฐ ๋๋ฌธ์, ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์ ์๊ฐ ์๋ค. ๊ทธ์ ์ฌ์ฉ์๊ฐ ์์ธก์ ๋ฒ์ด๋ ํน๋ณํ ์ด์ํ ์ผ์ ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋ผ๊ธฐ๋ก ํ๋ค.7 Objective-C์์ ์๋ก ์ฎ์ธ ๋ ๊ฐ ์ด์์ ๋ฉ์๋๋ฅผ ๋์ ํจ์นํ๋ ๊ฒ์ ์ฒ์ ํด ๋ณด๋ ์ผ์ด์๋ค. ๋์ฐํ ์ผ์ด์๋ค. ์ฝ๋๋ ์ถฉ๋ถํ ์ฅํฉํ๊ณ , ์์ ๊ฐ ๊ฒจ์ฐ ๋์๊ฐ๋ ์ฝ๋๋ฅผ ๋ง๋ค์๋ค.
๊ฒจ์ฐ ์ปจํธ๋กค ๋ ๊ฐ๋ฅผ ๋ถ์๋๋ฐ, ์ด๋ฏธ ์ฝ๋์ ๊ท๋ชจ๋ ํํ๋ "FoundationExtension์ ์ ๊ธฐํ ๊ธฐ๋ฅ์ผ๋ก ์ง์ด๋ฃ๋๋ค"์์ ๋ง์ด ๋ฒ์ด๋ ์์๋ค. FoundationExtension์ "๊ผญ ์์ด์ผ ํ ๊ฒ ๊ฐ์ง๋ง ์ ํ์ด ๋น ๋จ๋ฆฐ ๊ธฐ๋ฅ์ ํ์ฅ"์ ์ฒ ํ์ผ๋ก ์ผ๋๋ฐ, ์ฌ๊ธฐ์ ๋ง์ง๋ ์์๋ค. ํ๋ก์ ํธ๋ ๋ถ๋ฆฌ๋์ด์ผ ํ๋ค. ์ฌ๊ธฐ์ ์๋ก ํจํค์ง๋ฅผ ๋ง๋ ๊ฒ์ด UI7Kit์ ์ฒซ ๋ฒ์ ์ธ 0.0.1์ด๋ค. ์ถฉ๋ถํ ๋ฉ์ง ๊ธฐ๋ฅ์ด๊ณ , ๋๊ตฌ๋ ๊ฟ๊ฟ๋งํ ๋ชฉํ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ๋ฐค์ด ๋ฆ์์ง๋ง ๋ค์ ๋ ์ด ๋๋ฉด ๋๊ตฐ๊ฐ ๋น์ทํ ๋ชฉํ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๊ฒ ๊ฐ์ ๊ธฐ๋ถ์ด ๋ค์ด ๊ธฐ๋ค๋ฆด ์๊ฐ ์์๋ค. ๊ฒ๋ค๊ฐ ๊ทธ ๋ ์ WWDC ์ดํ ์ดํ์ด ์ง๋ ๋์๋๋ฐ, ํ๋ฃจ๋ฅผ ๋ ๋ณด๋ด๋ ๊ฒ์ ๊ทธ๋ฅ ํ๋ฃจ๋ผ๊ธฐ๋ณด๋ค๋ ๋ด๊ฐ ๋ณด๋ธ ์๊ฐ์ 50%๋ฅผ ํ๋นํ๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ก๋ค. ๋๊ธธ์ ๋ ๋งํ ์๊ฐ์ ์๋ฃ๋ฅผ ๋ง๋ค๊ธฐ ์์ํ๋ค. ์ด ์ฒซ ๋ฒ์ ์ ์ง๊ธ ๋ณด๋ฉด ๊ฑฐ์ ํ๋ฅญํ ์ฌ๊ธฐ์ ๊ฐ๊น์ด ๋๋์ด ๋๋๋ฐ, 4์ฒ์ค ์ ๋์ ์ฝ๋๋ก ์๋นํ ๋ง์ ์ปจํธ๋กค์ ์ง์ํ๊ฒ ๋ ์ง๊ธ์ด๋ 600์ค ์ ๋์ ์ฝ๋์ ๋์ ๋ณด์ด๋ ์ฒซ ํ๋ฉด์ ๊ฒจ์ฐ ์ฒ๋ฆฌํ๋ ๊ทธ ๋๋ ์คํฌ๋ฆฐ์บก์ฒ๋ฅผ ๋ณธ ์ฒซ ๋๋์ ํฐ ์ฐจ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฌธ์ ์ ์คํฌ๋ฆฐ์บก์ฒ. ํ๋ฅญํด ๋ณด์ธ๋ค. ํ์ง๋ง ์ด๋ค ๋ฒํผ์ ๋๋ฅด๋๋ผ๋ ์ค๋งํ์ ๊ฒ์ด๋ค. (์ด ๋ฒ์ ์ ๋ณด๊ณ 10์ด๋ง์ ๊ฐํ๊ณผ ์ค๋ง์ ํ๋ ์ฌ๋์ ์ง์ ๋ณด์๋ค)
์ ๋ก๋
ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์๋ง์ ์ปค๋ฐ๋ ํ๊ธฐ ์ ์ ๊ตฌ๋ฆ์ฅ์ ์์์ ์ฝ๋ฉํ๋ ๋์ธ8 ๊ป์ ๊ด์ฌ์ ๋ณด์ด์ จ๋ค. (์ฐ๊ณ ์์ผ์ ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค)
๋ด๊ฐ ๋ง๋ Objective-C ํ๋ก์ ํธ๋ ๋ณดํต CocoaPods์ ์ ๋ก๋ํ ์ดํ์ CocoaPods์ ํตํด ์ฐ๋ ์ฌ๋์ด ์๊ธฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์๊ธฐ ๋๋ฌธ์, ์ด๋ฒ์๋ ์ ์ผ ๋จผ์ CocoaPods์ผ๋ก ํจํค์ง์ ํ๋ค.9 ์ ๋๋ก ๋์๊ฐ์ง ์๋ ํ๋ก์ ํธ๋ฅผ CocoaPods์ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ฒ์์ด๋ผ, ์ง์ ํธ์ํ์ง ์๊ณ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋๋ค.10 CocoaPods ํ๋ฆฌํ์คํธ๋ฅผ ๋ณด๊ณ ํ๋ก์ ํธ๋ฅผ ์ฐพ์์ค๋ ์ฌ๋๋ ์กฐ๊ธ ์์ง ์์๊น ํ๋ ๋ฐ๋จ๋ ์์๋ค. ์ค๋ง์ค๋ฝ๊ฒ๋(?) ํ ๋ฆฌํ์คํธ๋ ๊ฝค ๋นจ๋ฆฌ ์ฒ๋ฆฌ๋์๋๋ฐ, ์์ธ์ ํจ๊ณผ๋ฅผ ๋ณด๊ฒ ๋์๋ค. CocoaPods๋ ์ ํ๋ก์ ํธ๋ฅผ ์๊ฐํ๋ ํธ์ํฐ ๊ณ์ [^CocoapodsTwitter] ์ ๊ฐ๊ณ ์๋ค. ์ด CocoaPods ํธ์ํฐ๋ ์๊ฐ๋ณด๋ค ๋ง์ด ์ฃผ๋ชฉ๋ฐ๊ณ ์์๊ณ , UI7Kit์ CocoaPods ํธ์ํฐ์์ ์๊ฐ๋๋ฉฐ ์๋นํ ๋น ๋ฅด๊ฒ ์๋ ค์ง๊ฒ ๋๋ค.11 ๋ ๋ง์ iOSProgramming ์๋ธ๋ ๋ง์๋ ์๊ฐ๋ฅผ ์ฌ๋ ธ๋๋ฐ, ํธ์ํฐ์ ๋นํ๋ฉด ํฌ๊ฒ ์ฃผ๋ชฉ๋ฐ์ง๋ ๋ชปํ๋ค. ๋ช ์๊ฐ ๋ค์๋ github trending repos์ ์ฌ๋ผ๊ฐ๋ค.12
์ด๋ฐ ์ฃผ๋ชฉ์ ์ด์ง ๋นํฉ์ค๋ฝ๊ธฐ๋ ํ ๊ฒ์ด์๋๋ฐ, ์๋ง "์๋น ๋ฐ์์ผ ํ ๊ฒ ์ด์์ ๋ฐ๊ณ ์๋ค" ๊ฐ์ ๋๋์ด์๋ ๊ฒ ๊ฐ๋ค. (์ฌ์ค ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง) ์ด์ ๋ฅผ ์๊ฐํด ๋ณด์๋ฉด, ๋จผ์ WWDC ์งํ์ธ๋ฐ๋ค ์ธํฐ๋ท์๋ ํ์ฐธ iOS7์ ๊ดํ ์ฐฌ์ฌ์ ๋น๋์ด ๋์์ด ์์์ง๊ณ 'Jony Ive redesigns ~'๊ฐ ํ์ฐฝ ์ธ๊ธฐ์ฌ์ ์ข์ ์๋ฏธ๋ก๋ ๋์ ์๋ฏธ๋ก๋ iOS7์ UI์ ๊ดํ ๊ด์ฌ์ด ์ต๊ณ ์กฐ์ ๋ฌํ์ ๋์๋ค. ๋์งธ๋ก๋ ์คํฌ๋ฆฐ์บก์ฒ๊ฐ ๋ด ๊ธฐ๋๋ณด๋ค๋ ๋ ํ๋ฅญํ๋ค.13 ์๋ง ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ฅผ ์คํํด๋ณด์ง ์์์ ๊ฒ์ด๋ค. ์ฌ์ง์ด ์ด๋ฏธ ์๋นํ ๊ตฌํ์ด ๋์ด ์๋ค๋ ๊ธฐ์ฌ14๋ ๋์๋ค. ํ๋ก์ ํธ์ ๋ชฉํ์ ์คํฌ๋ฆฐ์ท์ ๋ณด๊ณ ์ฌ๋๋ค์ด ์ด๋ป๊ฒ ํ๋จํ์์ง ์ง์ํ ๋งํ๋ค.
์ดํ์๋ ํ๋ก์ ํธ ์๊ฐ๋ฅผ ์ํด ํด์ปค๋ด์ค15 ์ ํ๋ก์ ํธ๋ฅผ ์ฌ๋ฆฌ๊ฑฐ๋, ์๊ฐ ์์์ ๋ง๋ค๊ฑฐ๋, Cocoa Controls16 ์ ์๊ฐ๋ฅผ ์ฌ๋ฆฌ๊ธฐ๋ ํ๋ค. ๋จผ์ ํด์ปค๋ด์ค๋, ์ ๋ฐ์ ์ผ๋ก ํ๋ก์ ํธ ํ์ด์ง ์์ฒด๋ฅผ ํ๋ณดํ๊ธฐ์ ์ ํฉํ ์ธ์์ ์๋๋ค. ๋ง์ ์ ์๋ฅผ ๋ฐ๋ ๋งํฌ๋ ๋ณดํต 'ํฅ๋ฏธ๋ก์ด ๊ธฐ์ฌ๊ฑฐ๋ฆฌ'์ ์ ํฉํ ํน์ง์ ๊ฐ์ง ๋งํฌ๋ค. ํ์ง๋ง ํธ์ํฐ์ ๋ ๋ง์์์ ๋ฐ์์ผ๋ก ํ๋ก์ ํธ ํ์ด์ง ์์ฒด๊ฐ ์ ๋นํ ํฅ๋ฏธ๊ฑฐ๋ฆฌ๊ฐ ๋ ์ง๋ ๋ชจ๋ฅธ๋ค๊ณ ์๊ฐํด ์ผ๋จ ์๋ํด ๋ณด๊ฒ ๋์๋ค. ์ง๊ธ ์๊ฐํ๋ฉด ํ๋ก์ ํธ ํ์ด์ง๋ณด๋ค ๋ค๋ฅธ ์ฌ๋์ด ์ด ๊ธฐ์ฌ๋ฅผ ๋งํฌํ๋ ๊ฒ ๋์์์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ์ด ๋งํฌ๋ ์ด๋ ์ ๋์ ํ๋ณด ํจ๊ณผ๋ฅผ ๊ฑฐ๋์์ง๋ง, ๊ทธ๋ฆฌ ํฐ ํจ๊ณผ๋ ์๋์๋ค.11 ํด์ปค๋ด์ค ์์ฒด๋ณด๋ค๋, ํด์ปค๋ด์ค๋ฅผ ํตํด ํธ์ํฐ์ ํด์ปค๋ด์ค๋ฅผ ์ธ์ฉํ๋ ์ฌ์ดํธ๋ฅผ ์ค์ฌ์ผ๋ก ์๋ ค์ก๋ค๊ณ ๋ณด๋ ๊ฒ์ด ๋ ์ ๋นํ ํด์์ด๋ผ๊ณ ์๊ฐํ๋ค.
์๊ฐ ์์์ ์ด๋ ์ ๋ ์ค๋น๊ฐ ๊ฐ์ถฐ์ง ํ์ ๋์ ํจ์น์ ๊ฐ๋จํจ์ ์ด์ ์ ๋ง์ถ์ด ๋ง๋ค์ด์ก๋ค. "์ ๊ธฐํ๋ค" ์ ๋์ ๋ฐ์์ผ๋ก ๊ณต์ ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ์ง๋ง, ๊ทธ๋ ์ง ์์๋ค. ์ ๋ช ํ ์ํํธ์จ์ด๋ ์๋๊ณ , ๋๋ผ์ด ๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ ๊ฒ๋ ์๋๊ณ (UI7Kit์ ๊ฒฐ๊ณผ๋ณด๋ค๋ ๊ณผ์ ์ ๋๋ผ์์ด ํฌ๋ค), ๊ผญ ์จ์ผํด์ ๋ณผ ํ์๊ฐ ์๋ ๊ฒ๋ ์๋๋ค. ํ์ง๋ง Github ์ด์์ ์ ๊ทผํ์ง ์๋ ์ฌ์ฉ์๋ฅผ ์ํ ์ง๋ฌธ ์ฐฝ๊ตฌ์ ์ญํ ์ ๋๋ ํ ๊ฒ ๊ฐ๋ค. 17
ํํธ Cocoa controls๋ ์ ์ฒด์ ์ผ๋ก ๋ป๋ฐ์ ๊ฒฝํ์ ์ฐ์์ด์๋ค. ๋๋ GUI์ ๊ด๋ จ๋, ์คํฌ๋ฆฐ์ท์ ๋ณด๊ณ ์จ ๋ณด๊ณ ์ถ์ด์ง ๋งํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ง๋ค์ด ๋ณธ ์ ์ด ์์๊ธฐ ๋๋ฌธ์, Cocoa controls์ ํ๋ก์ ํธ๋ฅผ ๋ฑ๋กํด ๋ณธ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด์๋ค. Cocoa controls๋ ์ด์ง ๋นํฉ์ค๋ฌ์ด ๋ฑ๋ก ์ ์ฑ ์ ๊ฐ๊ณ ์์๋ค. ์ฌ์ดํธ์ ๋ฉ์ธ ๋ฉ๋ด์ Cocoapods์ด ์๊ณ , ๋๋ถ๋ถ์ ์ปจํธ๋กค์ด Cocoapods ์ค์น๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๊ฐ๊ณ ์์ด ๋ง์ฐํ Cocoapods์ ๋น์ทํ๊ฒ ๊ฑฐ๋ ์๊ฐํ์ง๋ง, ์ ํ ๊ทธ๋ ์ง ์๋ค.18
๋ด๊ฐ ์ฒ์ UI7Kit์ Cocoa controls์ ๋ฑ๋กํ์ ๋, 44๊ฐ์ ํ๋ก์ ํธ๊ฐ ํ ๋์ด ์๋ค๋ ์๋ฆผ์ด ๋ํ๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์๋ ํ๋ฃจ์ ์ผ์ ์ ์ด์์ ์ค์ด๋ค์ง ์์๋ค. ๊ทธ๋์ ๊ฑฐ์ ๋น์ทํ ์๊ธฐ์ ๋ฑ๋กํ์์๋ ๋ถ๊ตฌํ๊ณ , Cocoa controls์์ ์ค์ ๋ก ํ๋ก์ ํธ๊ฐ ๋ ธ์ถ๋๊ธฐ ์์ํ ๊ฒ์ ์๋นํ ์๊ฐ์ด ์ง๋ ๋ค์๋ค. ํํธ, ๊ทธ๋ฐ ์ ์ฑ ๋๋ฌธ์ ์ค๋ซ๋์ ์ ๋ฉด์ ๋ ธ์ถ๋์ด์์ธ์ง๋ ๋ชฐ๋ผ๋, Cocoa controls์ ํ๋ก์ ํธ๊ฐ ๋ ธ์ถ๋ ์ดํ์ ํจ๊ณผ๋ ์๋นํ๋ค.11 Cocoa controls์ ๋ชจ๋ ํ๋ก์ ํธ๋ ์ด์์๊ฐ ์ง์ ํ์ธ ํ ์น์ธํ๋ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ ๊ฐ๋ค. UI7Kit์ด ๋ง์์ ๋ค์๋์ง ์๋๋ฉด ์ ์ ์ธ ์คํฌ๋ฆฐ์ท์ด ํ๋ก์ ํธ์ ๋ํด ๋ถ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ค๋ค๊ณ ์๊ฐํ๋์ง๋ ๋ชฐ๋ผ๋, ํ ์คํธ ์ฑ์ด ๋์ํ๋ ๋น๋์ค๋ ํ๋ ๋ง๋ค์ด ์ฃผ์๋ค.19
๋ ๋๋ผ์ด ๊ฒ์ ๊ทธ ๋ค์ ์ฃผ์ ์ผ์ด๋ฌ๋ค. Cocoa controls์์๋ Controls of the week์ ์ ์ ํ๊ณ ์์๋ค. 20 ์ฌ์ดํธ ์์์๋ ์ ๊ทผ์ฑ์ด ๋์ ๋ธ๋ก๊ทธ์์ ์ด์๋๋๋ฐ๋ ํ๊ธํจ๊ณผ๋ ํฐ ํธ์ด์๋ค. 11 Cocoa controls์ ๋ฉ์ธ์ ์ต๊ทผ์ ์ฌ๋ผ์จ ํ๋ก์ ํธ์ ์ด์ ์ ๋ง์ถ๊ฑฐ๋ ๋ฑ๋ก๋ ํ๋ก์ ํธ๋ฅผ ์ฐพ์๋ณด๊ธฐ ์ข๊ฒ ๋์ด์๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ๋ ์ปจํธ๋กค์ Cocoa controls์ ํธ์ํฐ๋ฅผ ์ค์ฌ์ผ๋ก ๊ณต์ ๋๋ค.
๊ธ์ ์ฐ๋ ์ค์ธ ์ต๊ทผ์๋ Bountysource๋ผ๋ ์คํ์์ค๋ฅผ ์ํ ํ๋๋ฅผ ๋ชจ์ผ๋ ์๋น์ค์๋ ๋ฑ๋ก์ ํด๋ณด์๋ค.21 IRC ์ฑ๋์์ ์น์ ํ ์๋ด์ ๋ฐ์ผ๋ฉฐ ์ด์ฉ ์ค์ด๋ฉฐ, ๋๋๋ ๋๋ก ๋ด์ฉ์ ์ถ๊ฐํด ๋ณด๋๋ก ํ๊ฒ ๋ค.
์ ๋ก๋ - ์ ๋ฆฌ
์์ด๊ถ์์ ์ ๊ทผํ ์ ์๋ Objective-C ํ๋ก์ ํธ์ ์ฃผ์ ๊ณต์ ๊ฒฝ๋ก๋ ํธ์ํฐ๋ผ๊ณ ๋ฐ์๋ ์๊ฐํ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ํจ๊ณผ์ ์ผ๋ก ํธ์์ ์ ๋ฌํ ์๋จ์ ๊ฐ๊ณ ์์ง ์๋ค๋ฉด, ํจ๊ณผ์ ์ธ ํธ์์ ๋ง๋๋ ๋ฐฉ๋ฒ์ Cocoapods๋ Cocoa controls๋ผ๊ณ ์๊ฐ๋๋ค. ๋๋ ์๋ง ์์ผ๋ก ์ด๋ค Objective-C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๋๋ผ๋ Cocoapods์ Cocoa controls๋ฅผ ์ต์ฐ์ ์ผ๋ก ๊ณ ๋ คํ ๊ฒ์ด๋ค. ํด์ปค๋ด์ค์ ์ฌ๋ ธ๋ ๊ธ๋ ํด์ปค๋ด์ค์์๋ ๋น ๋ฅด๊ฒ ์ฌ๋ผ์ก์ง๋ง ํด์ปค๋ด์ค๋ฅผ ์ธ์ฉํ๋ ํธ์ํฐ๋ฅผ ์ค์ฌ์ผ๋ก ์๋นํ ๊ณต์ ๊ฐ ์ด๋ฃจ์ด์ก๋ค.
๋จ, Cocoapods์ ๊ฐ๋จํ ๋งํฌ์ ์๊ฐ๋ง ํธ์ํ๋ฏ๋ก ์ด๋ฆ๊ณผ ์งง์ ์๊ฐ๋ก ๋งค๋ ฅ์ ์ธ ํ๋ก์ ํธ ์๊ฐ๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ํด์ผ ํ๋ค. Cocoa controls๋ ๋๊ธฐ์ ๊ฐ์ฅ ์ค๋ ์๊ฐ์ ์จ์ผ ํ๋ฏ๋ก, ํ๋ก์ ํธ๊ฐ ์์ฑ๋์ง ์์๋๋ผ๋ ์ผ๋จ ๋ฑ๋กํ์ฌ ๋๊ธฐ์ด์ ์ฌ๋ ค๋๊ณ ๊ทธ ์ ๊น์ง ์ ๋นํ ํ๋ฆฌํฐ๋ก ๋ง๋ค์ด ๋ด๋ ๊ฒ์ด ์ค์ํ๋ค. ๋ ๋ชจ๋ ํ ํ๋ก์ ํธ๋ ํ ๋ฒ๋ฐ์ ์ธ ์ ์๋ ๊ธฐํ์ด๋ค. ํ์ํ๋ค๋ฉด ๊ฐ๋ฅํ ์ต๊ณ ๋ก ๋งค๋ ฅ์ ์ธ ์์ ๊น์ง ๊ณต์ ๋ฅผ ์ฐ๊ธฐํ๋ ๊ฒ๋ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ ์ ์๋ค.
์์์ ๋๊ธธ์ ๋๋ ์์์ ์ ๊ณตํ์ง ๋ชปํ๋ ํ ํฐ ์ธ๋ชจ๋ ์์ด ๋ณด์ธ๋ค. ํด์ปค๋ด์ค๋ ํฅ๋ฏธ๋ก์ด ๊ธฐ์ฌ๋ฅผ ์ํ ๊ณณ์ด๋ค. ์ฌ๋๋ค์ด ์ข์ํ ๋งํ ๊ธฐ์ฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ค์ํ๋ค.
์์ด๋ฅผ ์ ์ธํ ์ธ์ด ์ค์์๋ ์ผ๋ณธ์ด์ ์ค๊ตญ์ด๋ก ๊ฐ์ฅ ๋ง์ ๋ด์ฉ์ด ๊ณต์ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ์ง์ ์ฌ๋ฆฐ ์๊ฐ ์ด์ธ์ ๋ฒ์ญ๋ ์๊ฐ๊ฐ ๊ณต์ ๋๋ ๊ณณ๋ ์ผ๋ณธ์ด๊ณผ ์ค๊ตญ์ด๋ก ๋ ๊ณณ์ด ๋๋ถ๋ถ์ด๋ค. ์ค๊ตญ์ด์ ์ผ๋ณธ์ด๋ฅผ ๋ชฐ๋ผ์ ์ด๋ค ๋ด์ฉ์ด๊ณ ์ด๋ค ๊ฒฝ๋ก๋ก ์๋ ค์ง ๊ฒ์ธ์ง ํ์ธํ๊ธฐ๋ ์ด๋ ค์ ๋ค. ํ์ง๋ง ๊ฐ๋ฅํ๋ค๋ฉด ํ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ ๊ฒ๋ ์ข๊ฒ ๋ค.
์ํ๊น๊ฒ๋ ํ๊ตญ์ด๋ก ๋ ๋ด์ฉ์ ๊ฑฐ์ ๋ณด์ง ๋ชปํ๋ค.
Cocoapods
Cocoapods์ ์ด๋์ ๋ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ๋ฅผ ๋ง์ด ๋์ ธ์ฃผ์๋ค. ์ผ๋จ ๋ ์ค์ค๋ก๋ master spec ์ธ์๋ ๋ณ๋๋ก private spec์ ์ด์ํ๋ฉฐ ๊ฐ๋ฅํ ๋ชจ๋ ์ฝ๋๋ฅผ Cocoapods์ผ๋ก ํจํค์งํ๊ณ ์๋ค. Xcode์์ ์ฝ๋๊ฐ ๊พธ์คํ ์ ๋ฐ์ดํธ ๋๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค๋ฃฐ ๋ฐฉ๋ฒ์ด ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ด๊ธฐ๋ ํ๊ณ , ARC ์ต์ ์ด๋ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด๊ธฐ ๋์ด์ด๊ธฐ๋ ํ๋ค.
ํ์ง๋ง ๋ง์ ์ฌ๋์๊ฒ Cocoapods๋ ์ฅ๋ฒฝ์ด๊ธฐ๋ ํ๋ค.22 ์ผ๋จ ์ฒซ ์ค์น๊ฐ ์ด๋ ต๋ค. (์๋ง๋ ์์ง Cocoapods๋ฅผ ์ฌ์ฉํ์ง ์์ ๋๋ถ๋ถ์ ์ฌ๋๋ค์) ํ ๋ฒ๋ ์ ์จ๋ณธ rubygem์ ์จ์ผํ๊ณ , rubygem์ผ๋ก Cocoapods๋ฅผ ์ค์นํ ์ดํ์๋ master spec์ ์ด๊ธฐํํด์ผ ํ๋ค. (์ด ๋ถ๋ถ์ด ์ ํ์ํ ์ง ์ค๋ช ํ๋ ๊ฒ๋ ์ด๋ ต๊ณ ์ค๋ช ํ์ง ์๊ณ ํท๊ฐ๋ฆฌ์ง ์๊ฒ ์คํํ๋๋ก ๋๊ธฐ๋ ์ด๋ ต๋ค.) Podfile์ ํ ํ๋ฆฟ์ผ๋ก ์์ฑ๋์ง ์์ ๋ฌธ๋ฒ์ ์๊ณ ์์ด์ผ ํ๋ฉฐ, iOS SDK ๋ฒ์ ์ ๋ช ์ํ์ง ์์ผ๋ฉด ๋ญ ํด์ผ ํ ์ง ๋ชจ๋ฅผ ์๋ฌ๋ ๋ฐ์ํ๋ค. ์ด ๋ชจ๋ ์ฅ๋ฒฝ์ ๋์ด Cocoapods์ ์ฌ์ฉ ์ค์ด๋ ์ฌ๋๋ค์๊ฒ๋ ๋ฌธ์ ๋ ๋จ์์์๋ค. Cocoapods์ ์ด์ ๋ฒ์ ์ ์ฐ๋ฉฐ ๋ค๋ฅธ ํ๋ก์ ํธ์ ํจ๊ป ์ฐ๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ๋ฑ ์ถ์ ํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ๋ ์์๋ค.
๋๋ README์ ํ ์ ๊ณผ ๋ ๋ฒ์งธ ์์์ ๋๋ถ๋ถ์ Cocoapods๋ฅผ ํ ๋ฒ๋ ์ฐ์ง ์์ ์ฌ์ฉ์๊ฐ ํ๋์ฉ ๋ฐ๋ผ์ฌ ์ ์๋๋ก ํ๋๋ฐ ์๋นํ๋ค. ๊ทธ๋ฐ๋ฐ๋ ์ถฉ๋ถํ ์ฝ์ง ์๋ค. ๊ฒ๋ค๊ฐ ์ฌ๋๋ค์ Cocoapods๊ณผ ์ ๋ชจ๋ฅด๋ ํ๋ก์ ํธ์ ์ด์ค์ ๊ฑฐ๋ถ๊ฐ์ ๊ฐ์ง๊ณ ํ๋ก์ ํธ๋ฅผ ๋ํ๊ฒ ๋๋ค. ์กฐ๊ธ๋ง ์ด๋ ค์๋ "์ ์ฐ๊ณ ๋ง์ง" ๋ผ๊ณ ์๊ฐํ๊ธฐ ์ฝ๋ค.23 ์ด๋ป๊ฒ ์ด ์ฅ๋ฒฝ์ ๋์ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ๋ค. Cocoapods ์์ด๋ ํ๋ก์ ํธ์ ์ผ๋จ ์ ๊ทผํ ์ ์๋๋ก ๋ฐ๋ก ํจํค์ง์ ํด์ผํ ๊น? ํ์ผ์ด ํ๋๊ฑฐ๋, ์๋๋ฉด ์์ค์ฝ๋๋ง ํฌํจํด๋ ๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ์กฐ๊ธ ๋ ์ฌ์ ์์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. Cocoapods๋ก ๋ ์์กด์ฑ์ด ์๊ณ , ๋ฆฌ์์ค ํ์ผ๋ ์์ญ ๊ฐ์ฉ ๋ค๊ณ ๋ค๋ ์ผ ํ๋ ์ํฉ์์๋ ๊ฐ๋ฐ์ ์ธ ์๊ฐ์ ๋ญ๋นํ์ง ์๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ข์ ๋ฐฉ๋ฒ์ด ๋ ์ค๋ฅด์ง ์๋๋ค.
์งํ
UI7Kit์ ์ผ๊ฐ์, ์ฃผ๋ง์ ์กฐ๊ธ์ฉ ์์ ๋๊ณ ์๋ค. Bountysource์ ์ ์์ ์ฐ๋ฉฐ ๋ชฉํ๋ฅผ ์ ๋ฆฌํ๊ณ ์ฐ์ ์์๋ฅผ ์ ํ๊ณ ์๋๋ฐ, ์ผ๋จ์ "์ธํฐํ์ด์ค ๋น๋์์ ์๋ฌด ์ปจํธ๋กค์ด๋ ๋ง ๋์ด๋ค ๋๊ณ iOS6๋ก ์คํํ๋ฉด, iOS7์ฒ๋ผ ๋ณด์ด๊ฒ ํด์ค๋ค"๊ฐ UI7Kit 1.0์ ์ฃผ ๋ชฉํ์ด๋ค.
์ง๊ธ๊น์ง๋ ์์ ์ฐ์ ์์๋ฅผ ๊ทธ๋ฅ ๋ดํค๋ ๋๋ก ์ก์์ง๋ง, ์์ผ๋ก๋ ํํผํ ์ ์๋ ๋ฌธ์ ๋ ํฌ๊ฒ ๋ฌธ์ ์์ด ๋์ด๊ฐ ์ ์๋ ๋น ์ง ๊ตฌํ์ ๋ค๋ก ๋ฏธ๋ฃจ๊ณ ํน์ ์ฑ์์๋ ์์ ์ธ ์ ์๊ฒ ๋ง๋ค๋งํ ํฐ ๋ฌธ์ ๋ถํฐ ๋ค๋ฃจ์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐ๋ง ํ๊ณ ์๋ค. ์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด ์ด์๊ฐ ์์ด๋ฉด ๋ซ๊ณ ์ถ๊ณ , ํนํ ๊ทธ๊ฒ ์ด๋ป๊ฒ ์๋์ผ ํ ์ง ๋ง๋งํ ์ผ ๋์ ๋ผ์ธ ๋จ์๋ก ๊ตฌํํ ์ฝ๋๊ฐ ๋ ์ค๋ฅด๋ ์ฌ์ด ์ผ์ด๋ฉด ๋์ฑ ๊ทธ๋ ๋ค. ๊ฒ๋ค๊ฐ ๋ซ์ ์ฌ๋์ด ๋ ๋ฐ์ ์๋ค๋ ๋๋์ ์์ด๋ ์ด์ ๊ฐฏ์๋ ๋์ฑ ์ฐธ๊ณ ๋ณผ ์ ์๊ฒ ๋ง๋ ๋ค.
UI7Kit์ ๋ง๋ค๋ฉฐ ๋ผ์ ๋ฆฌ๊ฒ ๋๋ผ๋ ๊ฒ์ ์๊ฐ์ด ์ ๋ง, ์ ๋ง, ์ ๋ง ๋ถ์กฑํ๋ค๋ ๊ฒ์ด๋ค. ์ฌํด ์ด์ Rust ํจ์น ๋ช ๊ฐ๋ฅผ ๋ง๋ค๋ฉฐ ์๊ฐ๋ณด๋ค ์ง๋๊ฐ ์ ์๋๊ฐ ๋ต๋ตํ๊ฒ ๋๊ผ๋ ๊ธฐ์ต์ด ๋๋ค. ๋๋ฆ ์ต์ํ ์์ ์ผ๋ก ๋์์์๋ ๋๊ฐ์ ์ฆ์์ ๊ฒช๋ค ๋ณด๋, ๋ฌธ์ ๊ฐ ์ ๋ง๋ก ์๊ฐ ๋ถ์กฑ์ด๋ผ๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์๋ค. UI7Kit์ ์์ํ๋ฉฐ ์์ง ์์ฑ๋์ง ์์ ๋ ๋ง๋ ๊ฒ๋ค์ ๋ํด์๋ ๋ฏธ๋ จ์ ์น ๋ฒ๋ฆฌ๊ณ ์ค์ง์์ผฐ๋ค. ํ์ง๋ง ์ด๋ฏธ ๋ง๋ ๊ฒ์ ๋ํ ๋ฒ๊ทธ ๋ฆฌํฌํธ๊น์ง ๋ฌด์ํ๊ธฐ๋ ๊ฝค ์ด๋ ค์ด ์ผ์ด๋ค.24 UI7Kit์ UI ๋ณต์ ๊ตฌํ๊ณผ Objective-C ๋์ ํจ์น๋ฅผ ํ๋ค. ๋ ๋ชจ๋ ๋ ธ๋์ง์ฝ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ด๋ค. ๋ค๋ฅธ ์์ ์ ํ๋๋ผ ์๊ฐ์ ๋บ๊ธฐ๊ณ ๋๋ฉด, ๊ทธ ์ฃผ์๋ ๊ธ๋ฐฉ commit ์ ๊ทธ๋ํ๊ฐ ๋ ๋จ์ด์ง๊ฒ ๋๋ค.25 1.0์ด iOS7 ์ถ์ ์ด์ ์ ํ์ค์ ์ธ ๋ชฉํ์ด๊ธธ ๋ฐ๋๋ค.
ํ์ฌ ๋ฒ์ ์ด๋ผ๊ณ ํ๊ณ ์ถ์๋ฐ, ์๋ก ์์ ํ ๋ด์ฉ์ ์์ง ์คํฌ๋ฆฐ์ท์ ๋ฐ์ํ์ง ๋ชปํ๋ค.
๋ง๋ฌด๋ฆฌ
์ฌ์ค, ๊ธ์ ์ฒ์ ์ฐ๊ธฐ ์์ํ ๋๋ UI7Kit ์ ๊ตฌํ์ ๊ดํ ์ด์ผ๊ธฐ์ ๊ด๋ จ๋ ๊ธฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ ํจ๊ป ๋ค๋ฃจ์ด๋ณผ ์๋์ด์๋ค. ํ์ง๋ง ๊ธ์ด ์๊ฐ๋ณด๋ค ๊ธธ์ด์ ธ ๋ฒ๋ฆฐ๋ฐ๋ค ๋ค๋ก ๊ฐ์๋ก ์กธ๋ ฌํด์ง๊ณ ์๊ณ , ์ด ๊ธ์ ์ฒซ ์ค์ ์ด ์ง๋ ์ด๋ฏธ 4์ผ์ด ์ง๋ฌ๊ณ , ๊ธ๋ง ์ธ ์๋ ์์ผ๋ ๋๋จธ์ง ์ด์ผ๊ธฐ๋ ๋ค์์ผ๋ก ๋ฏธ๋ฃจ์ด์ผ๊ฒ ๋ค. ์ฌ์ฌํ ๋๋ง๋ค ์งง์ ๊ธ๋ก ํ ํธ์ฉ ์ธ ์ ์์ง ์์๊น ์๊ฐํ๊ณ ์๋ค. ๊ตฌํ์ ๊ดํ ์ด์ผ๊ธฐ๋ ์ฝ๊ฒ ์์ง๋ ์์ํ ๊ณ git log๋ก ์ฝ๊ฒ ํ์ํ ์๋ ์์ํ ๋๊น.
https://github.com/youknowone/UI7Kit UI7Kit์ iPhoneOS์ ์ฒซ ๋ฒ์ ์์๋ถํฐ ํฌ๊ฒ ๋ณํ์ง ์์๋ iOS์ UI๊ฐ iOS7์์ ๊ฐ์๊ธฐ ๋ฐ๋ ์ถฉ๊ฒฉ(?)์ ์ด๋์ ๋ ํก์ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด์ ๋ฒ์ ์ iOS ์ฑ๋ค์ iOS7 ์ฑ์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋ค์ด UI๋ฅผ ๋ฒ์ ๋ณ๋ก ๋ ๋ฒ ๊ด๋ฆฌํ๊ฑฐ๋, ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ OS์์ ๋๊ฐ์ด ๋ณด์ด๊ฒ ํ๊ธฐ ์ํด ๋ง์ ๋ ธ๋ ฅ์ ๋ค์ด์ง ์์ ์ ์๋๋ก ๋์์ค๋ค.ย โฉ๏ธ
XCode4๊ฐ ๋ง๋ derived data ๋๋ ํฐ๋ฆฌ๊ฐ 10GB๊ฐ ๋์ด๊ฐ ์์๋ค. ๊ทธ ์ดํ๋ก ์ด์ Preview4๋ฅผ ๋ฐ๋๋ผ ๋ค์ ํ๋ฒ ์ง์ ๋๋ฐ, ๊ทธ๋์ ๋ค์ 4GB๊ฐ ๋์ด ์๋๋ผ. SSD์ ๋์๋ ๋ฉ์น๊ฐ ํฌ๊ณ ํ๋๋ก ์ฎ๊ธธ์๋ ์๊ณ ์ด๊ฑฐ ์ฐธ......ย โฉ๏ธ
https://github.com/youknowone/FoundationExtension/ ๋ฌธ์ ์ ์ปค๋ฐ์ ์ด๊ฒย โฉ๏ธ
initWithNavigationBarClass:toolbarClassย โฉ๏ธ
๋์ค์ ์๊ฒ ๋ ๊ฒ์ธ๋ฐ, iOS5 ์๋๋ ์ง์ํ ๋์ผ ํ ๋ฐฉ๋ฒ์ด ์๋ค. UI์ ์๋ก ๊ทธ๋ฆฌ๊ธฐ ์ํ API์ ๋๋ถ๋ถ์ด iOS5์์ ์ถ๊ฐ๋์๋ค. ํ์ฐธ ์์ดํฐ ์ฑ ๋ง๋ค๋ ๋๋ง ํด๋ iPhoneOS3 ํธํ์ ํฌ๊ธฐํ ์ ์๋ ๋์๊ธฐ ๋๋ฌธ์, iOS SDK์ ๋ํ ๋ด ๊ธฐ์ต์ ๊ฑฐ์ iPhoneOS3 ์์ ์ ๋จธ๋ฌผ๋ฌ ์๋ค. ๊ทธ๋์ ๋ชจ๋ UI7Kit์ ๊ฐ๋ฐํ๋ฉด์ ์ฒ์ ์ ๊ธฐ๋ฅ์ธ๋ฐ, ๋ก์ UI ๋ฌธ์ ์ ๊ดํด ์ด์จ๋ ์ ํ์ด ๋๊ณ ์์ง ์์๋ค๋ ์๊ฐ์ด ๋ค์๋ค. "iPhoneOS๊ฐ ๋์จ ์ด๋ UI๊ฐ ๊ฑฐ์ ๋ฐ๋์ง ์์๋ค"๋ผ๊ณ ํ์ง๋ง, ์ต๊ทผ์๋ ์ด์จ๋ ์ปจํธ๋กค์ ์ปค์คํฐ๋ง์ด์ฆํ๋ ค๋ ๊ฐ๋ฐ์๋ค์ ์๊ตฌ๋ฅผ ์ด๋ ์ ๋ ๋ค์ด์ฃผ๋ ํธ์ด์๋ ์ . ๊ทธ๋ฆฌ๊ณ iOS7์ด ๋์จ ์ดํ์ ํ์ค์ ์ธ iOS ์ต์๋ฒ์ ์ด iOS5๊ฐ ๋ ๊ฒ์ด๋ผ๋ ์ ์ ์๊ฐํ๋ฉด, iOS5์์ iOS7๊ณผ UI๋ฅผ ๋ง์ถ ์ ์๋ค๋ ๊ฒ์ ์ค์ํ ๋ฌธ์ ๋ค. iOS6๋ UI๊ฐ ๋ฐ๋์๋ค๋ฉด, ๋ง์ ๊ฐ๋ฐ์ฌ์ ๊ฐ๋ฐ์๋ค์ด iOS4.3 ์ง์์ด๋ ์ UI๋์ ๊ฐ๋ฆผ๊ธธ์์ ๊ณ ํต๋ฐ์์ํ ๊ณ , ์ ๋ง์ ์ธ์ฃผ ๊ฐ๋ฐ์๋ค์ด iOS4.3 ์ง์๊ณผ ์ UI ์ฒ๋ฆฌ๋ฅผ ๋์์ ์๊ตฌ๋ฐ์ผ๋ฉฐ ์ด๋ฏธ์ง์ ๋ฒํผ๋ง์ผ๋ก '๊ฐ'์ ๋์์ธ์ ์ํํ๋๋ผ ์ง๋ ๋บ์ํ ๋ค.ย โฉ๏ธ
์ง๊ธ ์ด ๋ฌธ์ ๋ฅผ ๋ง๋๋ค๋ฉด, section๊ณผ ๊ด๋ จ๋ private class๋ฅผ ํ๋์ฉ ํจ์นํด ๋ณผ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ๋ ๋ฌ ์ ์๋ ์ง๊ธ๋ณด๋ค ๊ธฐ๊ต๊ฐ ๋ง์ด ๋จ์ด์ง๋ ์ํ์๊ณ , ๊ทธ๋ฐ ์๊ฐ์ ์ ํ ๋์ง ์์๋ค.ย โฉ๏ธ
ํ์ง๋ง ๊ฒฐ๊ตญ ์ง๊ธ, UITableView๋ฅผ ํดํนํ๋ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ Sensible table view์ ํจ๊ป ์ฐ๋ฉด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๊ณ ์๋ค. ์์ง ์ ๊ทธ๋ฐ์ง๋ ์ดํด๋ณด์ง ๋ชปํ๋ค.ย โฉ๏ธ
๋๋ ์ฌ์ค ์ ์ฅ์๋ฅผ ๋ง๋ค๊ณ ์ฒซ ๋ฆด๋ฆฌ์ฆ๋ฅผ ํ๊ณ ๋๋ฉด "์ ๋ด๊ฐ ์ด๋ฐ ๋ฉ์ง ๊ฑธ ๋ง๋ค๋ค ๋ง์์ง๋ง ์์ธ์ ์ฌ๋๋ค์ ๋ชฐ๋ผ์คํ ๋ ์ค์ค๋ก Star๋ก ์ด ์๊ณ ๋ฅผ ์นํํ๋ฆฌ๋ก๋ค" ๋ผ๊ณ ํ๊ณ ์์ค๊ฒ Star๋ฅผ ๋๋ฅธ๋ค. ํ์ง๋ง ๋ด๊ฐ ๋ง๋ ํ๋ก์ ํธ ์ค ๊ฐ์ฅ ์ธ๊ธฐ์๋ ํ๋ก์ ํธ์์ ํผ์ ์ง์ง๊ฟํ ๊ธฐํ๋ ๋์ธ(@lqez)๊ป ๋บ๊ฒผ๋ค.ย โฉ๏ธ
cocoapods.org Xcode + Objective-C ํ๊ฒฝ์์ ์ฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฉ ํจํค์ง ๋งค๋์ ์ด๋ค. CocoaPods ์๋ Xcode๋ MacPorts์ homebrew ์๋ OS X๊ฐ ๋๋ ๊ผญ ์จ์ผ ํ๋ค. OS X๋ฅผ ์ ์ฐ๋ ์ฌ๋๋ค์ ์ํด์๋ผ๋ฉด, ๋ฐ๋น์์ aptitude๊ฐ ์๊ณ ๋ ๋ํ์ yum(์ ์ปค๋ rpm๋)์ด ์๋ ๊ทธ๋ฐ ๋๋์ด๋ค.ย โฉ๏ธ
CocoaPods๋ ํธ์ ๊ถํ ์ ์ฑ ์ด ๋งค์ฐ ๊ด๋ํ ํธ์ด๋ค. ๋ฌธ์ ์๋ spec์ ๋ช ๊ฐ ๋ณด๋ด๋ฉด ๋ฐ๋ก ๊ถํ์ ์ค๋ค. ๋ฐ๋๋ก ์ด์ผ๊ธฐํ๋ฉด, ํธ์ ๊ถํ์ ์์ง๋ง ๋ญ ํธ์ํด๋ ๋๋์ง ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ ์ด ์์ผ๋ฉด ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ด๊ฒ ๋๋ค. ํ ๋ฆฌํ์คํธย โฉ๏ธ
gitego.com/youknowone/ui7kit ์ฒซ 24์๊ฐ๋์์ ์ถ์ ๋์ง ์์๋ค. ๊ทธ๋ํ์์ ์ฃผ์ ํฌ์ธํธ๋ก ์ฒซ ๋ถ๋ถ๊ณผ ๋ณ๊ณก์ ์ ์ด ์๋๋ฐ, ๋งจ ์ฒ์์ด CocoaPods ํธ์ํฐ + iOSProgramming subreddit + github daily trend, 16 June์ด hackernews, 15 Jul์ด cocoacontrols, 22 Jul์ด cocoacontrols์ control of the week์ด๋ค. gitego ๋๋ถ์ ํ๋ก์ ํธ์ ์ฃผ์ ์งํ๋ก Star๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค. github ํ๋ก์ ํธ ํ์ด์ง์ pv๋ฅผ ํ์ธํ๊ฑฐ๋ ์ ์ฅ์๋ฅผ ํด๋ก ํ ์๋ฅผ ์ถ์ ํ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.ย โฉ๏ธ โฉ๏ธ โฉ๏ธ โฉ๏ธ
์ด ์๊ด์ ์ง์ ์ฌ๋ ๋ ์ก์์ ๊ฑธ์ด ๊ฐ๋ณด๋ก ๋จ๊ธฐ๋๋ก ํ๊ฒ ๋ค. ์ง์ด ์ถฉ๋ถํ ํด ๋๋ง...ย โฉ๏ธ
์คํฌ๋ฆฐ ์บก์ฒ๋ ๋ฌผ๋ก ์ค์ ๋ก ๋์ํ๋ ์๋ฎฌ๋ ์ดํฐ์ ์บก์ฒ์์ง๋ง, ๊ทธ ์ด์์ ์๋์๋ค. ์ฌ์ง์ด ํ๋ฉด์ ๋ณด์ด๋ ํ ์ด๋ธ ๋ทฐ ์ ์ ๋๋ฌ ๋ค๋ฅธ ํ๋ฉด์ผ๋ก ๋ค์ด๊ฐ๋ฉด, ๋ค๋ก ๋ฒํผ์กฐ์ฐจ ๋ฐ๋์ง ์์๋ค. ๋๋ cocoacontrols๋ฅผ ๋๋ฌ๋ณด๋ฉด ์ค์ ๋ก ํ๋ก์ ํธ๋ฅผ ์คํํด ๋ณด๊ธฐ ์ ์ ์ด๋ค ํ๋ก์ ํธ๋ ๊ด์ฐฎ์ ๋ณด์ด๊ณ ์ด๋ค ํ๋ก์ ํธ๋ ๊ทธ๋ ์ง ์์ ๋ณด์ธ๋ค๊ณ ๋์ถฉ ๋ฏธ๋ฆฌ ํ๋จ์ ํ๊ณ ์ค์ ๋ก ๊ทธ๊ฒ ํ์ํด์ง๊ธฐ ์ ๊น์ง๋ ์จ ๋ณด์ง ์๋๋ค. ๊ทธ๋ฌ๋๊น, ๊ฒฐ๊ตญ ๋๋ถ๋ถ์ ์จ ๋ณด์ง ์์ผ๋ฏ๋ก ํ๋ก์ ํธ์ ๊ฐ์น๋ ๊ฒฐ๊ตญ...ย โฉ๏ธ
New Open Source Project Bringing iOS 7 Style To iOS 5 and 6 UIKit Interfaces ๊ด์ฐฎ์. ์ด์ ์ ๋ง๋ก ๊ฑฐ์ ๋ค ๋๋๊น.ย โฉ๏ธ
Hacker newsย โฉ๏ธ
Cocoa Controls๋ OS X๋ iOS์ UI ์ปจํธ๋กค์ ์ ๋ก๋ํ ์ ์๋ ์ฌ์ดํธ์ด๋ค. ์ด์์๊ฐ ์ง์ ๋ฆฌ๋ทฐํ๊ณ ์น์ธํ๋ค. Cocoapods์ ๊น์ ๊ด๊ณ๊ฐ ์๋ ๊ฒ ๊ฐ์ ์ธ์์ ๋๋ผ๋ ์ฌ๋์ด ๋ง์ง๋ง, ์ปจํธ๋กค์ ์ ๋ก๋ํ๊ฑฐ๋ ์ด์ฉํ๋ ๊ณผ์ ์์ฒด๋ ๊ทธ๋ ์ง ์๋ค.ย โฉ๏ธ
๊ธ์ ์ฐ๋ ํ์ฌ ์์ 2๊ฐ์ ์กฐํ์๋ ํฉ์ณ์ 550ํ ์ ๋์ด๋ค.ย โฉ๏ธ
Cocoapods๋ ์์ค์ฝ๋๋ฅผ ๋ฑ๋กํ๊ณ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ๋๊ตฌ๋ฅผ ์ด์ฉํด ํ ์ ์๋๋ก ๋๋๋ค. ์ฌ๋ผ์จ ํ๋ก์ ํธ๊ฐ ์ธ๋ถ๋ก ๊ณต์ ๋๋ ๊ฒฝ๋ก๋ ํธ์ํฐ ๋ฟ์ด๋ค. Cocoapods์์๋ ์ฌ๋ผ์จ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ๊ฒํ๊ณ ๋จธ์งํ๊ธฐ๋ ํ์ง๋ง, ํ๋ก์ ํธ๋ฅผ ํ๊ฐํ์ง๋ ์๋๋ค. ํํธ Cocoa controls๋ ๊ฐ๋ฐ์ ๋ณด์กฐํ๋ ํด์ด๋ผ๊ธฐ ๋ณด๋ค๋ ๋ฐ์ฏค์ ํ๋ ์ดํธ์ ๊ฐ๊น๋ค. Cocoapods์ ๋ฑ๋ก๋์ด ์์ ํ์๋ ์๊ณ ์์ค๊ฐ ๊ณต๊ฐ๋์ด ์์ ํ์๋ ์๋ค. ๋น๋ก ์ฌ์ฉ์๊ฐ ์ฌ๋ฆฐ ํ๋ก์ ํธ๋ง ๋์์ผ๋ก ํ์ง๋ง, ๋ง์์ ๋๋ ํ๋ก์ ํธ๋ฅผ ์ ์ ํ๊ณ ๊ณต์ ํ๊ธฐ๋ ํ๋ค.ย โฉ๏ธ
Cocoa controls - UI7Kit Video๋ ์๋ ์๋ ํญ์ธ๋ฐ, ํ๋ก์ ํธ๊ฐ ๋ง์์ ๋ค์๋์ง ์ ์ ์ธ ์คํฌ๋ฆฐ์ท์ด ํ๋ก์ ํธ๋ฅผ ์ ๋๋ฌ๋ด์ง ๋ชปํ๋ค๊ณ ์๊ฐํ๋์ง๋ ๋ชฐ๋ผ๋ ์์์ ๋ง๋ค์ด ์ฃผ์๋ค. ๊ฐ์ฌํฉ๋๋ค.ย โฉ๏ธ
Cocoa contorls blog - UI7Kit ๋ธ๋ก๊ทธ์์๋ ๋๊ธ ๋ฑ์ ํ๋์ด ์ผ์ด๋์ง๋ ์๋๋ค. ํ์ง๋ง Control of the week์ ํธ์ํฐ์ @cocoacontrols ๊ณ์ ์์ ๊ณต์ ๋๊ณ , ์ด ํธ์์ ๋ํ ๋ฐ์์ ์ ์ง ์๋ค.ย โฉ๏ธ
Bountysource - UI7Kit Bountysource๋ gittip ๋๋์ ์คํ์์ค๋ฅผ ์ํ fundraising ์๋น์ค์ด๋ค. ์๊ธด ์ง ์ผ๋ง ๋์ง๋ ์์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.ย โฉ๏ธ
Cocoapods์ ๊ด๋ จ๋ ์ด์๋ง 4๊ฐ์๋ ๊ฒ ๊ฐ๋ค.ย โฉ๏ธ
๋๋ Objective-C ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ Cocoapods์ผ๋ก ๋ฐฐํฌ๋๊ฑฐ๋ ์ต์ํ Xcode์์ library target์ผ๋ก ์ ๋ฆฌ๋์ด ์์ง ์์ผ๋ฉด ์์ฒญ๋๊ฒ ๊ท์ฐฎ์์ง๋ฉด์ ์ด๋ฆฌ ์ ๋ฆฌ ๋ฏธ๋ฃจ๋ค ๋ค๋ฅธ๊ฑธ ๋จผ์ ํด๋ณด๊ฑฐ๋ ๊ทธ๋ง์ ๋ ์์ผ๋ฉด ๊ทธ๋ฅ ๋ค๋ฅธ ์ผ์ ๋จผ์ ์ฐพ๋๋ค. ๊ทธ๊ฑธ ๋ค์ ํด ๋ณด๋ฌ ๋์์ค๋ ๋๋ ์ง๊ธ ๋น์ฅ ๊ผญ ํด์ผํ ๋์ด๋ค. ์๋ง Cocoapods๋ฅผ ์ฒ์ ์ฐ๋ ์ฌ๋์ ๋น์ทํ ๋๋์ ๋ฐ์ ๊ฒ์ด๋ค.ย โฉ๏ธ
์ด... ๊ทธ๋ฌ๋๊น ์ด๋ ๊ฒ ๋งํ๋ฉด ๋๊ตฐ๊ฐ ์์ธ๋ฅผ ์๊ณ ์๋ค๋ ๋๋น์ผ๋ก ์ณ๋ค๋ณด๊ฒ ์ง๋ง... ๊ทธ๊ฒ ๊ฑฐ๊ธฐ์ ๋๋ฆ์ ๋ณ๋ช ์ด...ย โฉ๏ธ
UI7Kit graphย โฉ๏ธ















