Module, Library, Framework, XCFramework Module ํ๋์ ์ฝ๋ ๋ฐฐํฌ๋จ์ ex) framework or application Xcode์์ ํ๋ ์์ํฌ๋ ์ฑ ๋ฒ๋ค๊ฐ์ ๋น๋ํ์ผ๋ค์ ๊ฐ๊ฐ ๋ชจ๋์ด๋ค ๊ฐ ๋ชจ๋์ ๊ฐ์์ ๋ค์์คํ์ด์ค ๋ฐ ์ก์ธ์ค ์ปจํธ๋กค ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ค๋ฅธ ๋ชจ๋์์ ์ํฌํธ๋์ด ์ฌ์ฌ์ฉ ๋ ์ ์๋ค Bundle ๋ด๋ถ์ ์๋ ํ์ผ ๋๋ ํ ๋ฆฌ์ด๋ค. iOS ์์ ๋ฒ๋ค์ ์ฑ์ ๊ด๋ จ๋ ํ์ผ์ ํ๋์ ํจํค์ง๋ก ์ ๊ณต Object code object code ๋ ๋ณดํต, ์ปดํ์ผ๋ฌ๋ฅผ ํตํด ์์ฐ๋ ๊ฒฐ๊ณผ๋ฌผ Object file object code ๋ฅผ ํฌํจํ๊ณ ์๋ ํ์ผ์ด๋ค. Library Library๋ ํ๊ฒ์์ ์ฌ์ฉ๋ ํจํค์ง๋ Object ํ์ผ๋ค์ ๋ชจ์ ํ๊ฒ์ ์ด๋ป๊ฒ ๋งํนํ๋๊ฐ์ ๋ฐ๋ผ 2 ํ์ ์ผ๋ก ๋๋๋ค Static Library (.a) : ์ปดํ์ผ ์์ ์ ํ๊ฒ.. 2023. 2. 3. async/await, continuation, Actor async/await ๊ธฐ์กด completion handler๋ฅผ ํตํ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ฌ๋ฌ ์ด์ ์กด์ฌ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ์ํด ๋ชจ๋ case์์ completion handler๋ฅผ ํธ์ถํ๋๊ฐ self property์์ retain cycle์ด ๋ฐ์ํ ๊ฐ๋ฅ์ฑ completion handler๊ฐ ์ค์ฒฉ๋์ด ํธ์ถ๋๋๊ฒฝ์ฐ ๋จ์ด์ง๋ ๊ฐ๋ ์ฑ, ์ฝ๋ฐฑ์ง์ฅ ์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Swift์ ์ฝ๋ฃจํด(coroutine) ๋ชจ๋ธ์ ๋์ Coroutine์ ํจ์๊ฐ ๋์ํ๋ ๋์ค ํน์ ์์ ์ suspend(์ผ์์ ์ง)ํ ์ ์๊ณ , resume(๋ค์ ์ฌ๊ฐ)ํ ์ ์๊ฒ ํ๋ค. ๋น๋๊ธฐํจ์(async/await)๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋๊ธฐ ์ฝ๋๋ฅผ ๋ง์น ๋๊ธฐ ์ฝ๋์ธ๊ฒ ์ฒ๋ผ ์์ฑ ํ ์ ์๋ค async ํด๋น ํจ์๊ฐ ๋น๋๊ธฐ ํจ์์์ ๋ํ๋ธ๋ค ํจ์๋ฅผ.. 2023. 2. 1. Concurrency1 : GCD, Operation Concurrency Programming, ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฌ ๊ฐ์ ์ค๋ ๋๋ฅผ ์ด์ฉํ์ฌ ๋์์ ์ฌ๋ฌ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ์ฑ๊ธ ์ฝ์ด์์๋ ๊ฐ๋ฅํ ๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋ ์ ๋๋ค. Swift๋ก ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ completion handler, GCD, Operation, Structed Concurrency๊ฐ ์๋ค Parallel Programming, ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฌ ๊ฐ์ CPU(์ฝ์ด)๊ฐ ํ๋์ ์์ (Task)์ ๋ถ๋ดํด์ ์ฒ๋ฆฌํ๋ ๊ฒ ๋ฌผ๋ฆฌ์ ์ธ ๊ฐ๋ ์ผ๋ก CPU(์ฝ์ด)๊ฐ ์ฌ๋ฌ ๊ฐ ์์ ๋์ ๊ฐ๋ฅ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ์ ๋ค์ค ์ฝ์ด๋ฅผ, ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ๋ค์ค ์ค๋ ๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด๋ฉฐ ์ด ๋์ ๋์์ ์ผ์ด๋ ์๋ ์์ต๋๋ค. Serial Pr.. 2023. 1. 27. PNG transparency bug report ios16 ๋ฒ์ ๊ธฐ๊ธฐ์์ ์๋ฒ์ png ์๋ณธ ํ์ผ์ ์ ๋ก๋ํ๋๋ฐ ์๋ฒ์ jpb๋ก ์ฌ๋ผ๊ฐ ์๊ธธ๋ ํ์ธํด ๋ดค๋๋ ์์ ์ฌ์ด์ฆ์ png ํ์ผ๋ค์ ๋์์ผ๋ก iOS์์ ์์คํ ์ด ํฐ์ background๋ฅผ ๋ง๋ค์ด ๋ฒ๋ฆฌ๋ ๋ฒ๊ทธ๊ฐ ์กด์ฌํ๋ค. ์ฌ๋ฌ๊ฐ์ง ์ผ์ด์ค๋ฅผ ํ์ธํด๋ณด๋ ๊ฐ๋ก ๋๋ ์ธ๋ก์ค 360px ์ดํ์ด๋ฉด ์์คํ ์ด PNG ํ์ผ ํฌ๋ช ํ๋๋ผ๋ ํฐ์ background๋ฅผ ๋ง๋ค์ด ๋ฒ๋ฆฌ๋๊ฒ์ด์๋ค.. ๊ตฌ๊ธ๋ง์ํด๋ณด๋ ์ด ๋ฒ๊ทธ ๋๋ฌธ์ ๋ง์ ๋ถ๋ค์ด ๊ณ ํต๋ฐ๊ณ ์๋๊ฒ ๊ฐ์๋ค;; https://discussions.apple.com/thread/253203125?answerId=256082596022#256082596022 https://tomolog.reafo.io/en/article/abount-iOS15-png-bug ํ์ฌ ์๋น์ค์์.. 2022. 12. 23. ViewBuilder ViewBuilder - ์ ์ : ํด๋ก์ ๋ก ๋ค์์ ์์ ๋ทฐ๋ค์ ๋ง๋ค์ ์๊ฒํด์ฃผ๋ parameter attribute - buildBlock ์ด๋ผ๋ ํ์ ๋ฉ์๋๋ฅผ ํตํด์ ์์ ๋ทฐ๋ก ์์ฑ๋ ๋จ์ผ ๋ทฐ๋ฅผ ์ ๋ฌ - 2๊ฐ ์ด์์ ๋ทฐ์ผ๋๋ TupleView ๋ผ๋ ํ์ ์ ๋ฆฌํด - body ํ๋กํผํฐ๋ ์์์ ์ผ๋ก @ViewBuilder๋ก ์ ์ธ๋์ด์๋ค ๋ค์๊ณผ ๊ฐ์ ํจ์์ ํ๋ผ๋ฏธํฐ์ func contextMenu( menuItems: () -> MenuItems ) -> some View ViewBuilder๋ฅผ ๋ถ์ฌ์ค์ผ๋ก์จ func contextMenu( @ViewBuilder menuItems: () -> MenuItems ) -> some View ๋ค์๊ณผ ๊ฐ์ด ์ฌ๋ฌ ์์๋ทฐ๋ค์ ํด๋ก์ ๋ด๋ถ์์ ์์ฑํ ์ ์๋ค myView.c.. 2022. 11. 10. Sign in with Apple ํ์คํ(iOS + Node.js) ๊ฐ๋ฐ ๋ ธํธ ์ ํ๋ก๊ทธ์ธ๊ธฐ๋ฅ์ ํด๋ผ์ด์ธํธ(iOS)์ ๋ฐฑ์๋(Node.js)๋ก ํ์คํ ๊ฐ๋ฐํ๋ ค ํ๋๋ฐ iOS ๊ฐ๋ฐํ๋ ์๋ฃ๋ ๋ฐฑ์๋๋ฅผ ์ด๋ป๊ฒ ๊ตฌํ ํ๋์ง ๋์ค์ง ์๊ณ , ๋ฐฑ์๋๋ฅผ ๊ฐ๋ฐํ๋ ์๋ฃ๋ iOS๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๋์ง ๋์ค์ง ์๊ณ , ํ์คํ ๊ฐ๋ฐ ์๋ฃ๋ ์ ๋ถ iOS๊ฐ ์๋๋ผ ์น+๋ฐฑ์๋ ํ์คํ ์๋ฃ๋ค์ธ๋ฐ๋ค๊ฐ ์๋ฃ๋ค์ด ์ ๋ถ ์ค๋๋์ ๋ง์ง ์๋๊ฒ ๋๋ฌด ๋ง์๋ค. ๊ทธ๋์ ์ฝ์ง์ ์ฝ์ง์ ๊ฒช์ผ๋ฉฐ ๊ฐ๋ฐ์ ํ๋๋ฐ ํ์คํ ๊ฐ๋ฐ ํ๋ ๋๊ตฐ๊ฐ๋ ๊ทธ๋ฐ ๊ณ ํต์ ๊ฒช์ง ์๊ธฐ๋ฅผ ๋ฐ๋! ๋ชฉ์ฐจ 1. ์ค๋น 2. iOS ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ 3. Node.js ๋ฐฑ์๋ ๊ฐ๋ฐ 4. ๋ง๋ฌด๋ฆฌ ์ค๋น 1. Apple Developer์์ App ID ์ค์ Certificates, Identifiers & Profiles > Identifiers > App IDs ์ถ๊ฐ ๋ฒ๋ค.. 2022. 10. 12. ์ด์ 1 2 3 4 ยทยทยท 13 ๋ค์