๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ์์ ํ๊ตญํ๊ฒฝ๊ณต๋จ์์ ์ ๊ณตํ๋ ๋๊ธฐ์ง ์ ๋ณด๋ฅผ ํตํด์ ๊ฐ๋จํ๊ฒ ์ธก์ ์๋ณ ๋๊ธฐ์ง ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ ์ฑ์ ๋ง๋ค์ด๋ณด๋ ค๊ณ ํ๋ค. ํ๊ตญํ๊ฒฝ๊ณต๋จ_์์ด์ฝ๋ฆฌ์_์ธก์ ์์ ๋ณด ๋๊ธฐ์ง ์ธก์ ์ ์ ๋ณด๋ฅผ ์กฐํํ๊ธฐ ์ํ ์๋น์ค๋ก TM ์ขํ๊ธฐ๋ฐ์ ๊ฐ๊น์ด ์ธก์ ์ ๋ฐ ์ธก์ ์ ๋ชฉ๋ก๊ณผ ์ธก์ ์์ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋ค. โป ์ด์๊ณ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ ํ ๊ฒฝ์ฐ ์์ด์ฝ๋ฆฌ์ OpenAPI ์ฌ์ฉ์ www.data.go.kr ๊ตฌํํ๋ ค๋ ์ฑ์ ์ด 3๊ฐ์ ViewController๋ก, ์ง์ญ๋ช
์ ๊ฒ์ํ ์ ์๋ ํ์ด์ง ํด๋น ์ง์ญ์ ์ธก์ ์ ๋ชฉ๋ก์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง ํน์ ์ธก์ ์์ ๋๊ธฐ์ง์ ์์ธ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์ฐ์ ์ง์ญ๋ช
์ ๊ฒ์ํ ์ ์๋ ํ์ด์ง์ธ ViewController๋ถํฐ ์ดํด๋ณด์. // // ViewControlle..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
Delegate๋ก ํน์ Cell์ ํด๋ฆญํ์ ๋ ์์ธ ์ ๋ณด ํ์ด์ง๋ก ์ด๋ํ๋๋ก ๊ตฌํํ๋ค. extension ViewController : UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { guard let viewController = self.storyboard?.instantiateViewController(identifier: "DiaryDetailViewController") as? DiaryDetailViewController else { return } let diary = self.diaryList[indexPath.row] ..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
TableView๋ฅผ ์ฌ์ฉํ๋ฉด์ Cell์ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด extension์ผ๋ก UITableViewDataSource๋ฅผ ์ฌ์ ์ํ๊ณ ๋น๋๋ฅผ ์งํํ๋ค. extension ViewController : UITableViewDataSource { func tableView(_ tableView : UITableView, numberOfRowsInSection section : Int) -> Int { return self.tasks.count } func tableView(_ tableView : UITableView, cellForRowAt indexPath : IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdenti..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ธํด ๊ธฐ๊ฐ ๋์ ๊ฐ๋ฐํ ์ฑ์ ๋ฐฐํฌํ๋ ค๊ณ ์ฑ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ฒจ๋ถํ๊ณ Gradle์์ debug -> release ๋ก ๋ณ๊ฒฝํ๊ณ Build Apk ๋ฅผ ๋๋ ๋๋ฐ! ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ด๋ค. mockup1/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: AAPT: error: failed to read PNG signature: file does not start with PNG signature. ์์นญ์ ํด๋ณด๋๊น Gradle ๋ฒ์ ผ์ด ๋ง์ง ์๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ๋ค~ ์ด๋ฐ ๊ธ๋ค์ด ๋ง์๋ฐ ๋ญ๊ฐ ์ด์ํ๋ค. ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ ๋ฒ์ ผ์ด 7์ธ๋ฐ 4๊น์ง ๋ฎ์ถฐ์ผํ๋ค๊ณ ? ๊ดํ ๊ฑด๋๋ ธ๋ค๊ฐ ๋ค๋ฅธ ์ค๋ฅ๋ก ํฐ๋ฏธ๋์ด ํฐ์ง ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ์ฒจ๋ถํ ์ฑ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ดํด๋ดค๋ค. ํ์ผ๋ช
์ ic..
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ค๋ ์๋๊ถ์ ๋น๊ฐ ์์ฒญ ๋ด๋ ค์ ์ฌํ์ ํ๊ฒ ๋๋ค. ์ฌ๋ด ๊น๊ณผ ์ฐ๋์ด ๋์ด ์์ง ์์์ ํ๋ก์ ํธ๋ฅผ ์๋ก ์์ฑํด์ ๋น๋๋ฅผ ํ๋๋ฐ ์๋์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. Gradle ๋ฒ์ ผ๊ณผ Kotlin Gradle Plugin ๋ฒ์ ผ์ด ๋ง์ง ์์ ์๊ธฐ๋ ์ค๋ฅ์๋ค. ์น์ ํ๊ฒ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋ค. android/gradle/wrapper/gradle-wrapper.properties๋ฅผ ์์ ํ๋ฉด ๋๋ค. ์๋ ค์ค ํด๊ฒฐ ๋ฐฉ๋ฒ๋๋ก ๋ฒ์ ผ์ 6.7.0์์ 6.7.1๋ก ๋ณ๊ฒฝํ๋๋ฐ ์ ์์ ์ผ๋ก ๋น๋๊ฐ ๋๋ค. Gradle ๋ฒ์ ผ์ ์๋ ๋งํฌ์์ ํ์ธํ ์ ์๋ค. Gradle Distributions services.gradle.org
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ค๋ฅ ๋ฐ์ Databinding + ViewModel + LiveData ๋ก ๊ฐ๋จํ MVVM ์์ ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด Databinding ์ผ๋ก ํํํ ๋ณ์(?)๋ฅผ layout ์์ ๋ธ๋ญ์ ๋ฃ์ด์คฌ๋๋ ๋ฐ์ํ ์ค๋ฅ ์ค๋ฅ ๋ด์ฉ ํด๊ฒฐ String ์ผ๋ก ๋ณํํ์ง ์์์ ๋ฐ์ํ ๋ฌธ์ ... ใ
ใ
ใ
ใ
ใ
... toString() ์ ํด์คฌ๋๋ ์ ์์ ์ผ๋ก ์๋ํ๋ค. ์ฐธ๊ณ MVVM ์์ StackOverFlow
๐ป ๊ฐ๋ฐ/์ค๋์ ์ฝ์ง
์ค๋ฅ ๋ฐ์ ์ธํด์ ์งํํ๋ฉด์ ์์ฑํ ์ฝ๋๋ค์ ๊น๋ฉ์ด ์๋ ๊นํ๋ธ์ ์ฌ๋ ค๋จ์๋ค. ์๋๋ ํ์ฌ ๊น๋ฉ์ ์ฌ์ฉํด์ผํ๋๋ฐ ์ค๋ฅ ๋๋ฌธ์ ์ฌ๋ผ๊ฐ์ง ์์์ ์ฐ์ Private Repository ๋ฅผ ์์ฑํด์ ์ปค๋ฐ์ ํด์คฌ๋ค. ๊ทธ๋ฌ๋ ์ค ์ธํด ๋ง์ง๋ง ๋ ์ธ ์ค๋ ๋ชจ๋ ์ฝ๋๋ฅผ ๊น๋ฉ์ผ๋ก ๋ค์ ์ฎ๊ธฐ๋ ค๊ณ ํ๋๋ฐ ๋ฐ์ํ ์ค๋ฅ... ์ฐ์ git remote rm origin ์ผ๋ก ์ฐ๊ฒฐ๋ Repository ์ ํด์ ํ๊ณ git remote rm origin "์๋ก์ด ๊น๋ฉ ssh ์ฃผ์" ๋ก ๋ค์ ์ฐ๊ฒฐํ๊ณ push ๋ฅผ ์งํํ๋๋ฐ? ์ค๋ฅ ๋ด์ฉ refusing to merge unrelated histories ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ด๋ค. ์์ธ์ ๊น๋ฉ์ ์์ฑํด๋์ Repository ์ ์ง๊ธ๊น์ง ๊นํ๋ธ์ ์ปค๋ฐํ๋ Repository ๊ฐ ์๋ก ๊ด๋ จ์ด ์..