전체 글
-
로컬 푸시 알림 기능 구현 (Local Notification)ios 2020. 12. 17. 16:22
Questions before studying 푸시 알림을 서버에서 보내는 것 말고 로컬에서도 할 수 있는지 가능 하다면 , 앱이 suspended나 background에서도 가능 하는지 Answer For Questions If the delivery of the notification occurs when your app is not running or in the background, the system interacts with the user for you. If your app is in the foreground, the system delivers the notification to your app for handling → 앱이 백그라운드나 포그라운드가 아닐 경우에도 노티피케이션이 오는 ..
-
Not Running 상태에서 DeepLink로 특정 URL 이동issue 2020. 9. 25. 12:14
이슈 앱 내 서비스 중 , 추천 상품 URL을 사용자에게 보내주는 서비스가 있습니다. (앱이 다운로드 되어 있다는 가정) 사용자가 해당 URL 클릭시 , 해당 앱 프로토콜을 가지고 있는 앱이 실행 됩니다. 13 버전 이상 , func scene(_ scene: UIScene, openURLContexts URLContexts: Set) 13 버전 미만 , func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool 해당 매서드 내에서 데이터를 가공하는 서비스 로직을 불러줍니다. delegate를 통해 , rootViewController에게 알려주도록 했습..
-
ARC: Resolving Strong Reference Cycles Between Class Instancesios 2020. 9. 7. 23:41
들어가며 이 전 글은 ARC에 대해서 알아보았습니다. 오늘은 Strong Reference로 인한 Retain Cycle을 어떻게 해결하면 좋을지에 대해서 알아보도록 하겠습니다. Resolving Strong Reference Cycles Between Class Instances Swift provides two ways to resolve strong reference cycles when you work with properties of class type: weak references and unowned references. Weak and unowned references enable one instance in a reference cycle to refer to the other insta..
-
ARCios 2020. 9. 6. 23:05
들어가며 아이폰 앱 개발을 하다 보면 , 분명 ViewDidDisappear가 되었는데도 deInit 이 콜이 안되는 경우가 저에겐 빈번히 일어 났습니다. 대충 문제를 짐작하여 해결하려고 하였지만, 막상 문제를 찾으려고 할 때는 문제점을 명확히 잘 찾지 못 했습니다. 그 이유는 제 자신이 ARC의 개념에 미흡하게 알고 있어서 그런 것 같습니다. 이러한 문제 점을 고치기 위해 글을 쓰게 되었습니다. ARC란 무엇일까? Swift uses Automatic Reference Counting (ARC) to track and manage your app’s memory usage. In most cases, this means that memory management “just works” in Swift, ..
-
네트워크 통신 모듈화 with Alamofireios 2020. 7. 21. 19:15
들어가며 회사에서 앱을 개발하던 중, 네트워크 통신을 하는 로직이 항상 마음에 들지 않았습니다. 분명 같은 구조이고 요청할 때 들어가는 전달 변수만 달라지는데 왜 나는 왜 똑같은 코드를 반복하고 있는지 하고 있는 제 자신도 비참해 보였습니다. 그러던 중, 선배 개발자가 " Network Request 하는 건 하나만 만들고 바뀔 값만 전달 변수로 전달해라 " 이렇게 조언을 해주셨습니다. 선배의 말을 듣고 코드를 바꾸고 있는 찰나 좋은 정보는 함께 공유하면 좋을거 같아서 이렇게 글을 쓰기 시작했습니다. 본론 Problem -> RestApi Call With Overlapped Same Code diffrent Paraemters 잘못된 점 App에서 Rest Api를 요청하면 이런 구조, 형식으로 같은 ..
-
APNs 사용법ios 2020. 7. 20. 17:29
APNs란 Apple Push Notification service (commonly referred to as Apple Notification Service or APNs) is a platform notification service created by Apple Inc. that enables third party application developers to send notification data to applications installed on Apple devices. The notification information sent can include badges, sounds, newsstand updates, or custom text alerts. 애플 푸시 노티피케이션 서비스는 애플..
-
Property with type 'Any' does not conforms with codable protocolios 2020. 7. 13. 18:26
원인: 회사 내 프로젝트를 진행하면서 생긴 이슈 사항 입니다. API 구조가 바뀌면서 저 또한 API 응답 받는 데이터 구조를 수정할 필요가 생겼습니다. 먼저 바뀐 서버에서 주는 응답 입니다. status int 필수 message string 필수 data? optional 앱 내에서 필요한 앱 API는 전부 이런식으로 통일이 되었다고 합니다. 시도: 제가 처음에 생각한 데이터 구조는 이렇게 구조를 바꿨는데 ..."does not conform to protocol 'Decodable'" 이러한 오류가 뜨는 것을 확인했습니다. 문제: Property with type 'Any' does not conforms with codable protocol 이러한 이슈 사항이 생겨서 이렇게 글을 쓰게 되었습니다..
-
단위 테스트 (Given, When, Then) 활용ios 2020. 6. 23. 20:34
클린 코드를 읽으면서 단위 테스트의 중요한 부분을 요약해보겠습니다. TDD 법칙 세 가지 1. 실패하는 코드를 작성하 2. 컴파일에 통과하는 코드를 작성 3. 실패했던 코드들을 통과할 정도로 수정하면서 실제 코드를 작성 [테스트 코드를 짤 때 주의할 점] -> 테스트 코드는 실제 코드 못지 않게 중요 -> 테스트 코드는 사고와 설계와 주의가 필요 [테스트 케이스를 가지고 있을 때] -> 테스트 코드가 있으면 코드 변경에 두렵지 않을 수 있다. -> 유연성, 유지보수성, 재사용성을 갖는다. -> 변경이 쉬어진다. [깨끗한 테스트 코드를 만드려면?] 가독성, 가독성...... [테스트 코드 구조] 1. 테스트 자료 생성 2. 자료를 조작 3. 조작한 결과가 옳바른지 확인 ps. 테스트 코드는 진짜 필요한 자..