분류 전체보기
-
[MVVM패턴 적용 후기 - 2차 RxSwift를 사용한 신규화면 개발]취준(자소서,면접)/프로젝트 정리 2024. 7. 30. 13:48
요약: 신규화면 개발시 RxSwift를 사용하여 MVVM패턴으로 구현. 기존 Objc의 MVVM한계를 벗어나고자 함. [개발 과정에서 수집한 정보들]신청 화면에서종목정보, 목표금액, 기간 등… input정보를 Model로 정의 (구조체) Subject / Observable로 등록 > ViewModel에서 감지 및 처리 didSet을 통해서 특정 값의 변화를 감지했을 때 해당 값을 바꿔줄 수도 있을 것인데, Observable은 뷰 컨트롤러 단에서 바로 bind 또는 subscribe로 연결할 수 있다는 점에서 RxCocoa와 연동이 간편한 것 같다. [MVVM의 단점]1. iOS의 MVVM패턴에는 표준이 없고 구현하는 사람마다 패턴이 조금씩 다르다.그 중에 Kickstarter에서 사용하는 Inp..
-
[MVVM패턴 적용 후기 - 1차 해외주식예약주문 리팩토링]취준(자소서,면접)/프로젝트 정리 2024. 7. 30. 11:10
요약: 이건 Objective-C의 Massive ViewController를 MVVM으로 변환한 케이스다.하지만 Objc만으로는 완벽한MVVM을 구현하기 어려움. 왜냐면 즉각 감지가 안됨. ** 현재는 KVO를 쓰지 않고 property 변수에 직접 새로 할당, 가져오는 구조 (직접 접근/간접접근 중 직접접근 방식임)completion 블록으로 값이 모두 할당이 되었다는 시그널을 받으면, view에 셋팅하고 있음-> 이러한 과정에 있어서 상태값을 결국 동기화해주는 문제에 직면하게 된다. Action이 일어날 때마다 이를 일일히 업데이트해주기 보다는 묶어서 서로 업데이트하도록 해두면 편하지 않을까? 이러한 점에서 Objective C 의 KVO가 등장. 1. ObjectiveC의 데이터 바인딩- O..
-
코드 리팩토링 1) Firebase 비동기 코드 > Combine카테고리 없음 2023. 7. 30. 23:09
https://blog.canopas.com/use-firestore-and-firebase-realtime-database-with-combine-f7f865c0befc Use Firestore and Firebase Realtime Database with Combine Observe items from the Firebase databases in real-time using combine framework. blog.canopas.com
-
반응형 프로그래밍 이란? RXSwift, Comine카테고리 없음 2023. 7. 30. 23:02
https://babbab2.tistory.com/182 RxSwift) RxSwift가 도대체 뭔데요(Reactive Programming) 안녕하세요!! 소들입니다 :> 저는 Let's Swift 티케팅에 낙제하고 퇴근 후 포스팅이나 쓰는 사람입니다 ㅋㅋ;;;;; 아쉬움은 뒤로하고 RxSwift의 드디어 첫 걸음마 포스팅을 써보려고 합니다 RxSwift... 어 babbab2.tistory.com 반응형 프로그램이 무엇인지 매우 잘 설명해둠!! observable 생성 > Operator: observable의 이벤트를 입력받아 결과로 출력 Scheduler: 직접 생성하고 커스텀 할 일은 거의 없다 - 다른클래스에서 생성한 값을 시간에 따라서 읽을수 있음 ..
-
SETIN 개인정보처리방침iOS 2023. 6. 12. 23:08
('https://soultreemk.tistory.com'이하 'SETIN 개인정보처리방침')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2023년 6월 12부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://soultreemk.tistory.com'이하 'SETIN 개인정보처리방침')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 ..
-
Certification, Provision Profile 개념카테고리 없음 2023. 5. 25. 22:37
Apple Certification (인증서) 제가 iOS 어플을 처음 만들었을 때 들은 생각은 Apple은 보안을 위해 개발자를 매우 귀찮게 한다는 것이었습니다. "Apple은 기본적으로 자기들이 만든 하드웨어에 Apple의 승인을 받은 소프트웨어만 실행할 수 있게 합니다." 따라서 iOS 앱을 만들고 싶은 개발자는 Apple의 승인을 받기 위해 Apple Developer Program에 가입해야 합니다. Apple Developer에 가입하고, 개발자 센터에서 인증서를 받아야 비로소 Apple의 신뢰를 얻은 개발자가 될 수 있습니다. 이 말은, Apple이 개발자를 신뢰하여 Apple 대신 개발자가 만든 소프트웨어를 Apple이 만든 기계에서 실행시킬 수 있게 되었다는 말입니다. 근데 여기서 또 신..
-
AVPlayerLayer 로 영상 재생 (커스터마이즈)카테고리 없음 2023. 5. 9. 00:00
mp4와 같은 영상을 재생할때는 AVPlayer를 사용해야 하는데, 이걸 커스터마이즈 하려면 AVPlayerLayer위에서 작업을 해야함. 이걸로 당연히 유튜브 영상을 재생할거라 생각하고 커스터마이즈를 했는데..... iOS에서 제공해주는 API는 영상 파일의 URL을 받아서 영상을 실행시켜주는 방식인데, 유튜브에서 제공하는 URL은 영상 파일이 아니고 단순한 페이지 라고 한다... 그래서 공식 라이브러리 (youTube-player-ios-helper)나 외부 라이브러리 (youTubePlayer-in-WKWebView)를 사용해서 id값으로 영상을 재생해야 한다... 괜히 작업함 ㅠ 아까워서 기록해두기 override func viewWillAppear(_ animated: Bool) { super...
-
활용 - 8) 커스텀 델리게이트 패턴의 활용카테고리 없음 2023. 3. 3. 13:19
1) 커스텀 델리게이트 2) 사진 가져오기 (피커 뷰) 3) Notification - 키보드가 올라가거나 내려가면 알림을 받아서, 전체 화면을 살짝 올라오도록/내려가도록 애니메이션처럼 구현 ** userInfo를 가지고 있는 모델 구조체 Lazy var 지연저장속성을 선언하면 나중에 메모리가 생김. 굳이 이미지가 없다면 메모리를 올릴 필요가 없으므로 Lazy var로 선언 (메모리 낭비 방지) 옵셔널 타입을 통해, 이름이 nil이라면 단순 기본 이미지 return하도록 설정 ** MemberListManager - 관리자 역할. 데이터 배열을 VC에 전달하는 등 비즈니스 로직을 관리 VC에서 makeMembersListDatas 함수를 호출해줘야 데이터가 생성되고, 생성된 데이터를 membersList..