iOS
struct PlayerView: View{ @State private var isPlaying: Bool = false var body: some View{ PlayButton(isPlaying: $isPlaying) }}struct PlayButton: View{ @Binding var isPlaying: Bool var body: some View{ Button(action:{ self.isPlaying.toggle() }){ Image(systemName:isPlaying ? "pause.circle" : "play.circle") } }}사용자 인터페이스(UI) 상태 관리앱의 View 계층 구조..
fastlane 실행 중에 아래와 같은 에러가 발생하였다. Error: Unable to upload archive. Failed to get authorization for username and password 아무리 봐도 Appstore Connect 오류인 것 같은데 정확하게 설정은 해줬다고 생각했는데 앱 암호로 설정해줘야한다. 1. 아래 사이트로 접속 Apple AccountYour account you use for all Apple servicesaccount.apple.com 2. 앱 암호 생성 생성 하면 XXXX-XXXX-XXXX-XXXX 이런 식으로 생성될 것이다.(나 같은 경우는 저런 형태였다) 3. fastlane/Appfile 또는 Fastfile에 추가ENV["FASTLANE_P..
1. fastlane 설정fastlane init2. "fastlane를 무엇에 사용하고 싶으신가요?" → 3번 App Store 배포 선택3. 애플 계정 입력4. 앱의 Metadata를 fastlane으로 관리할 건가요? 기본 설정은 완료!이제 내가 배포를 하고 싶다면bundle exec fastlane ios release 완료출처 [iOS] Fastlane으로 배포 자동화하기Bundler 와 Gemfile 을 이용해서 fastlane 의존성 관리하기1-1. 터미널에서 gem install bundler 입력해서 번들러 설치만약, 에러가 발생했다면 아래 절차를 따른다.brew updatebrew install rbenv ruby-buildvelog.io Archive -> Xcode Upload..
영상Swift에서 비동기(async)로 작업하는 경우 completion을 통해서 값을 가져오고 이 값을 사용할 때마다 계속 함수를 호출해야 했음// 함수 선언func downloadJson(_ url: String, completion: @escaping ((String?) -> Void)){ let url = URL(string: url)! DispatchQueue.global().async{ let data = try! Data(contentsOf: url) let json = String(data: data, encoding: .utf8) completion(json) }}// 사용downloadJson(MY_URL){ json in le..
modalPresentationStylemodal View Controller의 표현 스타일PresentationStyle은 System이 modal ViewController를 어떻게 표현하는지 정의시스템은 이 값을 일반적인 width 사이즈 클래스에서 사용(compact width 클래스에서는 일부 스타일은 다른 스타일의 동작을 수행)adaptivePresentationStyle(for:traitCollection:) 메서드를 구현하여 동작에 영향을 미칠 수 있음PresentationStyle은 modal ViewController의 콘텐츠 크기에도 영향을 미침 예를 들어 UIModalPresentationStyle.pageSheet은 시스템이 제공하는 명시적 크기를 사용하고, 이와 대조적으로 UIM..
GeometryReaderA container view that defines its content as a function of its own size and coordinate space.→ content의 고유한 Size와 좌표 공간의 함수로 정의하는 Container View→ 자식 뷰에 부모 뷰와 기기에 대한 크기 및 좌표계 정보를 전달하는 기능을 수행함GeometryReader{ _ in Circle().fill(Color.purple) .frame(width: 200, height: 200) .overlay(Text("Center").font(.title))}.background(Color.gray) GeometryProxy@available(iOS 13.0, ..