iOS
-
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 - ..
-
identifierForVendor를 이용한 기기 식별하기iOS 2023. 5. 30. 08:48
안녕하세요. 그린입니다🍏 이번 포스팅에서는 identifierForVendor 값을 이용하여 기기를 식별하는것에 대해 알아보려 합니다🙋🏻 만약 해당 앱에서 특별히 회원가입이나 소셜 로그인 등의 기능이 없지만 기기마다 식별을 해주어 서버와 통신을 하고 싶을때가 있을겁니다. 그럴때는 몇가지 방법들이 있지만 오늘 소개할 identifierForVendor의 값을 이용하여 해당 앱에서의 기기별 식별할 값으로 이용할 수 있을겁니다. 그럼 우선 identifierForVendor가 뭔지부터 알아야겠죠? identifierForVendor? identifierForVendor는 UIKit의 UIDevice에서 제공하는 인스턴스 프로퍼티입니다. 앱 공급업체에 대해 기기를 고유하게 식별하는 영문과 숫자로 이루어진 문자열..
-
Setting Bundle을 사용해 커스텀한 설정 추가하기iOS 2023. 5. 1. 20:24
안녕하세요. 그린입니다🍏 이번 포스팅에서는 Setting Bundle을 알아보고 이를 이용해 기본 앱 설정에서 커스텀한 설정들을 추가해보도록 하겠습니다🙋🏻 이 주제에 대해 알아보게 된 계기 우선 엑코 시뮬레이터에서 간혹 발생하는 버그인지 저는 아직 명확한 원인을 찾을 수 없던 문제가 있었어요! 예를들어, 토이 프로젝트로 실제 앱 스토어에 배포되지 않은 앱에서 위치 정보를 받아온다고 가정해볼께요. 그럴때 우리는 위치 정보 허용에 대한 요청을 보내고 이는 디바이스 기본 해당 앱 설정에서 확인할 수 있어요. 즉, 디바이스 > 설정에서 해당 앱이 목록에 노출되어야 하는데 노출되지 않는 문제가 있었습니다. 그래서 사실상 명확한 테스트를 해볼 수가 없었던 이슈로 인해 테스트를 위해서 기본 앱 설정이 목록에 나타나게..