iOS
-
ATS (App Transport Security) 톺아보기iOS 2023. 11. 14. 10:04
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 App Transport Security라고 불리는 ATS에 대해 알아보고 우리 프로젝트에서 설정하는 학습을 해보겠습니다 🙋🏻 우선 ATS가 무엇인지 공식문서를 통해 학습해볼까요? ATS? 하나 먼저 알고 넘어가면 좋을것이 있습니다. 바로 서버와 통신할때 HTTP로 통신을 하면 전송 보안 이슈때문에 연결이 되지 않습니다! 이것을 ATS가 관여하는건데요. 즉, 애플 플랫폼에서 ATS라는 네트워킹 기능은 모든 앱과 앱 확장 프로그램에 대해 개인 정보 보호와 데이터 무결성을 향상시켜줍니다. 쉽게 말해보면 애플의 네트워크 보안 기능이라고 볼 수 있습니다 🔒 ATS에선 앞서 말했듯이 URLSession 클래스를 사용하는 즉, 모든 URL 로딩 시스템에서는 모든 HTTP..
-
인앱리뷰(In-App Review) 연동하기iOS 2023. 11. 9. 10:02
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 인앱리뷰(In-App Review) 연동하는 방법에 대해 학습해보겠습니다 🙋🏻 우선 인앱리뷰가 무엇인지 부터 알아보겠습니다. 인앱리뷰 (In-App Review) 인앱리뷰는 우리가 제공하는 앱 속에서 앱의 앱스토어 평점 및 리뷰를 남길 수 있도록 요청하는 기능입니다. 즉, 많이들 앱을 사용하다보면 이 앱의 평점을 남겨달라는 팝업이 뜰 경우를 종종 본적이 있으실거에요. 쉽게 말해, 앱 내에서 평점과 리뷰를 요청하는 기능이라고 정리할 수 있습니다. 그런데 이 인앱리뷰의 코드를 심어주어도 인앱리뷰를 띄우는 결정은 애플 내부 시스템에서 해주기에 개발자가 직접 컨트롤할 수 없는 부분들이 많습니다 🥲 인앱리뷰의 특징들을 조금 살펴볼까요? 인앱리뷰 특징 1️⃣ 시스템적으로..
-
Event CapturingiOS 2023. 10. 26. 13:29
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 Event Capturing에 대해 한번 알아보겠습니다 🙋🏻 우선 우리는 이전 포스팅에서 Event Bubbling이라는 개념에 대해 알아봤어요! Event Bubbling을 가볍게 다시 리마인드 시켜볼까요? 한 요소에 이벤트가 발생하면, 이 요소에 할당된 핸들러가 동작하고 이어서 부모 요소의 핸들러가 동작하는것이 버블링의 원리 🫧 그렇기에 유저의 터치 이벤트를 처리하는 핸들러의 역할이 상단으로 전파될 수 있는것이죠. 만약 이벤트 버블링의 이해가 필요하시다면 이전 포스팅을 참고해주세요 🙏🏻 Event Bubbling 안녕하세요. 그린입니다 🍏 이번 포스팅에서는 Event Bubbling이라는 개념에 대해 학습해보겠습니다 🙋🏻 바로 이전 포스팅인 Borderle..
-
Event BubblingiOS 2023. 10. 23. 16:54
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 Event Bubbling이라는 개념에 대해 학습해보겠습니다 🙋🏻 바로 이전 포스팅인 BorderlessButtonStyle에 대해 학습해보면서 짧게 이벤트 버블링이라는 개념이 적용되어서 그렇다~라고 소개만 하고 지나갔었는데요. 그걸 이번 포스팅에서 조금 더 구체적으로 알아보려합니다! 만약 BorderlessButtonStyle에서 어떻게 흐름상 말이 나왔는지 필요하다면 아래 포스팅을 먼저 참고해주세요 🙏🏻 BorderlessButtonStyle의 활용 안녕하세요. 그린입니다 🍏 이번 포스팅에서는 SwiftUI의 버튼을 다룰때 스타일을 지정할 수 있는데요. 그 중 BorderlessButtonStyle을 알아보고 그 스타일을 어떻게 실전에서 적용하는 경우가 있..
-
메모리 덤프 분석 (feat. fridump)iOS 2023. 9. 14. 10:11
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 fridump를 이용해서 메모리 덤프 분석을 해볼까해요! 사실 보안팀에서는 각 앱의 보안을 진단하기 위해서 memory dump를 보고 분석하는 업무도 하고 있습니다. 즉, 사용자의 민감한 휴대폰정보 / 비밀번호 / 이메일 등 개인정보들이 실제 memory에서 사용 후 해제되지 않고 남아있는지, 그것으로 어떠한 탈취가 가능한 루트가 있는지 등을 파악하기 위해서는 앱의 메모리 덤프를 가지고 분석해보는것이 첫번째 단계일것 같아요 🙋🏻 근데 우리는 보안팀이 아니지만! 그래도 우리도 민감정보들이 메모리에 남아있지 않게 설계하고 구현했다 하더라도 검증은 해보는것이 좋겠죠? 그렇기에 이번 포스팅에서 메모리 덤프를 확인하는 과정까지 소개해볼까해요! 가장 우선되는건 frid..
-
앱 출시 - 숏스(SHORT NEWS) (feat. Mash-Up)iOS 2023. 7. 24. 14:36
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 제가 이번에 동아리에서 출시한 숏스(SHORT NEWS)라는 앱에 대해 소개해볼까해요 🙋🏻 잠깐, 어떤 동아리에서 그런걸 만들었는데? Mash-Up 제가 올해 2월부터 매쉬업(Mash-Up)이라는 IT 개발 동아리에서 13기 iOS 팀원으로 활동하고 있는데요! 매쉬업은 성장의 즐거움을 아는 개발자/디자이너가 만나 서로 세미나도 하고 스터디도 하고 그리고 프로젝트도 하는 다재다능한 동아리입니다 😃 홍보를 더 해보고 싶지만 너무 동아리 소개만 계속하면 해당 포스팅의 취지에 맞지 않을것 같아 이만 줄일께요. 혹시 매쉬업이라는 동아리가 어떤건지 더 궁금하다면 아래 공식 홈페이지를 참고해주시면 더 많은 도움이 될것 같아요 🙌 추가로, 현재 13기의 활동이 거의 끝나가며..
-
특정 버전에 대한 분기 처리하기 (systemVersion)iOS 2023. 7. 13. 08:50
안녕하세요. 그린입니다 🍏 이번 포스팅에서는 특정 버전에 대한 분기처리하는 방법에 대해 알아보겠습니다 🙋🏻 일단 간단한 포스팅이 될 수도 있을것 같네요ㅎㅎ 분기 처리? 개발을 하다보면 버전 별로 코드를 다르게 동작시키는 경우가 종종 있습니다. iOS를 예를들어본다면 iOS 17에서부터 지원되는 Keyframe Animator의 사용을 하고 싶은 경우 현재 프로젝트의 미니멈 타겟은 만약 iOS 15라고 가정해볼께요. 그렇다면 우리는 특정 파일에서 해당 코드를 사용하기 위해 iOS 17 이상에서는 저 동작 그 밑에서는 요 동작 이렇게 분기 처리가 필요하죠? 자 이럴때 어떻게 처리하면 될까요? available 해당 속성을 이용해 버전을 체크하고 분기처리를 할 수 있습니다. 일단 간단하게 #available과..
-
오픈소스 라이센스 표시iOS 2023. 6. 19. 09:59
안녕하세요. 그린입니다🍏 이번 포스팅에서는 앱을 구성하면서 사용한 오픈소스 라이센스를 디바이스 해당 앱 설정에서 표시하는 방법에 대해 알아보겠습니다🙋🏻 앱에서 사용된 오픈소스를 사용하면서 라이센스 표시를 꼭 해줘야하는 경우가 있습니다. 이때 실제 해당 앱 내부에서 설정이나 마이페이지 같은 화면에서 표시해줄 수도 있고, 디바이스 > 설정 > 해당 앱에서 라이센스 정보를 표시해줄 수도 있습니다. 여기서는 후자인 디바이스 > 설정 > 해당 앱 정보에서 라이센스를 표시하는 방법을 다뤄보겠습니다🙌 LicensePlist 라이브러리 사용 우선 사용된 오픈소스 라이센스들의 정보를 추출해오기 위하여 아래 라이브러리를 사용합니다. https://github.com/mono0926/LicensePlist GitHub - ..