전체 글
-
[iOS] 테스트 플라이트 "수출규정 문서 누락" 한 번에 해결하기 (Feat. 암호화 알고리즘? )IT Study/iOS 2024. 12. 8. 14:53
귀찮은 단계 없애도록 합시다 iOS 앱을 배포하기 위해 테스트 플라이트나 앱 스토어에 업로드하는 과정에서 다음과 같은 에러 메시지를 자주 만납니다.이 에러는 앱에서 암호화(Encryption) 기술을 사용하고 있는 경우, 애플이 미국 수출 규정에 따라 필요한 정보를 요청하기 때문에 발생합니다. 이번 글에서는 이 에러의 원인과 해결 방법을 알아보고, 수출 규정과 암호화 기술의 관계를 간단히 정리하겠습니다. 1. 왜 이 에러가 발생할까?우리가 테스트 플라이트나 앱 스토어로 우리의 서비스를 제출하면, Apple은 미국의 서버로 우리의 서비스를 업로드합니다. 이때, 배포하는 사람의 소재지에 관계없이 우리의 서비스, 즉 앱은 미국 수출법의 적용을 받습니다.미국 법에 따르면, 암호화 기술을 포함한 소프트웨어를 수..
-
[iOS] 상수를 어떻게 관리해야할까 (Feat. struct, enum?)IT Study/iOS 2024. 12. 8. 13:55
상수룩... 조크로 시작합니다... iOS 앱 개발을 하다 보면 화면에 표시할 텍스트, 아이콘 이름, 컬러 값 등 변하지 않는 상수를 코드에서 자주 사용하게 됩니다. 이를 효율적으로 관리하기 위해 Swift에서 자주 사용하는 두 가지 방식이 있습니다. struct와 enum. 이번 글에서는 이 두 가지 방식의 차이점과 각각의 장단점을 비교해 보며, 어떤 상황에서 어떤 방식을 선택하는 것이 적합한지 알아보겠습니다. 1. 상수 관리를 왜 해야 할까?상수를 잘 관리하면 다음과 같은 이점이 있습니다.코드 가독성 향상 : 상수 이름만 보고도 의미를 쉽게 파악할 수 있다.재사용성 증가 : 중복 코드 제거, 수정 시 한 곳만 변경할 수 있다.유지보수 편의성 : 값 변경 시 모든 파일에서 검색하지 않아도 된다."편하..
-
[iOS] 최소 지원 버전 (Feat. arm, CPU 아키텍처, 프레임워크 아키텍처)IT Study/iOS 2024. 11. 10. 18:34
아래 글에서는 iOS의 주요하게 지켜보고 있는 버전들에 대해 정리하고 있습니다. 📱 OS 버전1. iPhone OS2007년 MacWorld 컨퍼런스에서 iPhone 1세대와 함께 공개발표 당시에는 iPhone OS라는 이름도, 소개하지도 않았다.iPhone 프로젝트를 시작할 당시, Apple 내부 iPod vs Mac OS X 대립 구조 중 후자가 선택되었다.iPhone OS 1 (2007-2010) ~ iPhone OS 3 (2009-2012) 2. iOS2010년 iPad 공개와 함께 iPhone OS에서 iOS 로 명칭 변경아래는 지원 종료된 버전iOS 4 (2010-2013)iOS 5 (2011-2014)iOS 6 (2012-2015)iOS 7 (2013-2016)iOS 8 (2014-201..
-
[Native] 기본기에 관하여 (Feat. 2024년 11월 첫째주의 악몽)IT Study 2024. 11. 10. 14:38
저는 iOS를 갑작스럽게 시작하게 되었습니다. 안드로이드 개발자로서 모바일 분야에 관심이 많았던 것은 사실이지만, 안드로이드라는 분야의 전문성을 키워나가고자 하는 것이 주된 목표였습니다. 안드로이드라는 주 분야에 더해 iOS를 사이드 프로젝트를 진행하며 모바일 개발자로서의 두각을 드러내고자 했습니다.그러나 업무를 진행하며, iOS 개발자의 부재로 인해 모바일 파트를 모두 맡게 되었습니다. (여기에서 모바일 파트는 Native의 순기능을 사용할 수 있는 Android, iOS 분야로 한정하도록 하겠습니다.) 처음엔 그닥 두렵지 않았습니다. Swift와 Objective-C는 그저 개발 언어 중 하나일 뿐, 모든 언어는 비슷한 흐름을 가지고 있다고 생각했습니다. 지금까지 여러 언어를 접하며, 처음엔 어색하고..
-
[우아콘 2024] XML에서 Compose로의 전환 (Feat. 안드로이드)IT Study/Android 2024. 10. 30. 14:27
이번 우아콘 2024에서 "XML을 Compose로 전환하기" 세션에 참석했습니다.기존의 XML 기반 UI를 Jetpack Compose로 전환하는 과정에서의 경험을 들은 이후, 사견에 대해 공유하고자 합니다 :) 1. 전환 계기우아한형제의 안드로이드 팀에서는 공통 디자인 시스템 구축을 위해 Compose를 도입하기 시작했습니다. 단순한 공통 시스템을 위해 Compose를 도입하는 것이 적절한지에 대한 의구심이 있었으나, 선언적 UI의 이점과 코틀린만으로 개발이 가능하다는 점이 매력적으로 작용하여 도입을 결정지은 듯 합니다. 2. Compose의 장점아래 내용 중 예상하건데, 점진적 전환이 가능했기에 서비스에 도입할 수 있지 않았을까요?선언형 UI로 인한 성능 개선 : 화면의 변경되는 부분만을 다시 그..
-
[iOS] 디바이스에 데이터 저장하기 1탄 (Feat. UserDefaults)IT Study/iOS 2024. 10. 19. 22:15
안녕하세요, Three입니다.이번 글에서는 iOS 앱에서 데이터를 저장하는 다양한 방식과 함께, UserDefaults를 사용해 사용자의 테마 설정을 저장하고 관리하는 방법에 대해 소개하고자 합니다.그 전에 iOS의 데이터 저장 방식을 확인하고, 시작하도록 하겠습니다 😀 1. iOS 데이터 저장 방식앱 데이터와 사용자 데이터를 기기에 저장하는 방법은 여러 가지가 있습니다. 아래의 표로 간단히 특징들에 대해 알아보시죠.방법사용장점단점UserDefaults앱 설정 (테마, 음량, 언어)빠름, 간단보안 X, 오직 소규모 데이터File System이미지, 문서, 음악, 비디오파일 구조 관리 가능파일 관리 필요Core Data복잡한(관계형) 데이터 모델관계형 데이터 관리 용이학습 시간 소요Keychain비번,..
-
[iOS] SwiftUI의 상태 관리 (Feat. @State, @StateObject, @ObservedObject, @Published)IT Study/iOS 2024. 9. 22. 20:16
SwiftUI에서 상태 관리에 대해 알아보도록 하죠. 먼저 @State, @StateObject, @ObservedObject, @Published는 상태 변화를 관리하고 SwiftUI 뷰와의 데이터 바인딩을 위한 도구입니다. 각 역할을 이해하고 어떤 상황에서 어떤 속성을 사용해야 하는지 정확히 파악해보도록 하겠습니다.현재 제가 하고 있는 개인 프로젝트와 관련된 예시와 함께 보도록 하겠습니다. 1. @State개념@State 뷰 내부에서만 사용하는 상태를 저장, 관리하는 데 사용됩니다. 주로 간단한 데이터(숫자, 문자열, Bool 등)를 다룰 때 사용됩니다. @State로 선언된 변수는 뷰가 다시 렌더링될 때에도 상태를 유지하며, 상태가 변경되면 자동으로 뷰가 재렌더링됩니다. 예시struct MainV..
-
[면접/후기] Apple Developer Academy (Feat. 합격)Daily 2024. 9. 17. 15:38
지난 7월 말, Apple Developer Academy 면접 후기를 작성했다. 그 면접은 내 부족함을 깨닫는 계기가 되었고, 동시에 새로운 동기를 부여해주었다. 면접 이후, 나는 안드로이드에만 머무르지 않고 모바일 분야에서 두각을 나타내기 위해 회사에 iOS 파트도 함께 맡고 싶다고 요청했다. 그렇게 회사에서 iOS를 함께 맡으며 내 한계를 뛰어넘는 어려운 경험을 쌓는 중이었다. 그런 와중에 아래와 같은 응답을 받게 되었다. 앞으로 내가 어떤 방향을 선택할지 나 자신도 기대된다. (섣불리 결정을 내리지 않으려고 한다)김한슬, 꾸준함과 한계를 뛰어넘는 마음가짐으로 계속 성장해 나가길.