일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 음식리뷰앱
- 클러스터링
- clustering
- Swift
- 섯다족보
- 먹튜브
- 먹방지도
- Oracle
- 백준
- IOS
- xcframework
- 먹튜브로드
- vm
- 네이버지도
- cluster
- MeTal
- Firebase
- SwiftUI
- NaverMap
- JJGram
- 프로퍼티 종류
- property
- 음식지도
- StaticLib
- 1002
- MVVM
- acmicpc
- 프로퍼티
- quadtree
- 섯다족보앱
- Today
- Total
목록분류 전체보기 (28)
아반떼오우너의 개발블로그 ㅋㅋ

나는 지금까지 푸시서비스를 직접 만들어본적이 없었다. 회사에서 이미 구현되어있는 푸시서비스를 유지/보수 하는 일만 해봤을뿐 처음부터 만들어본적이 없었다. 그래서 이번에는 푸시서비스를 직접 내 개인앱에 올려보려고 한다. 이미 유지/보수를 통해 어떤 절차를 통해 동작되는지는 알지만 자세히는 모르기때문에 이번기회에 정리해보고자 한다. 먼저 애플 디벨로퍼 사이트에 접속 및 인증서창으로 이동해준다. 위와 같은 화면에서 Create a Key를 눌러 푸시 키를 생성해주도록 한다. Key Name에 적당한 이름을 지어주고, Apple Push Notifications Service(APNs)를 Enable 시켜주고 우상단의 Continue를 눌러준다. 다음으로 넘어가면 아래 화면에서 Key ID가 적혀있는데 이걸 잘..

최근 작업을 하다 디자이너에게 텍스트를 Bold처리 해달라는 가이드를 받아서 가이드에 맞게 작업하여 넘겨준 일이 있었다. 그런데 아무리 봐도 Bold가 아닌것같다고 다시 검토를 해달라했고 나는 코드를 아무리 봐도 분명 Bold를 적용했다고 생각했다. 단순히 가이드상 폰트와 시스템 폰트 차이에서 오는 굵기 차이라고 생각을 했기에 속는셈치고 폰트값을 열어보았는데 결과는 반전이였다. let font = UIFont.boldSystemFont(ofSize: 15) print("current FontName is [\(font.fontName)]") 이렇게 코드를 작성해서 찍어보니 아래와 같이 찍히더라 그렇다 흔히 boldSystemFont를 통해 Bold를 적용하고있던 나는 여태 SemiBold를 적용중이였던것..

최근 작업을 하다가 갑자기 궁금한 내용이 생겼다. 간단히 요약하자면 Relay를 Relay에 Binding하였는데 이때 타겟 Relay가 초기화되면 어떻게 될까? 이다. 나는 일반적으로 bind을 할때 아래와같은 형식으로 작성한다. var targetSubject = PublishSubject() var parentSubject = PublishSubject() targetSubject.subscribe(onNext: { item in print("receive \(item) in targetSubject") }).disposed(by: disposeBag) parentSubject.bind(to: targetSubject).disposed(by: disposeBag) parentSubject.onNex..

앱을 개발하다보면 시스템 폰트가 아닌 폰트를 사용하는 경우가 있습니다. Apple에서 제공해주는 Preinstalled Font가 될수도 있고 서드파티에서 제공하는 폰트가 될수도 있습니다. 일반적으로 시스템 폰트를 사용하는경우는 UILabel등에서 우리가 원하는대로 텍스트가 위치하지만 이외의 경우에는 폰트마다 Baseline이 달라지기때문에 시스템폰트와는 다르게 텍스트가 위치하는 경우가 있습니다. 아래는 해당 예시입니다. 아래 UILabel중 좌측은 AppleSDGothicNeo-Bold이고 우측은 일반 시스템 폰트입니다. Width, Height는 모두 동일하구요. 묘하게 좌측 텍스트가 위쪽에 붙어있는 것을 알수있는데 이는 해당 폰트의 Baseline이 시스템폰트보다 약간 위쪽에 잡혀있기 때문입니다. ..

