๋คํฌ๋ชจ๋๋ฅผ ์ค์ ํด๋ ๊ฒฝ์ฐ ๋์ํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ค์์ ๋คํฌ๋ชจ๋๋ฅผ ๋์ํ๊ธฐ๋ณด๋ค ๊ฐ๋จํ๊ฒ ์ ํ์ํค๋ ๋ฐฉ๋ฒ์ด๋ค. info.plist ์ ๋ค์๊ณผ ๊ฐ์ด ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค. Light ๋ชจ๋๋ก ์ ํํ๋ ๊ฒ์ด๋ค.
ํ์ ์ info.plist ์์ ์์ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ค์ ํ๋ค๋ณด๋ info.plist ํ์ผ์์ ์ถฉ๋์ด ๋๋ ๊ฒ์ด ์ํ์ด ์๋ค๊ณ ์๊ฐํด์ ์ฝ๋๋ก ์์ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ๋ณ๊ฒฝํ๋๋ก ํด๋ณด์๋ค. ์ฒซ๋ฒ์งธ, ํ๋ก์ ํธ ํ์ผ์ Main Interface ๋ฅผ ์ญ์ ํ๋ค. ๋๋ฒ์งธ, info.plist ํ์ผ์ Application Scene Manifest ๋ฅผ ํผ์ณ์ Storyboard Name ์ ์ญ์ ํด์ค๋ค. ์ธ๋ฒ์งธ, SceneDelegate.swift ํ์ผ์ ๋ค์์ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ค๋ค. func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let wind..
UIStatusBarManager iOS 13 ์ผ๋ก ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ KVC ๋ฅผ ํตํ ์ํ๋ฐ์ ๋ํ ์ ๊ทผ์ ๊ธ์งํ๊ณ ์๋ค. ๋์ UIStatusBarManager ๋ก ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค. ๊ตฌํ if #available(iOS 13.0, *) { let margin = view.layoutMarginsGuide let window = UIApplication.shared.windows.first { $0.isKeyWindow} let statusBarManager = window?.windowScene?.statusBarManager let statusBarView = UIView(frame: statusBarManager?.statusBarFrame ?? CGRect.zero) statusBarView.back..
์คํ ๋ฆฌ๋ณด๋์์ ์ค์ ๊ฐ๋ฅํ์ง๋ง programmatically ํ๊ฒ ๊ตฌํ๋ ๊ฐ๋ฅํ๋ค. collectionViewLayout ์์ฑ์ ํตํด์ ์ค์ ํ ์ ์๋ค. let layout = onboardingCollectionView.collectionViewLayout as? UICollectionViewFlowLayout layout?.scrollDirection = .horizontal //layout?.scrollDirection = .vertical
์ปค์คํ ๋ค๋น๊ฒ์ด์ ๋ฐ์ ์๊ณผ ์ํ๋ฐ์ ์ ๋ง์ถ๊ธฐ ์ปค์คํ ๋ค๋น๊ฒ์ด์ ์ ๋ง๋ค๊ฒ๋๋ฉด์ ์ํ๋ฐ์ ์์ ๋ง์ถฐ์ผํ๋ ์ผ์ด ์๊ฒผ๋ค. ๋ ธ์น์ ๋ฐ๋ผ ์ํ๋ฐ์ UIView ๋ฅผ ์น์ด์ ์์ผ๋ก ๋ง์ถ๋ ์๋ฆฌ๋ก ๋ง๋ค์๋ค. iPoneSE 2์ธ๋ iOS 13.0 ๋ ธ์น๊ฐ ์๊ธด ์ดํ Code Extension ์ผ๋ก UIViewController ์ ํจ์๋ฅผ ์ถ๊ฐ. extension UIViewController { func setupStatusBar(_ color: UIColor) { // 1. if #available(iOS 13.0, *) { // 2. let margin = view.layoutMarginsGuide let statusbarView = UIView() statusbarView.backgroundColor = color..
์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ PanModal ์ฌ์ฉํ๊ธฐ ๋ชจ๋ฌ์ฐฝ์ ๋์ฐ๊ณ ์ถ์ ๋ทฐ์ปจ import PanModal //... // MARK: - @IBAction Properties @IBAction func sortButton(_ sender: Any) { let storyboard = UIStoryboard(name: Const.Storyboard.Name.SortPanModal, bundle: nil) let vc = storyboard.instantiateViewController(withIdentifier: Const.ViewController.Name.SortPanModal) as! SortPanModalVC self.presentPanModal(vc) } ๋ชจ๋ฌ์ฐฝ ๋ทฐ์ปจ import PanModal class S..
Login tutorial using Apple REST API 1. Capability ์ถ๊ฐ ํ๋ก์ ํธ์์ Signing & Capabilities ์์ Sign in with Apple ์ถ๊ฐํ๋ค. 2. Apple Developer ์ App ID, Service ID, Key ๋ฑ๋ก App ID ๋ฅผ ๋ฑ๋กํด์ค๋ค. Sign In with Apple ์ฒดํฌํด์ค๋ค. ์์ ๊ฐ์ด Service ID ๋ ๋ฑ๋กํด์ค๋ค. Key ๋ ๋ฑ๋กํด์ค๋ค. ์๋ฒ์์ ์๊ตฌํ๋ ๊ฒ๋ค์ ์ธํ ํด์ค๋ค. ์๋์ ๋งํฌ์์ apple developer ์์ ์ธํ ์์๋ค์ด ์๊ฐ๋๋ค. passport-apple ๋ก ์น์์ ์ ํ๋ก๊ทธ์ธ ์ฐ๋ 3. ๋ฒํผ ์ถ๊ฐํ๊ธฐ Buttons - Sign in with Apple - Human Interface Guidelin..
์๋ฒ ํต์ ์ success ์ผ ๊ฒฝ์ฐ data ๊ฐ ๋์ด์ค์ง๋ง fail ์ผ ๊ฒฝ์ฐ ๋์ด์ค์ง ์๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ data ๋ถ๋ถ์ ์ต์ ๋๋ก ์ ์ธํด์ฃผ์ด์ผ ํ๋ค. codingkey ๋ฅผ ์ฌ์ฉํด์ ๋ค์๊ณผ ๊ฐ์ด ์๋ฒ์์ ๋๊ฒจ์ฃผ๋ ๋ณ์๋ช ์ ๋ง์ถ ์ ์๋ค. init() ์ ํตํด์ ์๋ฌด๋ฐ ๊ฐ์ด ๋ค์ด์ค์ง ์์ ๋ ์ด๊ธฐํ๋ ๊ฐ๋ฅํ๋ค. struct HomeDataModel: Codable { let status: Int let success: Bool let message: String let data: HomeResponse? enum CodingKeys: String, CodingKey { case status = "status" case success = "success" case message = "message" case..
- WWDC
- urlsession
- ์๋ฒํต์
- 2022 KAKAO TECH INTERNSHIP
- SwiftUI
- Firebase
- configurable widget
- IOS
- CloneCoding
- containerBackground
- WWDC22
- Protocol
- projectsetting
- async/await
- watchOS
- Swift
- Algorithm
- OpenSourceLibrary
- APNS
- WidgetKit
- RxCocoa
- Objective-C
- github
- MVVM
- Widget
- Notification
- MOYA
- UserDefaults
- rxswift
- YPImagePicker
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Total
- Today
- Yesterday