iOS/개념정리
-
Swift WKWebView 양방향 통신iOS/개념정리 2024. 6. 11. 15:31
apple에서 제공해주는 WKWebView라는 WebView가 있습니다.원하는 url를 load 할 수 있고, 아니면 직접 html String을 load할 수 있습니다.SFSafriViewController라는 것을 사용해서 만들 수 있지만 WKWebView가 좀 더 Custom하기 용이하다구 생각합니다.iOS 8.0 부터 생겼고, WebKit을 import해서 사용하면 됩니다.프로젝트에 들어가면 온전한 native소스가 아닌 webView와 같이 사용하는경우가 많습니다.거기서 참고할 만한 간단하게 WebView -> Native랑 Native -> WebView를 알아보겠습니다.우선 htmlString을 사용하여 간단하게 웹뷰를 구성하고 그 구성한것들을 이용하여 통신 해보겠습니다. 화면 구성 다음과 ..
-
[iOS] Alamofire + Combine with Clean ArchitectureiOS/개념정리 2024. 1. 29. 13:23
Alamofire - Swift를 기반으로 한 Http 네트워킹 라이브러리이다. Combine - 시간의 흐름에 따라 값을 처리하기 위한 프레임 워크(비동기 통신 프레임 워크) 위 두개를 사용하여 http통신을 하여 데이터를 비동기로 받아오는 예시를 Can 프로젝트에 작성해 보겠습니다. 사용할 API는 https://jsonplaceholder.typicode.com/ 에서 posts와 users를 사용할 것입니다. Clean Architecture에 따라 가장 안쪽 부터 작성하겠습니다. 먼저 Domain Layer에 Entity에 모델을 만들어 줍니다. 사용할 모델 posts와 users에 해당하는 모델을 만듭니다. 다음으로 인터페이스를 작성해주고, 그걸 활용하여 viewModel에 사용할 수 있도록 ..
-
<Swift>Combine(2) 사용하기iOS/개념정리 2023. 3. 15. 15:53
Combine을 공부하다 보니 이해가 안되는 부분이 있어 익히면서 공부해 볼까 합니다. 일단 새프로젝트를 열고 텍스트 필드 두개를 생성하고 버튼 하나를 만들어서 두 텍스트 필드에 입력된 문자가 동일하면 버튼을 활성화 하는 방법으로 Combine방식과 MVVM패턴을 활용해서 만들어 볼까 합니다 우선 main 화면을 그려주자. 위 화면에서 상단 텍스트 필드와 하단 텍스트 필드의 텍스트가 같으면 아래 "내 버튼"을 활성화 시켜줄꺼다. 일단 두 텍스트 필드와 하나의 버튼에 outlet을 잡아주자. 이런식으로 3개의 outlet을 잡아주면 다음으로 새로운 파일 "ViewModel.swift" 파일을 만들어준다. 일단 처음에 텍스트 필드에 관한 Combine을 적용 시켜 줄껀데. UITextField Extensi..
-
<Swift> Combine(1) 사용하기iOS/개념정리 2023. 3. 3. 16:51
Combine 이란 애플에서 만든 비동기 이벤트를 처리하기 위한 프레임 워크 iOS 13부터 적용 가능 Combine 3 요소 publisher -> 데이터를 내보냄 형태로 하나는 이벤트 데이터 하나는 에러 타입(NEVER는 어떠한 에러도 반환하지 않음) Operator ->이벤트를 가공 subscriber -> 이벤트를 받음 Playground에서 보자면 먼저 상단에 Combine을 임포트 해주고 시작해야 합니다. 위처럼 Publisher를 myIntArrayPublisher로 설정해 주고 sink는 클로저 형태로 데이터를 받는 Subscriber 입니다. 위 코드는 Error 타입을 Never로 정했기 때문에 실패타입은 항상 Never입니다. 공부를 위해 failure를 넣었지만 저기를 타진 않습니다..
-
<Swift>Skeleton 사용하기iOS/개념정리 2022. 10. 31. 21:54
앱을 사용하다보면 위와 같은 로딩 뷰를 본적이 있을텐데 오늘은 위와 같은 로딩 뷰 skeleton 사용법을 알아보자! 프로젝트를 새로 생성 후 해당 경로에 pod init 후에 podfile에 아래 명령어를 삽입해서 Skeleton을 설치 합니다. pod 'SkeletonView' 사용할 ViewController에 가서 "import SkeletonView"를 상단에 넣어 줍니다. 그리고 이제 storyboard를 만들어 줄껀데. 저는 다음과 같이 만들었습니다 4개 view 다른 효과를 줄 껍니다. ( 뒷 배경은 위 캡쳐화면을 위해서 잠시 검정색으로 해서 4개 view가 잘 보이게 작성했습니다.) 그리고 각 뷰마다 설정을 해주어야 하는데. 먼저 스토리 보드를 이용하면 위와 같이 뷰를 선택하여 Attri..
-
<Swift> Kingfisher 사용하기iOS/개념정리 2022. 10. 14. 16:00
Kingfisher란? Kingfisher is a powerful, pure-Swift library for downloading and caching images from the web. - 웹에서 이미지를 다운로드 하고 캐싱하기 위한 강력하고 순수한 라이브러리 입니다. 특징으로는 Asynchronous image downloading and caching. Loading image from either URLSession-based networking or local provided data. Useful image processors and filters provided. Multiple-layer hybrid cache for both memory and disk. Fine control on ..
-
<Swift> 로컬 푸쉬 - Local NotificationiOS/개념정리 2022. 8. 17. 10:29
푸쉬 종류 - 서버로 부터 푸쉬앱을 띄우는 remote notification - 로컬 앱으로 부터 푸쉬앱을 띄우는 local notification 우선 Local Notification을 사용 하려면 UNUserNotificationCenter에 대해서 알아야 한다. Apple document에 따르면 해석 하자면 "앱 또는 앱 확장에 대한 알림 관련 활동을 관리하기 위한 중앙 개체입니다" 라는 뜻이다.알림에 관한 기능을 하는 클래스라고 생각하면 될 것 같다. 우선 UNUserNotificationCenter을 사용하기 위해선 import UserNotifications를 상단에 해줍니다. 다른앱을 이용하다 보면 아래 이미지와 같이 권한 요청하는 과정을 거쳐야 합니다. completionHandler..