https://avane.tistory.com/7 의 포스팅에 이어서 작성됩니다. 이번에는 Metal을 이용해서 직접 이미지를 한번 그려보도록 하겠습니다. 우선 Texture(텍스쳐)라는 개념을 먼저 알아야 합니다. 1. 텍스쳐? 텍스쳐란 보통 그래픽스에서 사용하는 일종의 오브젝트 입니다. Shader의 입력데이터로 사용되거나 화면에 그려지는 타겟으로 사용됩니다. 좀 단순화 시켜서 화면에 그려질 이미지데이터, shader 처리를 거칠 이미지 데이터 정도로 생각하고 넘어갑니다. 그렇다면 이전 포스팅에서 우리는 FragmentShader에서 컬러 상수값을 반환하여 모든 MetalLayer에 동일한 색으로 칠해지는것을 보았습니다. 이번에는 FragmentShader에서 위의 텍스쳐를 이용하여 실제 이미지를 출..
최근 K리그의 모든일정이 마무리 되었습니다. 저는 축구를 꽤나 좋아했던 사람으로서 고등학생때까지만 해도 잠을 줄여가면서 밤~새벽에 하는 모든 축구경기를 챙겨봤던 기억이 있습니다. 물론 대학생이되고 사회생활을 하다보니 점점 축구는 점점 뒷전이 됬지만요 ㅎㅎ 울산현대와 전북현대의 연속 3시즌간 마지막 경기까지 치열했던 순위경쟁은 과연 내년에도 이어질까 싶고 제가 중고등학생때 응원했던 FC서울은 어쩌다 저렇게 됬나싶기도하고 나름대로 재밌는 한시즌이 아니였나 싶습니다. 어린나이에 이렇게 축구에 이렇게 빠지게된것은 2002년 월드컵의 4강신화의 여파였습니다. 그 당시에 전국에서 빨간티를입고 피버노바라는 축구공을 차면서 포르투갈전 박지성의 가슴트래핑을 따라하는등 정말 전국민이 미쳐있던 순간이 아니였을까 싶습니다. ..

지난 포스팅에 이어서 씁니다. 이번 포스팅에서는 렌더링을 하기위해 Shader작성 및 GPU에 렌더작업을 요청하여 그림이 그려지는것까지 해보겠습니다. 저번 포스팅에선 Metal 렌더링을 위해 CAMetalLayer를 부모뷰에 올리고 2차원 평면의 VertexBuffer들까지 정의하였습니다. 이제 남은 절차를 정리하면 아래와 같습니다. - VertexShader, FragmentShader 정의. - Render Pipeline 정의. - CommandQueue, RenderEncoder 정의. - RenderEncoder에 명령어 설정 및 렌더링 진행. 그럼 위 절차대로 하나씩 보도록 하겠습니다. [1] VertexShader, FragmentShader 정의 Shader(쉐이더)라는것은 간단하게 말하면..

iOS에서 OpenGL을 사용하셨던 분들이라면 다 알고계시는 OpenGL ES의 Deprecated가 있었습니다. 현재까지는 OpenGL ES를 쓸수있는것같긴한데.. Apple이 Deprecated 시킨만큼 언제 없어질지 모르기때문에 되도록이면 Apple에서 제공하는 Metal이라는 Graphics API를 쓰는게 좋아보입니다. 제가 아는선에선 유니티나 언리얼같은 게임엔진에서는 옵션에서 변경이 가능한것으로 알고있는데 Metal을 직접 구현하여 렌더링 작업을 하시는분들은 기존 OpenGL 코드를 모드 Metal로 변경해야하는 문제 아닌 문제가 생겼습니다 ㅠ 그래서 제가 작업했던 내용들을 기록 및 공유차 한번 포스팅 해봅니당. 목표! - Metal을 이용하여 내가 원하는 이미지 하나를 렌더링해보자. [1] ..