서버 통신 시 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..
UIDevice 를 extension 으로 아이폰의 기종유무를 저장하는 변수를 만든다. import UIKit extension UIDevice { public var isiPhoneSE: Bool { if UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.phone && (UIScreen.main.bounds.size.height == 568 && UIScreen.main.bounds.size.width == 320) { return true } return false } public var isiPhoneSE2: Bool { if UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.phon..
viewDidLoad() 에서 화면전환 하면 원하는 뷰 전환이 이루어지지 않았다. view 가 다 보여지기 전에 화면전환을 하면 위와 같이 콘솔창에 찍힌다. class SplashVC: UIViewController { // MARK: - View Life Cycle override func viewDidLoad() { super.viewDidLoad() // view 가 다 보여지기 전에 화면전환을 하면 위와 같이 콘솔창에 찍힌다. // 자연스럽게 뷰가 전환되지도 않는다. presentToLogin() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) // 다음과 같이 뷰가 다 나타난 후에 화면전화를 진행해야한..
제플린에서 쉐도우 설정 및 동적으로 셀크기 설정 backView.layer.cornerRadius = 10 backView.layer.shadowOffset = CGSize(width: 2, height: 2) backView.layer.shadowRadius = 7 backView.layer.shadowColor = UIColor.black.cgColor backView.layer.shadowOpacity = 0.14 다음과 같이 매칭이 된다. 우린 extension 으로 편하게 사용할 것! import Foundation import UIKit extension CALayer { func applyShadow( color: UIColor = .black, alpha: Float = 0.5, x: CG..
UIImageView UITapGestureRecognizer 로 액션설정하기 // MARK: - @IBOutlet Properties @IBOutlet var loginImageView: UIImageView! //... // MARK: - Methods func loginTapAction() { let login = UITapGestureRecognizer(target: self, action: #selector(login)) loginImageView.isUserInteractionEnabled = true loginImageView.addGestureRecognizer(login) } // MARK: - @objc Methods @objc func login() { guard let nextVC ..
Customizing the Appearance of Notifications - notifications interface 를 커스텀 해보자 Apple Developer - Customizing the Appearance of Notifications Overview iOS 장비가 alert 가 포함된 notification 을 받으면 시스템은 alert 내용을 두 단계로 표시합니다. 처음에는 title, subtitle, two to four lines of body text 가 포함된 축약된 banner 을 표시합니다. 축약된 banner 를 누르면 notification-based actions 과 전체 notification interface 를 표시합니다. 시스템은 축약 된 배너에 대한 인터페..
Declaring Your Actionable Notification Types - notification 을 차별화하고 notification interface 에 action buttons 더하기 notification 에 대해서 공부해보다가 애플개발자문서를 정리해보았다. Overview actionable notifications 는 전달된 알림에 대해서 관련앱을 실행하지 않고도 반응할 수 있다. actionable notification 의 경우 알림 인터페이스 외의 아래와 같이 하나 이상의 버튼을 표시합니다. 버튼을 탭하면 정해진 action 이 앱으로 전송되고 background 에서 작업을 처리한다. actionable notifications 을 지원하기 위해선 : app 런치 시 하나 이..
- Widget
- OpenSourceLibrary
- rxswift
- 서버통신
- IOS
- WWDC22
- APNS
- github
- watchOS
- 2022 KAKAO TECH INTERNSHIP
- Notification
- projectsetting
- Protocol
- Swift
- MVVM
- WidgetKit
- Algorithm
- YPImagePicker
- UserDefaults
- WWDC
- RxCocoa
- CloneCoding
- configurable widget
- Objective-C
- SwiftUI
- urlsession
- MOYA
- Firebase
- containerBackground
- async/await
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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