Xcode
-
iOS/WebView/Project - 웹뷰 JS 양방향 통신#13Project/Swift+WebView 2023. 1. 20. 11:14
웹뷰를 이용한 하이브리드앱을 개발할 시 네이티브와 웹의 상호 작용하는 부분들이 생각보다 많습니다. 팝업 & 로그인 세션 & JWT 토큰 등 이벤트를 캐치해서 처리하는 경우 인터페이스를 정의해서 일련의 규칙을 정하여 개발하지 않으면 개발이 산으로 갈 수밖에 없고 유지보수도 상당히 어려울 것입니다. 이러한 부분들을 가능하게 해주는 부분들에 대해서 처리해 볼 것입니다. 기본적으로 WKUserContentController을 사용하여서 가능하며 코드로서 생성하는 것이 좋다고 합니다. 웹뷰 초기화 함수의 configuration속성을 사용해야 하는데 스토리 보드로는 해당 속성을 사용 못하기 때문입니다. 여러 사이트를 참조하여 아래 코드를 완성였습니다. 참조 블로그 님들 감사드립니다. MainViewControll..
-
iOS/Xcode 14X - NavigationController 화면 전환 방법Language/iOS,AOS 2023. 1. 18. 14:41
화면 전환 방법에는 대표적으로 네 가지 방법이 있다. ViewController의 view 바꿔치기 ViewController가 다른 ViewController를 호출(present) NavigationViewController 사용하여 화면 전환(push) 화면 전환용 객체 Segue 사용 아래에서 각각의 방법으로 이동하는 법을 알아보자. 먼저 이동할 Scene에 아래와 같이 Storyboard ID를 입력한다. ViewController의 view 바꿔치기 메인뷰를 바꿔치기 하는 방식이다, 하지만 메모리 overflow 위험이 있기 떄문에 좋은 방법이 아니라고 한다. // ##### CASE1. ViewController의 view 바꿔치기 let mainVC = UIStoryboard(name: "..
-
iOS/WebView/Project - 화면전환 및 웹뷰 적용#12Project/Swift+WebView 2023. 1. 18. 12:25
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 https://github.com/dchkang83/ios-webview-project/releases/tag/1.0 Release 1.0 · dchkang83/ios-webview-project github.com 화면 전환 방법에는 대표적으로 네 가지 방법이 있다. ViewController의 view 바꿔치기 ViewController가 다른 ViewController를 호출(present) NavigationViewController 사용하여 화면 전환(push) 화면 전환용 객체 Segue 사용 아래 포스팅에 각각의 전환 방식에 대해서 설명되어 있다. https://dchkang83.tistory.com/126 IOS..
-
iOS/WebView/Project - 서버별 테스트 환경 만들기#11Project/Swift+WebView 2023. 1. 13. 16:16
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 이번장에서는 지난 블로그에서 설정한 Constants(상수) 및 AppInfo(싱글톤)를 활용하여 웹뷰에 나타나는 웹서버를 변경할 수 있도록하여 디버깅 및 앱에 대한 테스트 편의성을 높혀보자. 앱 실행 환경에 따라 다른 진입 운영 환경 : 앱 실행 -> 슬플래시 이미지 -> 로컬/개발/스테이징/운영을 선택할 수 있도록 한다. 디버깅 환경 : 앱 실행 -> 슬플래시 이미지 -> 운영 웹뷰 노출 작업 진행 먼저 ViewController의 생명주기(Life Cycle) 중 viewDidAppear 함수에 서버를 선택하는 UIAlertController를 설정할 것이다. https://dchkang83.tistory.com/109 ..
-
iOS/WebView/Project - Constants 및 Utils 분리#10Project/Swift+WebView 2023. 1. 13. 15:30
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 상수 추가 가독성 및 유지보수를 위해서 상수를 추가한다. import Foundation struct Constants { static let SERVER_LOCAL: String = "LOCALHOST" static let SERVER_DEV: String = "DEVELOPMENT" static let SERVER_STG: String = "STAGING" static let SERVER_PROD: String = "PRODUCTION" static let SERVERS = [ SERVER_LOCAL: [ "NAME": "로컬", "URL": "http://local" ], SERVER_DEV: [ "NAME": "개발",..
-
iOS/WebView/Project - 싱글톤 패턴 AppInfo 추가#9Project/Swift+WebView 2023. 1. 12. 09:21
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 싱글톤(Singleton Pattern)이란? 디자인 패턴중에 하나이고 생성자가 여러번 호출되더라도 실제 생성되는 객체는 하나이고 객체를 다시 생성하더라도 이미 생성되어 있는 객체를 리턴한다. DBCP(Database Connection Pool)와 같은 상황에서 많이 사용된다. 싱글톤 장점 Instance를 최초 1회 생성하므로 메모리와 성능적인 측면에서 효율이 좋다. Singleton Instance는 전역 Instance로 다른 클래스들과 데이터 공유가 쉽다. Instance가 1개라는 것을 보증받는다. (Thread Safe) 싱글톤 단점 Singleton Instance로 많은 데이터를 공유 시킬 경우 다른클래스의 결..
-
iOS/WebView/Project - BaseViewController 모듈화#8Project/Swift+WebView 2023. 1. 11. 11:25
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 모든 ViewController들이 상속 받을수 있는 BaseViewController를 만들어서 사용하자. 코드의 중복을 줄이기 위해서 코드의 통일성 유지보수 편의성 BaseViewController import Foundation import UIKit class BaseViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. print("######### [BASE] ViewController - viewDidLoad") } } exten..
-
iOS/WebView/Project - Splash 등록/설정#7Project/Swift+WebView 2023. 1. 11. 10:48
IOS/Xcode 14X Swift5.7.2 WKWebView 에서 작업 진행 이미지 뷰 등록 아래 둘중에 하나의 방법으로 진행하면된다, 필자는 귀찮지만 정석?대로 Image VIew 등록하고 이미지를 연결할거다! Image 뷰 Drag&Drop으로 등록하고 Image를 Assets에서 등록한 Splash로 변경해준다. 사이즈 변경 및 배치 Constraints이 추가되면서 조절해 주는듯 하다 단말기에 상관없이 Splash 이미지 중앙 배치 여러기종의 단말기에 구분없이 중앙에 위치하도록 변경 설정된 속성이 Constraints형태로 추가되고 단말기를 변경해 보아도 중앙에 위치하게 된다. Splash 이미지 크기 변경 아래와 같이 이미지 크기를 변경할 수도 있다. AppDelegate 딜레이 주기 캡쳐뜨기..