LocalizedStringKey Swift UI에서 Localization을 위한, 새로운 struct가 나왔다. !!!! 바로 LocalizedStringKey!!! let goal: LocalizedStringKey = "goal" let text = Text(goal) 짜잔. 이게 무슨 의미가 있냐면..... 기존에 LocalizedString을 쓰려면 이렇게 했어야 했다. UILabel(string: NSLocalizedString(key: "abcd")) 저렇게 NSLocalizedString( 을 모든 뷰에서 쓰는게 싫어서, extension String으로 따로 처리하곤 했었다. 이제는 굳이 저렇게 안해줘도 된다는 점이 큰 의의이다. 요약: String을 받던 UILabel과 달리, Tex..
1. 내가 사이즈를 알아서, 직접 넣어주는 경우 ContentView_Previews 구조체에서, .previewLayout(.fixed(width: 568, height: 320)) 를 추가해준다. 568 * 320은 iphone SE 사이즈이다. 2. 폰 종류로 하는 방법 ContentView() .previewDevice("iPhone 8") 스트링으로 넣어줘야 한다는 점이 단점이다 :( + 다크모드 설정하기 ContentView() .environment(\.colorScheme, .dark)
Option + Command + P
https://learn.adafruit.com/create-a-swift-playgroundbook-with-bluetooth-le/what-is-a-playground-book https://ianmcdowell.net/blog/playground-books/ 도움이 되었던 사이트들 :D wwdc scholarship 지원자들이 쓴 글이 정말로 도움이 많이 됐다. 사실 wwdc scholarship에 지원할게 아니면 굳이 playground book을 만들일도 없긴 할거다....차라리 ipad os 앱을 만들라고 해 ㅠ Developing Swift Playground Books I decided to apply for the WWDC 17 student scholarship and create my..
https://apps.apple.com/kr/app/popclip/id445189367?mt=12 PopClip PopClip은 Mac에서 마우스로 텍스트를 선택할 때 나타납니다. 복사, 붙여넣기, Evernote로 보내기와 같은 컨텍스트 기반 작업을 간편히 이용해 보십시오. URL, 이메일 주소 및 파일 경로가 포함된 텍스트를 선택하실 경우 PopClip은 이들을 열 수 있습니다. 철자가 틀린 단어를 선택하시면 PopClip은 교정된 내용을 제공합니다. 텍스트를 선택해 웹에서 검색하시거나 단어를 선택해 사전에서 의미를 찾으실 수도 있습니다. 스타일 붙여넣기 및 apps.apple.com 만이천원 너무 비싸 😢
DRM = Digital Right Management
https://www.diawi.com/ Upload your App - Diawi - Development and In-house Apps Wireless Installation Development & In-house Apps Wireless Installation Diawi is a tool for developers to deploy Development and In-house applications directly to the devices. 1. Upload the iOS or Android application. 2. Send the link to your testers, clients, friends or even u www.diawi.com Diawi is a tool for develo..
글을 쓰다가 한번 날려서 매우 빡친 상태이다 👿 👿 자동저장은 왜 안된거지ㅠㅠㅠ 이렇게 UserDefaultHelper 스트럭트를 만들어두면, 요렇게 정의해서 바로 쓸 수 있다 반도의 get set...이젠 안녕....! nshipster은 감히 읽을 수가 없어서 일단 박제. 언젠가 떡상하면 읽어봐야지 https://nshipster.com/propertywrapper/ Swift Property Wrappers Swift property wrappers go a long way to making SwiftUI possible, but they may play an even more important role in shaping the future of the language as a whole. nsh..
아카이브 할 때 마다, validate를 눌러보면 빌드 넘버 올리는걸 깜빡했을 때가 자주 있다. 그럼 아카이브 취소하고, 버전 올리고, 처음부터 아카이브를 다시 해야한다. 매우 곤욕스러운 일이다. 특히 프로젝트가 무거워서 아카이브가 오래걸릴 수록 더욱더 짜증난다. 그래서 이번 기회에 run script 설정을 하게 되었다. Editor > Add Build Phase > Add Run Script Build Phase 를 누른다. [Run Script] 가 생긴 것을 볼 수 있다. #!/bin/bashbranch=${1:-'master'}buildNumber=$(expr $(git rev-list $branch --count) - $(git rev-list HEAD..$branch --count))ech..
1. 타겟 분리 후에는, 수정사항에 대해서 두개의 파일을 수정해줘야 하는가? -> 그건 아니다. 그럴거면 프로젝트를 두개 파는거랑 뭐가 다르겠어! 빌드 타겟은 조금만 다른 부분도 커버 가능하다. 이런식으로 Target Membership 에서 어느 타겟에서 쓸건지, 둘 다 쓸건지 등 선택 가능해진다. 킹갓... 2. plist 파일로 분리를 하는 것 같던데, 그럼 다르게 하고 싶은 부분만 plist에 넣는걸까? -> ㅇㅇ 그런듯. 나같은 경우에는 plist 파일만 타겟을 다르게 설정하고, Bundle.main.object(forInfoDictionaryKey: "ServerURL") as! String 이렇게 plist 파일에서 ServerURL을 받아오게 해 뒀다. 하지만, 굳이 plist파일을 분리하..
* swift package manager을 이용한 설치를 하려고 했으나, https://github.com/firebase/firebase-ios-sdk/issues/3136 아직 swift package manager을 firebase-ios-sdk에서 지원하지 않는 것 같다. * swiftUI로 넘어오면서, AppDelegate에 있던 window가 SceneDelegate로 넘어갔다. 신경쓰지 않고, AppDelegate의 didFinishLaunchingWithOptions에 Firebase.configure()코드를 추가해주면 된다. [firebase로 애플 로그인 하기] 1. signing & capabilities에서 Sign In with Apple을 추가해준다. 2. 새로운 클래스 Si..
도메인이 키체인의 도메인과 같으면 키체인 암호를 사용하게 해 준다! https://developer.apple.com/documentation/security/shared_web_credentials Shared Web Credentials | Apple Developer Documentation The Security.SecSharedCredentials API provides functions for storing and requesting shared password-based credentials. Users often save their username and password in their iCloud keychain when logging into websites in Safari. Late..
https://developer.apple.com/videos/play/wwdc2019/258/ Architecting Your App for Multiple Windows - WWDC 2019 - Videos - Apple Developer Dive into the details about what it means to support multitasking in iOS 13. Understand how previous best practices fit together with new... developer.apple.com [ iOS 12와 그 이전 ] AppDelegate - Process Lifecycle -- didFinishLaunchingWithOption~ -- applicationWillT..
!!! IOS 개발한지 1년이 넘어서 알아버린 내용... 미리 알았다면 더 개발을 잘했을텐데 싶은 내용이었다....!!!! stored property는 한국말로 저장 프로퍼티. computed property는 한국말로 연산 프로퍼티. (꼼꼼한 재은씨 책 기준) ======== class / struct / enum에는 지역변수를 만들 수 있다. (enum은 약간 예외). 이, class나 struct 안에 있는 변수를, property라고 부른다는 것은 이미 알고 있을 것이다. 하지만 이 property에는 두가지 종류가 있는데....바로 stored property와 computed property 인 것이다!!! 참조) stored property는 class와 struct에서만 사용 가능하다. ..
command + option + shift + V
iOS를 공부하다 보면 ARC에 대해 많이 듣게 된다. ARC는 'Auto Reference Counting' 의 약자이다. 클래스 인스턴스를 참조하는 곳이 몇군데인지, 자동으로 카운트 해주는 객체 라고 생각하면 된다. 인스턴스를 모니터링 하면서, 인스턴스가 변수 / 상수 / 함수의 인자값으로 할당되면, 카운트를 1 증가시킨다. 종료되면 1만큼 감소시킨다. 0이 되면 메모리에서 해제 해준다! Objective-C에서는 ARC가 없어서, 프로그래머들이 직접 안쓰는 인스턴스를 해제해줬다고 한다. 스위프트가 얼마나 발전한 언어인지? 새삼 느낄 수 있는 대목이다....
// runJavaScriptAlertPanelWithMessage func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) { let alertController = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet) alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: { (action) in ..
class와 struct도 subscript를 정의할 수 있다는 내용이 있어서, 이게 무슨 얘기일까 싶어서 찾아본 내용을 블로그에 간단하게 정리해보려 한다. 이렇게 array뒤에 [0]을 붙이는게, subscript인 것은 이미 알고 있을 것이다. 하지만 (놀랍게도) class와 struct에서도 []를 붙여서 값에 접근 할 수 있다고 한다. 이런식으로 써 줬을 때, subscript를 마치 함수처럼 쓸 수 있어진다. 사실 쓰는 이유는 아직 잘 모르겠다.