๋ชฉ๋ก๐ฑ๐ iOS (62)
Bibi's DevLog ๐ค๐
https://hryang.tistory.com/23 ๋จผ์ ์ํ๋ ํฐํธ ํ์ผ์ ๋ค์ด๋ก๋๋ฐ๊ณ , ํ๋ก์ ํธ์ ํฌํจ์ํค๊ณ , Info.plist์ ๋ฑ๋กํด ์ฃผ์ด์ผ ํ๋ค. ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ค. ์ดํ ํฐํธ ํ์ผ์ ์ด๋ฆ(ํ์ฅ์ ์ ์ธ)์ UIFont(name:)์ผ๋ก ์ง์ ํ๋ค. import UIKit enum CustomFont { case santanaBlack } extension UIFont { static func customFont(_ name: CustomFont) -> UIFont { switch name { case .santanaBlack: // set font and size you want return UIFont(name: "Santana-Black", size: 32) ?? UIFont() } } }
UIColor extension์ผ๋ก ๊น๋ํ๊ฒ ํํํ๊ธฐ ๋ค์ํ UIColor ์ง์ ์์์ ์ต์คํ ์ ์ผ๋ก ๋ถ๋ฆฌํด ๋ณด๋ผ๊ณ ํด์ ์ฐพ์๋๋ฐ, ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ๋ค. init : rgb ์ํ ๊ธฐ๋ณธ๊ฐ์ 1๋ก ์ง์ ํ๋ convenience init customColor : ์ง์ ๋ ์์์ colorLiteral๋ก ํํ // // UIColorExtension.swift // starbuckst // // Created by Bibi on 2022/05/11. // import UIKit enum CustomColor { case white } extension UIColor { convenience init(red: Int, green: Int, blue: Int, a: Int = 1) { self.init( red: C..
TDD, ๋จ์ ํ ์คํธ ํ ์คํธ ๋ฉ์๋๊ฐ private์ด๋ฉด ๋ฌด์กฐ๊ฑด ์ฑ๊ณต์ผ๋ก ๋์ค๋ ์กฐ์ฌํ์.. https://velog.io/@minni/TDD%EC%99%80-Swift-XCTest-%ED%99%9C%EC%9A%A9%ED%95%98%EA%B8%B0 TDD : Test Driven Development ๊ธฐ์กด์ ์ค๊ณ -> ๊ฐ๋ฐ -> ํ ์คํธ ๊ฐ ์๋, ์ค๊ณ -> ํ ์คํธ -> ๊ฐ๋ฐ ์ ์์๋ก ์์ ์ค๊ณ ๋ฌธ์ ๋ก ์ธํ ์ค๋ฅ๋ฅผ ๋น ๋ฅด๊ฒ ์ก์๋ผ ์ ์๋ค. TDD์ ์ฅ์ ๋๋ฒ๊น ์๊ฐ์ ๋จ์ถํ ์ ์๋ค. ๊ฐ์ฒด์งํฅ์ ์ค๊ณ๊ฐ ๊ฐ๋ฅํ๋ค. ์ ์ง๋ณด์๊ฐ ๊ฐ๋ฅํ๋ค. ํ ์คํธ๋ฅผ ์๋ํํ๊ณ ํ ์คํธ ๋ฌธ์๋ก ์ผ์ ์ ์๋ค. Red, Green, Blue / Triple A (Arrange, Act, Assert) ๋งค ๊ตฌํ ๋จ๊ณ๋ง๋ค Red - Gr..
220426 [Swift] JSON API์ ๋คํธ์ํฌ ํต์ ํ๊ธฐ 1. HTTPManager (URLManager) ๋ง๋ค๊ธฐ HTTP ์์ฒญ์ ๋ณด๋ด๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ์ญํ . URLSession URL completionHandler : '์๋ฃ ์ฒ๋ฆฌ๊ธฐ' HTTPManager import Foundation import os // HTTP ์์ฒญ์ ๋ณด๋ด๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ์ญํ final class HTTPManager { static func requestGET(url: String, complete: @escaping (Data) -> ()) { // complete @escaping : ํด๋ก์ ๊ฐ ๋ฐ๋ก ์คํ๋์ง ์๊ณ , ์กฐ๊ฑด์ ํด๋น๋ ๋ ํด๋ก์ ๊ฐ ์คํ๋จ guard let validURL = URL(s..
UIScrollView https://velog.io/@nnnyeong/iOS-UIScrollView-%EB%8B%A4%EB%A3%A8%EA%B8%B0-autolayout-programatically https://velog.io/@inwoodev/Swift-ScrollView-%EC%BD%94%EB%93%9C%EB%A1%9C%ED%99%94%EB%A9%B4%EC%97%90-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 UIScrollView : A View that allows the scrolling and zooming of its contained views. UIScrollView - ContentLayout, FrameLayout UIScrollView์ ๋ ์์ Conte..
Collection View(UICollectionView) ์ปฌ๋ ์ ๋ทฐ https://developer.apple.com/library/archive/documentation/WindowsViews/Conceptual/CollectionViewPGforIOS/Introduction/Introduction.html#//apple_ref/doc/uid/TP40012334-CH1-SW1 https://www.raywenderlich.com/18895088-uicollectionview-tutorial-getting-started ์ปฌ๋ ์ ๋ทฐ๋ ์์ดํฐ์ ์ฌ์ง ์ฑ์ฒ๋ผ, ์ฌ๋ฌ ํญ๋ชฉ์ ๋์ดํ๋ ๋ ์ด์์์ด๋ค. ์ปฌ๋ ์ ๋ทฐ์ ์ค์ํ ๊ฒ์ ๋ทฐ๋ค์ ๊ฐ์ ธ์์ ๋ฐฐ์นํ๋ ๊ฒ์ผ ๋ฟ, ๊ทธ ๋ด์ฉ์ ์ค์ํ์ง ์๋ค. Understanding th..
html ๋งํฌ๋ฅผ ํตํด Xcode ํ๋ก์ ํธ ์ฑ ๋ฐฐํฌํ๊ธฐ Xcode์์ ๋ฐฐํฌํ ํ๋ก์ ํธ Archiveํ๊ธฐ Distribute App ํด๋ฆญ development์ ํ ํ ๊ธฐ๋ณธ ์ต์ ์ผ๋ก ์งํํ๋ค๊ฐ, ๋ค์ด๋ก๋ ์ฃผ์๋ฅผ ์์๋ก ๋ฃ์ด์ ์์ ๋ฐฐํฌ ํ์ผ์ ๋ง๋ ๋ค. (์ฒซ ๋ฒ์งธ Archive) export๋ ํ์ผ 5๊ฐ ์ค .ipa๋ฅผ dropbox ๋ฑ์ ์ฌ๋ ค์ ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ๋ณต์ฌํ๋ค. .ipa = ์ฑ(ํ๋ก์ ํธ) ์คํ ํ์ผ dropbox ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ ๋ dropbox์นํ์ด์ง๊ฐ ์ด๋ฆฐ๋ค๋ฉด, ๋ค์ด๋ก๋ ๋งํฌ๋ฅผ ์กฐ์ํด ๋ฐ๋ก ํ์ผ์ด ๋ค์ด๋ก๋๋๋๋ก ํ ์ ์์ต๋๋ค. (Before) https://www.dropbox.com/s/6l6hvtqttscoe36/todolink.html?dl=0 ์ด๋ฌํ ํํ์ ๋งํฌ ๋์ , (After..
220410 NotificationCenter Notification https://developer.apple.com/documentation/foundation/notification : notification center๋ฅผ ํตํด ๋ฑ๋ก๋ ๋ชจ๋ ์ต์ ๋ฒ๋ค์๊ฒ ๋ฐ์ก๋๋ ์ ๋ณด๋ฅผ ๋ด๊ธฐ ์ํ ์ปจํ ์ด๋. init(name: Notification.Name, object: Any?, userInfo: [AnyHashable : Any]?)](https://developer.apple.com/documentation/foundation/notification/2451466-init)) name : notification์ ์๋ณํ๋ ํ๊ทธ. (Notification.Name) extension์ผ๋ก Notification..