최근 신규 프로젝트에서 Flutter로 구현된 익명 채팅방 기능을 네이티브 프로젝트에 연결해서 사용해야하는 작업을 진행하게 되었다. 본인도 Flutter 모듈과 연결해보는 것이 처음이었고, Flutter 개발자도 이전에 Android 개발자로서 이번 프로젝트 때 처음으
본격적인 프로젝트 작업을 하기 전, 몇 가지 기능에 대한 확인 작업이 필요했는데 그 중 하나가 푸시 메세지의 UI의 커스텀이었다. 푸시가 왔을 때, 앱 진입만 하는 것이 아니라 해당 푸시에서 버튼을 클릭하여 원하는 작업을 진행하도록 해주는 기능이었는데 이를 구현하면서
이번에 공공기관의 API를 이용해 사이드 프로젝트를 진행하던 중, XML 형식의 데이터를 처음으로 마주하게 되었다. 보통 서버와 API 통신을 통해 받아오는 데이터는 항상 JSON 형식이었기에 처음으로 XML을 다뤄야 하는 상황에서 적잖이 당황할 수 밖에 없었다.그도그
예정된 프로젝트와 관련해서 사용자의 위치 정보 및 UI 활성 여부를 조정할 위치 범위를 다뤄야 하는 부분이 있었는데 때마침 Beacon을 활용해보는 방법이 있어 먼저 테스트 프로젝트를 진행해보았다. 무언가 최신화된 자료를 찾아보기 힘들다보니 단편적인 정보들에 기대어 작
우리는 보통 UICollectionView(or UITableView)를 작성할 때, DataSource를 구현하기 위해서 UICollectionViewDataSource를 채택하였고 직접 아이템이나 섹션의 개수를 정해주는 방식을 사용한다.이 경우에는 해당 프로토콜을
앞에서 UICollectionView의 dynamic height를 구현하기 위해서 레이아웃을 커스텀으로 작성하고 이를 위해 딜리게이트와 더미 셀을 활용하는 방법을 정리해보았다. 그러면서 본인이 비효율성을 느끼고 다른 방법으로 삽질해보려고 했다라는 말로 해당 포스팅을
이번에 작업을 하다보니 메신저 화면을 구현해야 하는 상황에 맞닥뜨리게 되었다. 다행인지 아쉬운 건지는 몰라도 일단 메신저 전체가 아닌, 대화방만 구현하면 되는 터라 부담이 좀 덜하긴 했지만 그럼에도 처음 작업해보는 지라 약간의 두려움을 안고 작업을 시작하게 되었다.아니
여러가지 캘린더를 원할 때마다 간편하게 사용할 수 있는 프레임워크를 개인 프로젝트로 진행하던 중이었다. 하나의 캘린더가 완성된 때, 문득 이를 CocoaPods로 배포해서 편하게 쓰면 되지 않을까라는 생각이 들었다. 그래서 여러 시행착오를 겪은 뒤, 이에 대한 글을 써
이전 포스트를 작성하기 위해 텍스트 파일 생성 프로젝트를 만들던 중, 파일 목록을 CollectionView에 출력하기 위해 RxDataSource를 적용하다 예상치 못하게 작업 시간이 많이 늘어지게 되었다. 사실 rx.items를 사용해서 간편하게 구현할 수도 있었지
이번에는 이전에 작성했던 Swift로 파일 다루기_개념 편에서 다루지 않았던 실제 사용법과 관련하여 본인도 다시 실습을 하면서 이와 관련된 내용을 정리해보고자 한다. 처음에는 단순히 를 사용하는 방법에 대해서만 작성해보려다 너무 성의가 없을 듯 하여, 간단하게 텍스트
오늘은 프린트와 관련하여 파일을 많이 다루는 프로젝트를 하다보니 눈길과 손길이 많이 갔던 FileManager와 UIDocumentPickerViewController에 대해 좀 더 학습하면서 정리하는 시간을 가지고자 한다.iOS에서 파일 시스템은 SandBox 구조로
앞에서 Dynamic Island를 구현해보기 위한 간략적인 개념을 학습하였다. 이번에는 5초마다 배달 주문의 상태가 변하는 형태의 간단한 구현을 진행하는 것으로, ActivityKit을 적용해보며 세부적인 사항들을 학습하여 실 구현을 해보고자 한다.작성 코드 Gith
iPhone 14pro부터 적용되는 다이내믹 아일랜드를 활용하기 위해 해당 기능을 제공하는 ActivityKit에 대한 학습을 해보고자 한다.(Xcode ver 14.1부터 가능)iPhone의 잠금 화면과 다이내믹 아일랜드에 해당 앱의 최신 데이터를 표시할 수 있게 해
프로젝트를 진행하던 중, Window와의 데이터 공유가 필요한 사항이 있었고 기존 파일과의 혼동을 피하기 위해 커스텀 파일을 구현하고 해당 파일에 데이터를 저장해야하는 작업을 진행하게 되었다. 처음에는 막연히 Document에 저장할 때, 확장자명만 바꿔주면 되지 않을까라는 생각을 했지만 이 경우에는 파일을 직접 열 때나 앱에서 해당 파일을 불러와야할 때 ...
그동안은 프로젝트를 진행하게 되면 나름 익숙하다고 생각되는 MVC 패턴을 기반으로 작업을 하였고, 이마저도 기능 개발에만 초점을 두다보니 설계나 정리를 비교적 등한시하게 되었다.이러다보니 점점 앱의 기능이 늘어날 때마다 전반적인 구조가 복잡해지고 본인이 작성했음에도 불
이번에는 이전에 생성한 Calendar에 추가 로직을 구현하여 1년 치의 수직 스크롤 달력의 형태로 수정해보고자 한다.Custom Calendar 먼저 기존에 dateFormatter의 역할을 딱 한 달치의 월과 일을 만들어주는 역할만 하도록 로직을 분리하고자 한다.
이번에는 커스텀으로 달력을 만드는 작업을 해보고자 한다. 물론 Airbnb를 비롯하여 오픈소스로 다양한 캘린더를 가져다 쓸 수 있지만, 이왕 작업하는 거 자신만의 캘린더를 만들어 보는 것도 좋지 않은가.이에 힘든 여정이지만 차근차근 나만의 캘린더를 만들고자 한다.Cus
클로저란 무엇인가? 클로저는 이름을 명시하지 않은 익명 함수를 의미하며 일급 객체로서 인자로 보내거나 반환 값을 전달 및 저장하는 역할을 할 수도 있다.참조타입의 클로저이러한 클로저는 희한하게도 참조 타입으로 분류되는데 이에 대한 이유로는 "클로저가 값을 캡처하기 때문
어떤 프로젝트는 iOS에 내장된 앨범에 접근하여 사진이나, 영상 등의 미디어를 가져와야 하는 경우가 있다. 그럴 경우 어떻게 해야 될까?바로 PhotoKit을 활용하면 된다. PhotoKit은 사진앱이 관리하는 이미지와 비디오 aseets을 포함하여 iCloud 이미지