๐ iOS122 [iOS/XCode] ์๋ฎฌ๋ ์ดํฐ์์ ํ๊ธ ์ํ ์ฌ์ฉํ๊ธฐ, ํค๋ณด๋ ๊บผ๋ด๋ ๋ฒ ์ฐ์ ์๋ฎฌ๋ ์ดํฐ์์ ํค๋ณด๋๋ฅผ ๊บผ๋ด๋ ๋จ์ถํค๋ Command + Shift + k ์ ๋๋ค ์๋ฎฌ๋ ์ดํฐ์ ํ๊ธ ์ ๋ ฅ์ด ์๋ ๋๊ฐ ์๋๋ฐ ์ฌ์ง์ด ํค๋ณด๋์ ํ๊ธ ์ํ๋ ์์ด์ ๋ถํธํ ๋ ์ค์ ์์ ์ฝ๊ฒ ํ๊ธ ์ํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค~ Simulator ์์ Settings๋ก ๋ค์ด๊ฐ ์ค๋๋ค General ๋ฉ๋ด๋ก ๋ค์ด๊ฐ ์ฃผ์ธ์! ์๋จ์ Keyboard ๋ฉ๋ด๊ฐ ๋ณด์ผ ๊บผ์์! ํญํด์ค๋๋ค Keyboards ๋ก ๋ค์ด๊ฐ ์ค๋๋ค! ์ฒซ๋ฒ์งธ ํญ๋ชฉ์ด์์ Add New Keyboard ๋ฅผ ๋๋ฌ์ ํค๋ณด๋๋ฅผ ์ถ๊ฐํด ์ค์๋ค Korean๋ฅผ ์ ๋ ฅํด ์ค๋๋ค ์ผ๋ถ๋ถ๋ง ์ ๋ ฅํด๋ ํ๋จ์ ๋น๋๋ค! Standard ๋๋ฌ์ฃผ์๊ณ Done ๋๋ฌ ์ฃผ์ธ์ ์๋ฎฌ๋ ์ดํฐ ํค๋ณด๋์์ ์ง๊ตฌ๋ณธ ๋ชจ์ ๋๋ฅด์๋ฉด ์์ด/ํ๊ธ ํ ๊ธ ๋ฉ๋๋ค ๐ฅณ 2022. 9. 14. [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 4 (child coordinator ์ญ์ ํ๊ธฐ) 2022.07.10 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 1 (Coordinator์ AppCoordinator ๊ตฌํํ๊ธฐ) 2022.07.11 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 2 (childCoordinator๋ก ์ด๋ํ๊ธฐ) 2022.07.12 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 3 (๋ฒํผ ๋๋ฌ์ ํ๋ฉด ์ ํํ๊ธฐ) ํด๋น ํํ ๋ฆฌ์ผ์ ์ ๊ธ๊ณผ ์ด์ด์ง๋๋ค! ์ด์ ํฌ์คํ ์์ Coordinator์ ํ๋ฉด ์ ํ์ ๋ํด ๋ค๋ฃจ์ด ๋ณด์์ต๋๋ค. MVVMC์์ View์ Coordinator์ ๋ํด.. 2022. 9. 5. [iOS] Fastlane์ผ๋ก ์ฑ ๋ฐฐํฌ ์๋ํํ๊ธฐ - ์ด๋ก ๊ณผ ์ค์น ์ Fastlane์ ์ฌ์ฉํ์๊น? ๋ค๋ฅธ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ด์ ์ ์งํํ ํ๋ก์ ํธ์ ์ ์ง ๋ณด์๋ฅผ ๋งก๊ณ ์์ต๋๋ค. ์ ์ง ๋ณด์ ์ค์ธ ์ฑ์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ง์ง ์์ง๋ง ์กฐ๊ธ์ ์์ ๋ง์ผ๋ก ํ ์คํธ๋ฅผ ์ํด 6๊ฐ์ ์ฑ์ ๋น๋ํ์ฌ in house๋ก ๋ฐฐํฌํด์ผ ํ์ต๋๋ค. ๊ทธ ํ QA๋ฅผ ๊ฑฐ์น๊ฒ ๋๋๋ฐ ์ด ๊ธฐ๊ฐ ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์ํ๊ฑฐ๋ ์์ ํด์ผ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ๋ค์ ์์ ์ ํ๊ณ 6๊ฐ์ ์ฑ์ ๋น๋ํด์ ๋ฐฐํฌํด์ผ ํ์ด์. QA๊ฐ ๋๋๋ฉด ์ํฐํ๋ผ์ด์ฆ ๊ณ์ ์ผ๋ก ๋ค๋ฅธ ์๋ฒ์ ๋ฐฐํฌํ๊ฒ ๋ฉ๋๋ค. ์ฝ๋ ์์ ์ด๋ ์๊ตฌ ์ฌํญ์ ์ ์ง๋ง ์กฐ๊ธ์ ์์ ์ผ๋ก 6๊ฐ์ ์ฑ์ ๋น๋(ํ๋ ๊ฒ๋ ์ค๋ ๊ฑธ๋ฆผ)์ ๋ฐฐํฌํ๋ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ ค์ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์๋ ์ํฅ์ด ์ค๋๋ผ๊ตฌ์(์ฌ๋ฌ๊ฐ์ ์ฑ์ผ๋ก ๋ถ๋ฆฌํ์ง ์๊ธฐ ์ํด ํ์๋ฅผ ์์ญ ๋ฒ ํ์ง๋ง ์์ ์ฑ์ ์ด์ .. 2022. 9. 5. [CI/CD] ์ง์์ ํตํฉ๊ณผ ์ง์์ ๋ฐฐํฌ์ ๊ฐ๋ ๊ณผ ์ฅ์ Intro ์ด์ ์ ๊ต์ฅํ ํฅ๋ฏธ๋ก์ด ์์์ ๋ณธ ์ ์ด ์์ต๋๋ค. ํ๋์ ์๋น์ค๋ฅผ ์ด๋ป๊ฒ ๊ธฐํํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋์ง์ ๊ด๋ จ๋ ์์์ด์์ต๋๋ค. ์ฌ์ฉ์๋ง๋ค ๋ฒํผ ๋ฐฐ์น๋ฅผ ๋ค๋ฅด๊ฒ ๋ณด์ด๊ฒ ํด์ ์ด๋ค ์์น์ ๋ฒํผ์ด ๋ ๋ง์ ์ฌ์ฉ์์๊ฒ ๋๋ ธ๋์ง ๋ก๊ทธ๋ฅผ ์์งํ๊ณ , ์ด์ ๋ฐ๋ผ ์์ฌ ๊ฒฐ์ ์ ํ๋ค๋ ๋ด์ฉ์ด์์ต๋๋ค. ์ด๋ ์ด ๋ฒํผ์ ์์น๋ฅผ ๋ฐ๊พธ๋ ํ๋ก์ธ์ค๋ฅผ ์ ๊ตฌ์ถํด ๋์์ ์กฐ๊ธ์ ์์ ์ผ๋ก ๋น ๋ฅด๊ฒ A์ B ์์ ํ ์คํธ ํด ๋ณผ ์ ์์๋ค๊ณ ํฉ๋๋ค. ์ด๋ ๊ฒ ์์ ์ผ๋ถ๋ถ์ ์์ ํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์๋น์ค๋ฅผ ์ด์ํ๋ค ๋ณด๋ฉด ๋ฒ๊ทธ๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋๊ณ ์ฝ๋๋ฅผ ์์ ํ๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ์ฌ ์๋น์คํ๋ ์ผ์ด ์ฆ์ต๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ ํ๊ฒ ๋๋ฉด ์ด ์ฝ๋์ ๋ํ ๊ฒ์ฆ์ ์ํด ๋ด๋ถ์ ์ผ๋ก ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๊ณ QA๊ฐ ์ด๋ฃจ์ด์ง .. 2022. 9. 3. unable to boot the simulator launchd failed to respond ํด๊ฒฐ๋ฒ ์๋จ xCode ํด๋ฆญ > Preferences ํด๋ฆญ Locations ํญ ํด๋ฆญ > ํ๋จ Derived Data ์ ํด๋ ๊ฒฝ๋ก์์ ํด๋ ์ด๋ํ๊ธฐ ์์ด์ฝ ํด๋ฆญ ํด๋์์ ํ์์๋ DerivedData ์ง์ ์ฃผ๊ธฐ ๋น๋ ํ ์๋ฎฌ๋ ์ดํฐ ์ฌ ์คํ 2022. 8. 22. [iOS/Swift] UIImagePickerController ์ฌ์ฉํ๊ธฐ UIImagePickerController ๊ฐ์ฒด ์์ฑ private lazy var picker = UIImagePickerController().then { $0.delegate = self } or var picker = UIImagePickerController() override func viewDidLoad() { picker.delegate = self } ๋ฒํผ target ์ค์ imageButton.addTarget(self, action: #selector(presentPhotoPicker), for: .touchUpInside) @objc func presentPhotoPicker() { present(picker, animated: true) } UIImagePickerControlle.. 2022. 8. 21. [Swift/iOS] UICollectionView layout ์ ๋ฐ์ดํธ collectionView.collectionViewLayout.invalidateLayout() ๋ ์ด์์ ์์ฑ์ ๋ณ๊ฒฝํ๊ณ ์ถ์๋ ๋ช ์์ ์ผ๋ก ๋ ์ด์์์ ์ ๋ฐ์ดํธ ํ ์ ์์ 2022. 8. 20. [iOS/Swift] UITableView Header ๋์ด ์ ๋ฐ์ดํธ ํ๊ธฐ ์คํฌ๋กค ์ UITableView Header๋ฅผ ๊ณ ์ ์ํฌ ์๊ฐ ์๋๋ฐ ํค๋์ ์๋ ๋ฒํผ์ ๋๋ฌ ํค๋์ ๋์ด๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ ex) ํค๋ ๋ฒํผ ๋๋ฅด๋ฉด ๊ฒ์ ์์ญ ๋ ธ์ถ UITableViewHeaderFooterView ์ ๋์ด ์ ๋ฐ์ดํธ ํ๋ ์ฝ๋ ์์ฑ func toggleHeight() { containerView.snp.updateConstraints { make in make.height.equalTo(searchButton.tag).priority(.high) } } header ์ง์ ํ๋ Delegate์์ ํค๋์ ๋ฒํผ์ addTarget ํด์ค ์ด๋ ์ฐ๊ฒฐํ ํจ์๋ updateHeader func tableView(_ tableView: UITableView, viewForHeaderInSectio.. 2022. 8. 17. [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 3 (๋ฒํผ ๋๋ฌ์ ํ๋ฉด ์ ํํ๊ธฐ) 2022.07.10 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 1 2022.07.11 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 2 ํด๋น ํํ ๋ฆฌ์ผ์ ์ ๊ธ๊ณผ ์ด์ด์ง๋๋ค! ์ด์ ํฌ์คํ ๊น์ง ๋ณด๊ณ ์ค์ จ๋ค๋ฉด AppCoordinator์์ LanindCoordinator๋ฅผ childCoordinator๋ก ์ถ๊ฐํ๋ฉด์ LandingViewController๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ๊ฒ ๊น์ง ๋์ด ์์๊ฑฐ์์! ์ด๋ฒ ํฌ์คํ ์์๋ view์ ๋ฒํผ์ ๋๋ฌ์ ํ๋ฉด ์ ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค. Landing ํ๋ฉด์์ Register(ํ์๊ฐ์ )๊ณผ Login(๋ก๊ทธ์ธ) ํ๋ฉด์ผ๋ก ์ด๋ํ ์ ์๋ค๊ณ .. 2022. 7. 12. [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 2 (childCoordinator๋ก ์ด๋ํ๊ธฐ) 2022.07.10 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 1 ์ ํฌ์คํ ํ์ ์ด์ด์ ํ๋ ํฌ์คํ ์ ๋๋ค ๐๐ป LandingCoordinator AppCoordinator๋ ์ฑ์ ์ฒ์ ์คํํ์ ๋ ์ฒซ ํ๋ฉด์ ์ด๋ค ํ๋ฉด์ผ๋ก ํ ์ง ๋ด๋นํ๋ Coordinator์ ๋๋ค. ํ๋ฉด์ ๊ทธ๋ฆฌ๊ธฐ ์ํด ํ์ํ ๋ฐ์ดํฐ(dependency)๋ฅผ ์ค๋นํ๊ณ ๋คํธ์ํน์ ์ํ ๊ฐ์ฒด๋ฅผ ์ค์ ํฉ๋๋ค. ์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด AppCoordinator์์ Landing ํ๋ฉด์ ๋ณด์ฌ์ค ์๋ ์๊ณ , ์๋ ๋ก๊ทธ์ธ์ด ๋์ด ์๋ค๋ฉด HomeCoordinator๋ก ์ด๋ํ ์ ์์ต๋๋ค. ์ฐ์ LandingCoordinator์ ์์ฑํ๊ฒ ์ต๋๋ค. import UIKit class LandingCo.. 2022. 7. 11. [Swift] MVVMC ์์ธํ ์์๋ณด๊ธฐ - ํํ ๋ฆฌ์ผ 1 (Coordinator์ AppCoordinator ๊ตฌํํ๊ธฐ) ๊ทธ ๋์ MVVM๊ณผ MVVMC ๊ทธ๋ฆฌ๊ณ Coordinator์ ๋ํด ํฌ์คํ ์ ํ์ต๋๋ค. ํน์ MVVM์ด๋ MVVMC๊ฐ ์์ํ์๋ค๋ฉด ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํ์๋ฉด ์ข์๊ฑฐ ๊ฐ์์! ๋ง์ฝ MVVM์ด ๋ญ์ง ์์ธํ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ๐ 2022.06.04 - [๐ iOS/Architecture Pattern] - [Swift] MVVM ๊ฐ๋จํ๊ฒ ์์๋ณด๊ธฐ MVVM-C๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด ๐ 2022.06.11 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC ๊ฐ๋จํ๊ฒ ์์๋ณด๊ธฐ Coordinator์ ์ญํ์ด ๊ถ๊ธํ๋ค๋ฉด ๐ 2022.06.14 - [๐ iOS/Architecture Pattern] - [Swift] MVVMC์ Coordinator ์์๋ณด๊ธฐ ์ฐ์ MVVMC ๊ตฌํ ๋ฐฉ๋ฒ์ ๊ต์ฅํ ๋ง์ต.. 2022. 7. 10. [iOS/Swift] UIButton in iOS15 WWDC ์ ๋ฆฌ Buttons 4๊ฐ์ง ๊ธฐ๋ณธ style Button configuration config.image ํ๋กํผํฐ์์ ์ง์ ํ ์ด๋ฏธ์ง์ ์์น๋ฅผ imagePlacement๋ฅผ ์ฌ์ฉํ์ฌ ์์น๋ฅผ ์ง์ ํด ์ค ์ ์์ addToCartButton.configurationUpdateHandler = { [unowned self] button in // ์ด๋ฏธ ๋ฒํผ์ ์ง์ ๋์ด ์๋ configuration์ ๋ฐ์์ด var config = button.configuration // ๋ฒํผ์ด highligted ๋ฌ์ ๋ fill์ด๋ฏธ์ง๋ก ์ง์ ํ๊ณ ์๋ ๊ฒฝ์ฐ์๋ outline์ด๋ฏธ์ง๋ฅผ ์ ์ฉ config?.image = button.isHighlighted ? UIImage(systemName: "cart.fill.badge.plus") :.. 2022. 6. 29. ์ด์ 1 2 3 4 5 6 7 8 ยทยทยท 11 ๋ค์