WooKoo Blog

물과 같이

swift 59

iOS - SceneDelegate[레나님]

iOS 13 버전 이후로 AppDlelegate에서 SceneDelegate가 분리되었죠?? 늦게나마 어떻게 변동되었는지 한번 공부해보려고해요. 너무 잘 정리해주신 블로그가 있어서 보고 공부해봐요!! velog.io/@dev-lena/iOS-AppDelegate%EC%99%80-SceneDelegate [iOS] AppDelegate와 SceneDelegate Xcode에서 프로젝트를 생성하면 자동으로 AppDelegate.swift와 SceneDelegate.swift 파일이 추가되어 있어요! 오늘은 이 두 swift 파일에 있는 AppDelegate클래스와 SceneDelegate클래스에 대해서 알아보려고해요 😄 velog.io UI Lifecycle 적인 부분을 독립적으로 분리시켰다고 볼 수 있겠네..

개발/개발 2020.10.01

[iOS] - 플로팅버튼 오픈소스 사용하기

github.com/jjochen/JJFloatingActionButton jjochen/JJFloatingActionButton Floating Action Button for iOS. Contribute to jjochen/JJFloatingActionButton development by creating an account on GitHub. github.com JJ플로팅버튼을 사용해볼려고한다. 프로젝트를 먼저 만들어주고 팟설정을해준다. 터미널로 프로젝트 폴더로 이동을 해준다. pod init 맨 위에 사이트에서 pod 파일의 내용을 어떻게 추가하면되는지 나와있다. source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_fr..

개발/개발 2020.09.29

[SwiftUI] - Button과 ImageButton

기본적인 텍스트 버튼의 경우는 아래와 같이 구성합니다. var body: some View { HStack(spacing: 20){ Button("Button"){ print("Button1") } Button(action:{print("Button2")}){ Text("Button") .padding() .background(RoundedRectangle(cornerRadius: 10).strokeBorder()) } Button(action: {print("Button3")}) { Circle() .stroke(lineWidth: 2) .frame(width: 80, height: 80) .overlay(Text("Button")) } .accentColor(.green) } } 버튼에 이미지를 넣고..

개발/개발 2020.09.24

[iOS] - PhotoKit 사용법

처음에 사진첩을 구현하려고할 때 UIImagePicker 델리게이트를 사용하면 쉽게 구현 할 수 있었다. 근데 조금 더 세세한 수정이나 컨트롤을 하려면 PhotoKit을 사용해야했다. 차이점을 찾아보니 UIImagePicker는 사용자가 직접 선택하고 기존의 설정을 사용한다고하면 PhotoKit은 개발자가 구현할 수 있도록 해놓은?? 뭐 그런 차이가 있다. 아무래도 그냥 이미지 선택이나 그런 간단한 작업을 할 땐 UIImagePicker가 좋겠지요?? 자 알아야할 개념이 너무나도 많은데 기본적으로 이것을 알고가면 좋다. 포토킷은 보이는 것과같이 iCloud와 Local에 있는 그런 것들을 가져올 수 있다. k-elon.tistory.com/19 [iOS] Photos 프레임워크 톺아보기 iOS 개발을 하..

개발/개발 2020.09.23

[iOS] - PHAsset 이미지 파일명과 파일 크기 가져오기

먼저 PHAsset이 준비되어있다는 가정하에 사용하면 될 것 같다. developer.apple.com/documentation/photokit/phassetresource/1623988-assetresources Apple Developer Documentation developer.apple.com let asset = self.assets.object(at: indexPath.row) var byte = "" let resources = PHAssetResource.assetResources(for: asset) let filename = resources.first!.originalFilename //MB로 변환 var sizeOnDisk: Int64 = 0 if let resource = res..

개발/개발 2020.09.23

[SwiftUI] - Hex Color Extention

extension Color{ init(hex: String){ let scanner = Scanner(string: hex) //문자 파서역할을 하는 클래스 _ = scanner.scanString("#") //scanString은 iOS13 부터 지원 #문자 제거 var rgb: UInt64 = 0 //문자열을 Int64 타입으로 변환해 rgb 변수에 저장. 변환 할 수 없다면 0 반환 scanner.scanHexInt64(&rgb) let r = Double((rgb >> 16) & 0xFF) / 255.0 //좌측 문자열 2개 추출 let g = Double((rgb >> 8) & 0xFF) / 255.0 // 중간 문자열 2개 추출 let b = Double((rgb >> 0) & 0xFF) /..

개발/개발 2020.09.21

[SwiftUI] - 기본 뷰 구성하기 및 ProductRow 추출

해당하는 화면을 만드는 소스이다. struct ProductRow: View { var body: some View { HStack{ //상품 이미지 Image("apple") .resizable() .scaledToFill() .frame(width: 140) .clipped() VStack(alignment: .leading){ //상품명 Text("백설공주 사과") .font(.headline) .fontWeight(.medium) .padding(.bottom, 6) //상품 설명 Text("달콤한 맛이 좋은 과일이 여왕 사과. 독은 없고 꿀만 가득한 가득해요!") .font(.footnote) .foregroundColor(.secondary) Spacer() HStack(spacing: 0){..

개발/개발 2020.09.20

URL과 URI의 차이 [상어님]

오늘도 상어님 블로그를 탐방하려고해요. 글을 재미있게 쓰시기도하고 기초적인 내용들이 많아서 좋은 것 같아요 shark-sea.kr/entry/iOS-URI%EC%99%80-URL-%EC%B0%A8%EC%9D%B4-URI-VS-URL iOS :: URI와 URL 차이 (URI VS URL) 안녕하세요! 상어입니다. 날씨가 너무 더워져서 녹아버릴 것 같아욯ㅎㅎㅎ ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ 그래두 겨울시러ㅠㅠ 오늘 다룰 내용은 URI와 URL의 차이입니다. URL은 많이 들어봤는데 URI�� shark-sea.kr URL -> Uniform Resource Locator 인터넷 상의 자원 위치 URI -> Uniform Resource Identifier 인터넷에 있는 유일한 주소 https://www.abcd...

개발/개발 2020.09.20

iOS - Tab Bar [국산 앨런님]

최근 탭바를 사용하며 프로젝트를 하는 경험이 있어서 이 게시글이 눈에 들어왔다. k-elon.tistory.com/29 [iOS] Tab Bar 톺아보기 요즘 앱들을 보면 iOS 뿐만 아니라 AOS 까지 거의 다 하단에 탭이 있는 Tabbar로 페이지를 구분하는 형태가 많습니다. 폰이 길어져서 그런다~ 사용자 UX가 좋다 등 결국 사용자가 편하다 라는 이유로 k-elon.tistory.com 제가 탭바를 사용 했을 때는 동일한 뷰에 다른 데이터를 tag를 이용해 구분해내는 방식으로 사용했었는데 탭바아이템별로 새로운 뷰로 이동시켜서 사용하는 것을 설명해주시고 계시는군요 릴레이션 세규로 새로운 뷰 컨트롤러에 연결해주고 사용하면 끝!

개발/개발 2020.09.18

iOS - TabBar 동일 컨트롤러 사용하기

앱 델리게이트에서 다음과 같이 태그를 설정해준다. var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. if let tapBarController = window?.rootViewController as? UITabBarController{ let storyboard = UIStoryboard(name: "Main", bundle: .main) let vc =..

개발/개발 2020.09.18