ios
-
[iOS] Swift에서 날짜 기반 채팅 목록 그룹화 개선하기 (Feat. 그룹화 우선순위의 오류, sortWeight)IT Study/iOS 2025. 1. 30. 17:01
ㅡAloneChat의 groupChatRoms() 정렬 문제 해결 과정에 대해 다루고 있습니다. 1. 문제 정의 : 연도별 정렬 오류AloneChat에는 채팅 목록을 날짜별로 그룹화하는 기능이 있습니다. 이 기능은 2024년 연말까지는 문제없는 듯 보였지만, 2025년 새해가 되면서(ㅋㅋ ㅠㅠ 바보...) 2024년 그룹이 2025년 1월보다 위에 표시되는 문제가 발생하였습니다. 내가 기대하는 정렬오늘어제02월 (2025년 2월)01월 (2025년 1월)2024년 (이전 연도는 한 그룹으로 묶음) 현재 코드에서 발생하는 문제2024년이 2025년 1월보다 위에 정렬되는 것이 문제가 됩니다. 2. 문제 원인 분석이전에는 Dictionary 형태로 반환한 뒤, Dictionary의 Key인 문자열(오늘,..
-
[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는 그저 개발 언어 중 하나일 뿐, 모든 언어는 비슷한 흐름을 가지고 있다고 생각했습니다. 지금까지 여러 언어를 접하며, 처음엔 어색하고..
-
[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..
-
[Project/Android] `도전! 환경 지킴 방범대` 프로젝트 1 (Feat. 소개)Daily/Project 2023. 12. 12. 23:47
재활용을 위한 어플 `도전! 환경 지킴 방범대` 프로젝트를 시작했습니다. 👩👩👧👦 1. 함께 하는 팀원 프로젝트는 3명의 인원이 함께 진행하고 있습니다. (11월 8일에 기획을 시작하여, 벌써 프로젝트를 진행한 지 약 한 달이 되었네요...🫢) Android 개발자, 김한슬 (블로그의 주인, Three) iOS 개발자, 이완재 (꼼재, GGmj) 백엔드 개발자, 심봉교 (잘자심봉교, Sim) 🕹️ 2. 왜, 그리고 어떻게 진행하는가? "개인이 재활용을 재밌게 하는 방법이 무엇이 있을까?" 개인이 게임을 통해 재활용과 플로깅을 쉽고 재미있게 접할 수 있도록 만들고자 시작하게 되었습니다. 또한 자신이 원하는 스택으로 개발을 진행해 보자 시작했으며, 구글 스토어 및 앱 스토어에 출시하기 위해 시작하였습니..