iOS(48)
-
[iOS] WebView 백그라운드 시 앱 새로고침 이슈
카드사 앱에서 결제를 완료한 후 앱이 처음부터 재시작되는 문제는 앱의 상태 관리와 iOS의 메모리 관리 정책 또는 딥 링크 처리 방식과 관련이 있을 가능성이 높습니다. 아래에서 주요 원인과 해결 방안을 설명하겠습니다.1. 앱의 프로세스가 종료되는 경우iOS는 백그라운드에서 실행 중인 앱을 일정 시간 동안만 유지하며, 메모리가 부족하거나 시스템 리소스가 필요할 경우 앱을 종료시킬 수 있습니다. 카드 앱으로 전환 중 이런 상황이 발생할 수 있습니다.원인카드사 앱 실행 시, iOS가 메모리를 확보하기 위해 웹뷰를 열어둔 앱을 종료.앱이 Background Execution을 지원하지 않는 경우.앱이 오래 백그라운드에 있거나 다른 작업을 수행해 메모리 부족 상황이 발생.해결 방법앱 상태 복원(UIApplicat..
2025.01.25 -
[iOS] Webview Deep Link/Universal Link
웹뷰로 구현된 결제 페이지에서 카드 결제를 선택한 뒤, 카드 앱으로 이동 후 결제가 완료되었을 때 다시 앱으로 돌아와 결제 완료를 처리하려면, 딥 링크(Deep Link) 또는 Universal Link를 활용하는 방법을 주로 사용합니다. 이와 함께 웹뷰의 네비게이션 동작과 앱 간 호출 흐름을 관리해야 합니다.구현 단계1. 카드 결제 연동 흐름사용자 → 앱의 웹뷰에서 결제 페이지에 접근.사용자 → 카드 결제를 선택하면, 카드사의 앱이 실행됨.사용자 → 카드 앱에서 결제 완료 후 앱의 딥 링크/유니버설 링크를 통해 다시 원래 앱으로 복귀.앱 → 복귀 시 결제 결과를 확인하여 처리.2. 카드사 앱 연동 방식대부분의 카드사 결제 앱은 딥 링크(URL 스키마)를 지원하며, 결제 완료 후 앱으로 돌아올 수 있도록..
2025.01.25 -
[iOS] WKWebView
iOS 앱에서 웹뷰를 통해 웹과 앱 간 연동을 구현하려면 WKWebView를 주로 사용합니다. 웹뷰는 HTML, CSS, JavaScript로 작성된 콘텐츠를 앱 내부에서 표시할 수 있으며, 앱과 웹 간 데이터 교환이 가능하도록 설계됩니다. 아래는 주요 개념과 방법을 설명합니다.1. 웹뷰 종류UIWebView: iOS 12 이전에 사용되던 웹뷰. 현재는 Deprecated로 사용하지 않음.WKWebView: iOS 8 이상에서 사용할 수 있는 최신 웹뷰. 성능이 우수하고, 보안 및 기능 지원이 강력함.2. WKWebView 주요 기능웹 페이지 로드:로컬 HTML 파일 또는 URL로 웹 페이지를 로드합니다.load(URLRequest) 또는 loadHTMLString(_:baseURL:)을 사용.JavaS..
2025.01.25 -
iOS의 동시성(Concurrency)
iOS의 동시성(Concurrency)은 앱이 동시에 여러 작업을 수행하도록 지원하는 기능입니다. 동시성을 사용하면 백그라운드에서 작업을 수행하면서 메인 스레드에서 UI를 원활하게 유지할 수 있습니다. iOS에서 동시성을 구현하는 주요 방식은 다음과 같습니다:1. GCD (Grand Central Dispatch)GCD는 작업을 큐에 제출하고 비동기로 실행되도록 하는 저수준 API입니다.작업 큐 종류Main Queue: UI 업데이트를 위해 사용 (메인 스레드).Global Queues: 백그라운드 작업에 사용 (QoS에 따라 분류).Custom Queues: 특정 작업을 위해 사용자 정의 큐를 생성.// 백그라운드 작업 DispatchQueue.global(qos: .background).async {..
2025.01.24 -
모바일 개발 시 협업의 중요성
모바일 개발팀에서의 협업은 팀원 간 효율적인 소통과 명확한 역할 분담, 그리고 적절한 기술 및 도구의 활용을 통해 이루어집니다. 특히 모바일 앱 개발은 디자인, 백엔드, QA, 기획, 마케팅 등 다양한 부서와의 협업이 중요하며, 플랫폼별(Android, iOS) 특성도 고려해야 합니다. 아래에 모바일 개발팀 협업을 위한 구체적인 방법과 주의 사항을 설명합니다.1. 팀 구조와 역할 명확화팀 내 주요 역할:기획자앱의 요구사항, 사용자 경험(UX), 비즈니스 목표를 정의.디자이너(UI/UX)사용자 인터페이스(UI) 설계, 사용자 흐름(Flow) 제작.모바일 개발자iOS 및 Android 앱 개발.각 플랫폼의 특성(iOS: Swift/Objective-C, Android: Kotlin/Java)에 따른 구현.백..
2025.01.21 -
[QA] QA담당자와 협업하기
QA(품질 보증) 담당자와의 협업은 제품의 품질을 보장하고, 사용자의 만족도를 높이는 데 핵심적입니다. QA와 개발자의 관계는 단순히 문제를 지적하는 것을 넘어, 문제를 예방하고 함께 해결하는 협력 관계여야 합니다. 아래는 QA 담당자와의 협업에서 주의할 점과 효율성을 높이는 방법을 자세히 설명한 내용입니다.1. QA의 역할과 중요성 이해왜 필요한가?QA는 단순히 버그를 찾는 역할이 아니라, 제품이 요구사항에 맞게 동작하는지, 사용자 경험이 만족스러운지를 검증하는 역할을 합니다.방법:QA 프로세스 이해:QA가 사용하는 테스트 종류(유닛 테스트, 통합 테스트, 시스템 테스트 등)와 툴(Jira, Zephyr, Selenium 등)을 이해하세요.공통 목표 설정:QA와 개발자는 "최대한 빠르고 정확하게 문제를..
2025.01.21