전체 글 229

[Swift] WWDC24 Consume noncopyable types in Swift

Consume noncopyable types in Swift 세션을 정리한 글입니다. Copyingstruct Player { var icon: String}func test() { let player1 = Player(icon: "🐸") //1 var player2 = player1 //2 player2.icon = "🚚" //3 assert(player1.icon == "🐸")}위와같은 코드가있을때 1단계식보면플레이어1 🐸 생성플레이어2도 1과 동일하게 생성, 플레이어1의 복사본을 만든다는 의미 (player1 = player2 = 🐸)플레이어2의 아이콘변경시 플레이어1로부터 독립적인 플레이어를 변경하는것임 (player1 = 🐸, player2 = 🚚)하지만 Player가 참..

iyOmSd/Title: Swift 2024.11.11

[Swift] WWDC24 Explore Swift Performance(2)

Putting it together주요기능 구현 살펴보기Dynamically sized typeC 구조체의 크기는 항상 고정적이지만 Swift 유형의 크기는 런타임에 결정될 수 있습니다 두 가지 경우가 있습니다 첫째, SDK의 많은 유형은 미래의 OS 업데이트에서 저장된 속성이 추가되거나 변경될 수 있으며 Foundation의 URL 같은 유형도 여기에 포함되죠 따라서 이러한 유형의 레이아웃은 컴파일 타임에 알려지지 않는 것으로 취급해야 합니다 두 번째로 제네릭 유형의 유형 매개변수는 어떤 가능한 표현의 어떤 유형으로든 대체될 수 있어야 하므로 마찬가지로 레이아웃을 모르는 것으로 취급해야 합니다 두 번째 규칙에는 예외가 있는데 유형 매개변수가 특정 클래스로 제한되면 클래스 유형의 표현을 가져야 한다는 것..

iyOmSd/Title: Swift 2024.11.10

[Swift] WWDC24 Explore Swift Performance(1)

WWDC24 Explore Swift Performance를 보고 정리한 글입니다! 🙇‍♂️ C언어에서는 깔끔한 기계어 코드를 얻을 수 있지만 Swift는 그렇게 간단하지 않습니다.코드를 잘 못 작성하면 메모리가 완전 난잡해집니다.대신 Swift는 C에서 제공하지 않는 다양한 추상화 기능과 클로저, 제네릭 등을 지원합니다 이러한 추상화 기능은 간단하게 구현되어 있지 않으며 명시적으로 malloc을 호출하듯이 명확한 비용을 알 수 없습니다What is Performance?만약 어떤 도구가 있어서 프로그램을 그 도구에 집어넣으면 하나의 숫자가 출력되고 그 숫자로 프로그램의 성능을 모두 알 수 있다면 얼마나 좋을까요Safari의 성능 점수가 9.2라고 출력되는것 같이 표시하고싶지만 그렇게 할 수는 없습니다..

iyOmSd/Title: Swift 2024.11.09

[SwiftUI] WWDC24 SwiftUI essentials 정리

wwdc24 SwiftUI essentials 정리로 노트하기 편한 음슴체를 사용했습니다! 🙇‍♂️ SwiftUI의 핵심기능Fundamentals of views뷰를 특별하게 만드는 3가지 특징Declarative 선언적선언적 프로그래밍과 명령형 프로그래밍은 상호배타적이지 않음선언적 코드를 사용하면 예상되는 결과에 집중가능명령형은 상태변경하거나 기존 선언구성요소가 없을때 유용함SwiftUI는 두가지모두를 수용함뷰는 단지 선언적 설명이므로 뷰하나를 여러개 뷰로 나누어도 앱성능이 저하되지않음Compositional 구성적재배열하는건 쉽다ViewBuilder클로저를 사용하여 컨테이너의 하위항목을 선언함 스유 모든 컨테이너뷰에서 사용되는 패턴이는 뷰모디파이어에서 중요한역할 함뷰에 수정사항을 적용하고 뷰의 모든..

[후기] if(kakaoAI)2024 후기

온라인으로만하다가 오랜만에 컨퍼런스들이 오프라인 행사를 많이 열었던 해인거같아요특히 이번 카카오 컨퍼런스에 iOS와 관련된 기술을 다룬 세션이 많았고 그 외에도 다양한 기술 세션들이 많더라구요큰 기대없이 신청하고 잊고 있을때쯤 운좋게 당첨문자가 와서 다녀온 후기를 적어보려해요 판교에 있는 카카오 아지트가 아니라새로지은 카카오 AI캠퍼스에서 진행됬구요 약간 외진곳에 있어서 보통 대중교통으로 가긴 힘들었는데버스랑 식사를 지원해줘서 좋았던거같아요 양재,판교로 나뉘어서 버스를 지원해주더라구요 딱 도착했을 때  새건물 + 날씨 영향으로 엄청 좋아보이더라구요 굿즈는톡서랍 이용권이랑 백팩이랑 스티커 받았어요 건물 곳곳에 마시거나 먹을 간식들도 많이 준비해둬서 좋았어요 내부도 엄청크고 세션하는 곳들도 발표하기 좋게 생..

[Swift] Xcode16 빌드시 CUICatalog initWithName:fromBundle:error: 런타임 에러

안녕하세요오늘은 간단한 에러처럼 보이지만 디버깅하기 힘든 에러를 접한 경험을 공유하려합니다!Xcode16이 나와서 swift6을 대응하려다가 만난에러입니다! Xcode15를 사용했을때 문제없이 빌드됬고 시뮬레이터, 실기기 모두 정상동작하는 상태에서 Xcode16을 다운받고 빌드했을 때 iOS16, iOS18인 기기에서는 문제없이 잘 동작했으나 iOS17인 경우에 런타임에서 죽는 현상을 발견했습니다. 원인도 모르겠고 정말 막막해서 엄청 알아보던 와중 드디어 한줄기의 빛처럼 발견한 글이 있었습니다.정확한 원인과 답은 찾지못했지만 모듈이름과 뭔가 연관있다라는 추측을 내포하는 글을 발견했습니다. 제 경우도 이에 해당할지도 모른다는 희망을 갖고 모듈이름을 바꾸고 적용한뒤에 실행했습니다.저는 "UI" 모듈을 사..

iyOmSd/Title: Swift 2024.11.07

[후기] 가성비 전자드럼 삼익 SED-10 (내돈내산)

안녕하세요! 3개월? 정도 사용한 전자드럼 후기를 적어볼까해요 이렇게 생겼구요 실물도 이미지와 동일해요! 저는 드럼을 취미로 하고있었고 밴드도 겸으로 하고있어요드럼학원을 다니면 연습실이 있어서 언제든 연습가능해서 드럼살 생각이없었는데다니다보니 학원비가 적지않게 들고 계속다니면서 배우는게 생각보다 없는것 같아서 그만뒀더니연습 할 장소가 없더라구요주변 연습실 대여도 찾아봣지만 시간당 만원이넘고.. 거리가좀 있어서이럴바에 사야겟다 마음먹고 서칭을 시작했어요 전자 드럼을 고를때 기준은1. 드럼이 차지하는 공간2. 가격이 제일 큰거같아요 집에서 연습하다보니 부피가 큰 전자드럼은 좀 힘들것 같았어요 (방에 공간이없어서... 제일 중요한 요소였어요) 전자드럼을 찾아보면서 다른 전자드럼들은 가격과 무관하게 사이즈가 컸..

[Swift] Python을 이용한 Excel -> Json 맵핑 스크립트 만들기

다국어를위해 로컬라이징을 사용하거나 어떠한 단어 혹은 정책들은 액셀로 관리하는 경우가 많은데요개발자 입장에서는 이파일을 보고복사해서 형식에 맞게 다시 옮겨적어서 전처리 과정을 거쳐서 데이터로 사용해야합니다.물론 이과정에서 누락 혹은 실수가 일어나서 휴먼에러가 도중에 생기기도하죠 이러한 과정을 자동화 시켜서 알아서 파일을 뽑아줄 수 있도록 스크립트를 작성해볼거에요전 파이썬을 잘모르기때문에..기본 코드는 지피티 선생님이 도와주셨습니다! 👏 우선 파이썬을 설치해야겟죠 터미널을 실행시키고 파이썬 라이브러리 설치합니다pip3 install pandas openpyxl 실행은 아래와 같은 명령어로 이뤄집니다(경로 체크해주세요!)python3 # python3 excelToJson.py Keyword.xlsx 액..

iyOmSd/Title: Swift 2024.09.29

[Swift] Vision Framework 비슷한 이미지 찾기

안녕하세요이번에는 2개의 사진을 두고 이 사진들이 서로 얼마나 비슷한지 보여주는 기능을 구현해볼거에요 Vision을 검색하면VisionKit도 보일텐데요 처음에 보면 헷갈릴만한 프레임워크들이네요 Vision컴퓨터 비전 알고리즘을 적용하여 입력 이미지와 동영상에 다양한 작업을 수행합니다. VisionKit디바이스의 카메라를 사용하여 환경 또는 앱이 표시하는 이미지에서 정보를 식별하고 추출합니다. 라고 정의되있네요이미지를 분석해주는게 Vision, 카메라를 써서 스캐너같이 사용하는것이 VisionKit 정도로 간단히 이해하고 넘어가봅시다!  저희가 사용할건 Vision 프레임워크입니다!Core ML을 사용하여 이미지를 분석해주고 그 특성들을 비교해서 얼마나 비슷한지 측정 할 수 있어요  다양한 요청들이 있는..

iyOmSd/Title: Swift 2024.08.27

[Swift] EventKit Reminder 미리알림 데이터 이용하기

안녕하세요~오늘은 미리알림 데이터를 이용한 개발을 하려고합니다! 미리알림은 아이폰 기본앱으로 투두리스트같이 할일을 미리 기록해서 리마인드받을 수 있는 앱이에요 EventKit을 이용하면 사용자의 캘린더 혹은 미리알림 데이터에 접근할 수 있어요 제일 중요한 타입으로EKEventStore가 있어요캘린더나 미리알림 데이터에 접근할때 이객체를 통해서 이뤄집니다 사용자의 데이터에 접근하기때문에 권한을 요쳥해야합니다plist에 NSRemindersFullAccessUsageDescription 값을 추가해주세요!그 다음에 아래와같이 권한요청을 할 수 있습니다.let store = EKEventStore()let allPredicate = store.predicateForReminders(in: nil)store.r..

iyOmSd/Title: Swift 2024.07.26