전체 카테고리 204

[후기] if(kakaoAI)2024 후기

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

[후기] 가성비 전자드럼 삼익 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

[SwiftUI] Highlight Text만들기(일치하는 텍스트 강조 뷰)

이런 뷰를 만들어볼거에요검색하는 기능이라던가텍스트를 강조를 하고싶은 뷰에서 많이 사용하죠! 2가지 방법으로 만들어보려고해요AttributedString과 Text의 조합으로 만들어 볼겁니다 어렵지않기때문에 코드로 같이 봐볼게요!  방법1. Text의 조합으로 구현하기핵심코드부터 먼저 봐볼게요private var highlightingText: Text { guard !highlightString.isEmpty, let matchIndex = text.range(of: highlightString) else { return Text(text) .font(font) .foregroundColor(textColor) } ..

[SwiftUI] 테두리 있는 Text 그리기(Outline Text, Stroke Text)

결과물 이미지부터 볼게요SwiftUI로 이런 테두리가 있는 Text를 만들어볼거에요! iOS 17.0기준으로 아직 SwiftUI 모디파이어라던가 뷰 타입에서 Outline에 색을 칠할 수 있는 방법은 따로없어서커스텀으로 만들어줬어요 메커니즘은 텍스트 2개를 중첩을해서 뒷텍스트는 테두리처럼, 앞에꺼는 폰트색처럼 사용하려고해요만약 SwiftUI의 Text를 2개를 중첩한다면 좀더 복잡하고 계산할게 많아져요또한SwiftUI에서 사용가능한  AttributedString는 테두리가 먹히질 않아서 실패했어요 따라서UIKit에 있는 UILabel을 사용할거에요NSAttributedString을 이용해서 테두리를 적용시켜줄건데이때 속성으로 strokeColor와 foregroundColor 둘다 적용할 수 가 없어요..

카테고리 없음 2024.05.25

[SwiftUI] NavigationStack 화면전환 방법 고민정리 (feat. Router 구현)

안녕하세요~iOS16+부터 사용할 수 있는 NavigationStack을 이용한 라우터 로직을 만들었는데요그 과정에서 생각한 방법과 겪은 고민을 정리해보려합니다! 네비게이션 스택이뭐야? 하시는분들은https://nsios.tistory.com/199 [SwiftUI] NavigationStack안녕하세요! SwiftUI에서 항상 느꼇던 불편한점중 하나가 네비게이션이였는데요 이를 해결해주는게 나온지 좀 됐지만 이제 해보려합니다! (진작에 나왔을 녀석이여야 했는데...) iOS16 타겟을 쓸일nsios.tistory.com쓰윽 훑고오셔도 좋을것같습니다!우선 제일 간단한 방법부터 시작해보겠습니다~! 아! 그전에이 모든 라우팅 로직들은 모듈화를 했다는 가정하에 이뤄졌습니다.예제에서는 아주 간단한 구조로 사용했어..

[SwiftUI] ChipView(iOS16+, iOS16-) tag view 구현하기

2023.09.30 - [iyOmSd/Title: Swift] - [Swift] Multi Line Tag View 그리기 [Swift] Multi Line Tag View 그리기SwiftUI만 하다가 UIKit을 하게될 일이 생겼는데 요구사항중하나가 뷰를 크기에 맞게 여러줄로 표현해주는 뷰에요 테그를 표현하는 뷰같은 곳에 많이 쓰이는 UI로 알고있어요 결과물 부터 보시죠!nsios.tistory.comUIKit을 사용하는경우는 여기서 확인가능합니다!!저 글을 쓸땐 이 레이아웃을 chip이라고 부르는지 몰랐어요 ㅎ 간단하게 ChipView란?균등한 너비를 가지는게아니라 컨텐츠의 크기에 fit하게 정렬되고 그 사이즈를 넘어간다면 아래로 이동되는 그러한 뷰입니다! 아래처럼요 이런 뷰가 ChipView입니다~..

[Swift] iMessage 필터링 ILMessageFilterExtension (스팸 차단)

메시지 필터링을 개발할 기회가 생겨서 학습한 것을 기록하려고해요 먼저 프로젝트를 생성하고 file > new > target에서 Message Filter Extension을 클릭하면 이렇게 파일이 생성됩니다! 기본적인 템플릿코드는 작성돼있고 설명도 같이 써져있어요 각 함수의 역할을 알아봅시다! func handle(_ capabilitiesQueryRequest: ILMessageFilterCapabilitiesQueryRequest, context: ILMessageFilterExtensionContext, completion: @escaping (ILMessageFilterCapabilitiesQueryResponse) -> Void) { let response = ILMessageFilterCap..

iyOmSd/Title: Swift 2024.02.27