분류 전체보기
-
Xcode 13, Realm Swift Error: abort trap: 6ios 2022. 3. 23. 10:17
개발 중인 Mac의 OS 업데이트와 Xcode 버전업을 함께 진행했는데, 라이브러리 Realm Swift가 컴파일 에러가 났다. 버전 문제일 것 같아 Realm Swift 깃허브의 releases 링크로 이동해 확인했다. 사용 중이던 Realm 버전은 10.22.0 이였다. Realm Swift v10.22.0 의 Xcode 호환은 13.2.1까지인데, 13.3 버전이라 나는 에러였다. Xcode 13.3 beta3 까지 지원하는 v10.24.0 으로 팟 버전업을 해주며 해결..
-
-
Stack View 활용 expandable, collapsable 테이블뷰 구현ios 2022. 1. 13. 19:01
테이블뷰에 expandable, collapsable 기능을 추가해 사용할 일이 생겼다. 라이브러리도 있고 방법도 다양하게 많아 보였는데, 텍스트로 이뤄진 추가 정보 정도만 표시할 것이라 간단히 스택뷰로 구현했다. 간단하게 tableViewCell를 컨테이너뷰 두개를 스택뷰에 넣어 구성했고 셀 클릭 시 컨텐츠 컨테이너 뷰의 isHidden 값을 변경하며 펼치기 접기 기능을 구현했다. 링크가 있는 행을 클릭 시, 웹뷰컨트롤러를 띄우기 위해 클로져를 주입했는데 썩 방식이 좋아 보이진 않아 추후 수정이 필요하겠다.
-
CollectionView 활용, 선택 이미지 추가 및 제거ios 2022. 1. 13. 18:50
문의하기 기능을 구현하던 중, 이미지 첨부 기능을 구현해야 했다. 1. 첨부를 위해 이미지들을 선택하고, ( BSImagePicker 활용 ) 2. 선택한 이미지들은 컬렉션 뷰에 아이템으로 추가되어 표시되며 3. 각 아이템 우측 상단에 버튼을 클릭하면 제거된다. ( protocol, delegate 방식 이벤트 전달 ) 4. 문의하기 버튼 클릭 시 이미지 전달 선택 사진을 리스트에 추가하고 제거하는 기능을 다른 사람들은 어떻게 구현할까, 라이브러리가 있을까 궁금하다.
-
Reactive Programming, 반응형 프로그래밍개발 관련 2021. 8. 4. 17:13
반응형 프로그래밍은 비동기, 함수형 프로그래밍의 이해가 먼저 필요하다. 비동기 링크 함수형 링크 반응형 프로그래밍은 비동기 처리에 관련해 나온 아이디어다. - 비동기 동시 처리 (async concurrent) 처리 시, 데이터의 처리와 Thread-safe 때문에 고안 - 데이터 처리 방식은, 데이터를 관찰하며 데이터의 변화에 따른 처리를 함 ( 변화에 따라 반응해서 반응형 ) - 선언적 프로그래밍 개념 함수형 프로그래밍과 궁합이 좋다. - 둘 다 선언적 프로그래밍이고 - thread-safe를 위해 side-effect를 제거해야 하기 때문에 - Functional Reactive Programming, 함수형 반응형 프로그래밍 개념도 있다. 쉽게 생각하면 함수형 프로그래밍에 따라 비동기 처리 코드를..
-
비동기 async 개념, 키워드 정리개발 관련 2021. 8. 4. 16:26
키워드: 쓰레드, 동기(sync), 비동기(async), 동시(concurrent), 직렬(serial), thread-safe - 쓰레드: 프로그램 안, 프로세스 내에서 실행되는 흐름의 단위. - 멀티쓰레드: 프로세스 내에서 실행될 수 있는 쓰레드가 여러 개인 것이다. 멀티 쓰레드 환경에서 1번 쓰레드가 2번 쓰레드에 작업을 넘겼을 때, 이후 1번 쓰레드는 어떻게 할 것인가에 따라 동기 비동기 개념이 나뉜다. 동기 vs 비동기 - 동기: 작업이 완료되기 까지 기다린다. 1번 쓰레드가 2번 쓰레드에 작업을 넘기고, 2번 쓰레드의 작업 완료까지 기다린다. 즉, 2번 쓰레드 작업 완료까지 1번 쓰레드는 대기한 후, 다음 일을 진행한다. - 비동기: 작업의 완료를 안 기다린다. 1번 쓰레드가 2번 쓰레드에 작..
-
iOS 앱 개발 디자인 패턴 / MVC, MVP, MVVM, RIBsios 2021. 8. 2. 13:22
iOS 앱 개발에 쓰이는 디자인 패턴 정리 MVC, MVP, MVVM, RIBs 외에도 VIP, VIPER 등이 있지만 구인공고에서 요구하는 스킬과 우대사항에선 MVC, MVP, MVVM, RIBs 이 많이 보여 넷만 정리 MVC - Model View Controller 입력에 대한 처리와, 처리에 필요한 Model과, View의 관리 등 대부분의 처리를 Controller가 담당한다. ( 작은 규모라면 괜찮겠지만, 규모가 커질 수록 Controller가 커져 MVC가 Massive ViewController 가 된다고 한다. ) 그러나, 역할에 따라 MVC로 구분한 것은 좋았지만 C에 비즈니스 로직과 화면을 그리는 UI 관련 코드가 섞여 테스트가 어렵고, C가 과도하게 커져 MVP 라는 개념이 생긴다..