전체 카테고리 225

[SwiftUI] Button CornerRadius 효과주기 border, stroke, strokeBorder

개발하면서 버튼에 라운드를 적용했고 테두리를 주려고하는데 짤림현상이 나타났어요 삽질좀 한 내용을 공유하려고해요 문제가된 코드입니다 func 문제코드() -> some View { Button { print("버튼 클릭!") } label: { Text("테두리 있는 버튼") .foregroundColor(.pink) .frame(width: 200, height: 60) } .background(.black) .border(.pink, width: 2) .cornerRadius(8) } 코드만 보면 전혀 문제가 없어보이지만 실제로 버튼을보면 모서리쪽에 어색한 부분이 있다는걸 느끼실거에요 이러한 문제가있어서 다른방법으로 border를 줘봤지만 다 실패했었어요 (얇은 테두리시 문제 현상 발생해요 두꺼우면 티..

[Swift] iCloud 연동 CloudKit 사용하기(2/2) - 데이터 연결

2022.02.15 - [iyOmSd/Title: Swift] - [Swift] iCloud 연동 CloudKit 사용하기(1/2) - 추가 및 설정 앞 게시물에서 정의한 아이클라우드를 Xcode내에서 사용할 코드를 작성할거에요 저번에 Book 이라는 Record타입을 만들었죠 Xcode에서 그 타입을 불러오고 데이터를 넣어줄 수 있도록 코딩할거에요 CloudKit을 import해주고 기본적으로 알아야할 타입들은 CKRecord CKContainer CKQuery CKQueryOperation 이렇게 있어요 시뮬레이터로 실행할때 테스트하려면 우선 애플계정을 로그인해줘야해요 시뮬레이터 -> 설정 -> 프로필쪽에 계정로그인을 해줘야 아이클라우드 테스트를 해볼 수 있어요 안하면 권한문제로 테스트를 해볼 수가 ..

iyOmSd/Title: Swift 2022.02.16

[Swift] iCloud 연동 CloudKit 사용하기(1/2) - 추가 및 설정

(1애플 제품을 써본 사람이라면 iCloud의 강력함을 알고 있으실텐데요! 그 iCloud연동을 개발해보려고해요 CloudKit 프레임워크는 앱과 iCloud 컨테이너간에 데이터를 이동 할 수 있는 인터페이스를 제공합니다 CloudKit을 사용하여 앱의 기존 데이터를 클라우드에 저장하면 사용자가 여러장치에서 액세스 할 수 있습니다. iCloud 컨테이너라는 특수한 파일 시스템 위치에 데이터를 저장해요 우선 처음으로 프로젝트 >> signing & Capabilities >> iCloud를 아래와 같이 추가해주세요 옵션이 뭐가 되게 많네요 옵션들에 대해서 하나씩 느낌을 보자면 key value NSUserDefaults처럼 사용한다고해요 사용자당 maximum 1MB사이즈의 공간을 사용가능하다고하네요 지정..

iyOmSd/Title: Swift 2022.02.15

[Swift] Realm 데이터 공유 (Widget과 Main앱 데이터 공유) AppGroup

위젯앱을 개발하면서 Realm을 사용하여 데이터를 꺼내오려고 하는데 동작이 잘 되지않더라구요! 그래서 좀 삽질을 한 내용을 기록해볼까해요 현재 메인앱에서 데이터를 저장하고 불러오는게 가능해요 메인앱에서 사용하는 데이터를 위젯으로 불러와서 보여주려고 하는 방법입니다! 분명 Realm연결도 잘되고 잘 불러오는 것 같은데 메인앱에는 데이터가 있는데 위젯에는 자꾸 없다고 뜨더라구요 . . . 이 문제의 원인은 Realm의 파일 위치가 위젯과 메인앱은 달라요 당연히 메인에 있는 데이터를 불러올 수 없었다는...ㅠ // 위젯 🟣realm위치: file:///var/mobile/Containers/Data/PluginKitPlugin/5D8DF5A8-5857-4FBA-8341-80147A2781A7/Documents..

iyOmSd/Title: Swift 2022.02.11

[SwiftUI] Localization 다국어 적용하기

앱을 개발하면서 영어사용 국가에선 영어로 보여주고 대한민국에선 한글로 보여주도록 해주는 다국어 기능을 적용을 해보려고해요 Strings File을 하나 만들어요 이 때 이름은 Localizable.strings 으로 꼭 설정 해주세요 이 파일이름을 인식해서 로컬라이제이션을 적용시켜요 방금만든 파일에서 오른쪽 인스팩터창에서(커맨드 + 옵션 + 0) 로컬라이제이션을 눌러주고 프로젝트파일을 눌러서 이 밑에있는 로컬라이제이션에 +를 눌러주세요 Korean를 찾고 클릭! 이 로컬라이제이션파일을 다국어 처리할거기 때문에 클릭 설정도 됬고 파일도 생성되서 영어랑 한글이 지원되도록 적용됬어요 이제 설정은 끝났고 어떻게 사용하는지 해볼께요 우선 사용은 key = value; 형식으로 사용해요 해당 키에 맞는 스트링 값을..

[Swift] Xcode13 info.plist 빈화면 설정방법

오..랜.....만에 프로젝트를 생성할 일이 생겼어요 요즘 생성할 일이 많지가 않았네요 생성을 했더니 plist부분이 뭔가 이상했어요 읭? 제가알던 info가 아니였던... 찾아보니깐 엑스코드가 업데이트되면서 바뀐부분인가봐용?? PROJECT >> TARGETS >> Info탭에 가보면 익숙한 info.plist항목들이 있어요 여기서 기본적인 내용들을 수정해서 만들어 주는것 같아요 그렇다면 프로젝트에 있는 info는...?? TARGETS을 가리지 않고 전체적으로 포함되는 항목들이겠죠 1개의 타겟인경우엔 같은의미가 있을 것같은데 아니라면 설정이 달라질것같네용 프로젝트 내에있는 파일에 일반적으로 추가하듯이 추가하면 잘 적용되서 실행되구요! 저렇게 사용해도 상관없지만! 이 글에서는 이 plist정보를 하나로..

iyOmSd/Title: Swift 2021.12.20

[SwiftUI] 네비게이션 바 숨기기

잘 작동하고 있던 기능이 SwiftUI가 업데이트되면서 어떤 부분이 변경되서 그런가 적용되지 않게되는 이슈가 생겨서 수정하면서 글을 적어보려고해요 위와같은 그림에 네비게이션바를 보면 어색한게 보이죠?? 네 당연히 의도한게아니에요... 저부분도 딤처리된 뷰로 가려야하는데 저부분만 더 앞에 있게 되더라구여 그래서 원래 네비게이션바를 숨기는 로직을 적용했었는데 작동하지않아서 위 그림처럼 저런현상이 서비스에 노출되고 있었어요 ㅠ 네비게이션바을 숨기는 방법으로는 1.네비게이션바를 히든처리한다 2.뷰로 네비게이션을 덮는다 이렇게 있겠죠 2번인 경우엔 뷰로 덮어지지않았어요 위처럼 네비게이션바가 뷰보다 항상 위에 있게되더라구요 뷰로 네비게이션을 덮기보단 화면으로 덮어야해요 fullScreenCover를 이용해서 아예덮..

[Swift] WWDC21 Bring accessibility to charts in your app

최근에 접근성에 대한 글을 보곤 해본적이 없어서 호기심에 하나씩 세션을 들어보려고해요! 이번 세션에서 다룰 목차입니다 차트에 접근 가능할 수 있게함으로서 얻을 수 있는 이점 시각적 측면에 대한 포괄적 결정을 위한 몇가지 원칙 VoiceOver을 통해 차트를 인식 및 탐색하는 방법 오디오 그래프 기능 --- 차트는 세부사항에 깊이 접근할 필요 없이 데이터가 무엇을 말하는지 빠르게 이해할 수 있기 때문에 유용합니다 그러나 차트는 시각장애인이나 시력이 낮은 사람들이 본질적으로 접근할 수 있는것은 아닙니다. 보이지 않으면 시각차트는 가치가 없습니다. 오디오그래프를 지원해서 차트의 상세를 볼 수 있도록 음성 지원이 나타나고 차트그래프를 신호음으로 높낮이를 보여주고 차트의 전체뿐 만아니라 부분만 집중해서 소리가 나..

iyOmSd/Title: Swift 2021.12.08

[Swift] WWDC21 Meet async/await in Swift

String을 통해서 이미지를 가져오기 까지의 과정이다 이 과정들은 이전 작업에 따라 달라질 수 있다 즉, 순서대로 실행되야 합니다 URLRequest를 호출하는 부분과 Data로 이미지를 구성하는 것같이 빠르게 값이 반환되는 함수들은 함수가 실행되는 스레드에서 실행하여 동기호출이 되도록 하는 것이 좋습니다. 하지만 일부는 시간이 걸립니다 데이터를 다운로드하는 데 시간이걸리고 썸네일을 만들기위해 비싼 작업을 할 수 있는 장치가 필요하다 이러한 이유로 SDK는 이러한 작업을 완료하기위해 비동기 기능을 제공합니다 이러한 호출은 비동기식이어야 합니다 async/await 를 사용하기전 우리는 completion handler를 사용했다 fetchThumbnail이 호출되면 thumbnailURLRequest를..

iyOmSd/Title: Swift 2021.11.17