ios

· iOS
M1 맥북 + Xcode 15 환경에서 SwiftLint를 적용해보면서 겪은 문제에 대해 정리한 글입니다. 아래 설명된 오류처리와 함께 추가적인 설정과 SwiftLint 설치 및 적용 과정도 정리한 내용을 보고 싶다면 여기를 참고해주세요 SwiftLint 적용하기 | Notion 1. SwiftLint 설치 healthy-degree-cc2.notion.site ‼️ 만약 M1 이상 맥북 + Xcode 15 이상 버전의 개발 환경이라면 아래에서 소개드릴 2가지 문제를 반드시 해결해주어야 SwiftLint를 정상적으로 사용할 수 있는 것 같습니다. 🚧 Homebrew로 설치 시 Apple Silicon에서 SwiftLint를 찾지 못하는 문제 Apple Silicon(M1, M2 등)에서 Homebrew를..
· iOS
문제 API 호출을 하려고 하는데 문제 없는 URL String을 URL 객체로 변환하니까 자꾸 nil이 반환되는 문제가 있었다. 저번에는 됐는데 왜 된거지 암튼 검색해보니 주소에 한글이나 스페이스 등이 들어갈 때 nil이 될 수 있다고 한다. 역 이름 인자로 한글이 들어가기 때문에 이런 문제가 생겼던 것 같다. 해결 ➡️ 인코딩을 해주면 해결할 수 있다. .addingPercentEncoding을 사용하면 인자로 지정된 CharacterSet에 명시되어 있지 않은 모든 Characters를 백분율로 인코딩된 문자로 바꿔준 뒤, String? 값으로 반환해준다. let encodedURL = arrivalUrl.addingPercentEncoding(withAllowedCharacters: .urlQue..
· iOS
Core Motion의 공식 문서와 WWDC23 영상을 보고 공부한 내용을 기반으로 정리한 내용입니다. 공식문서 https://developer.apple.com/documentation/coremotion Core Motion | Apple Developer Documentation Process accelerometer, gyroscope, pedometer, and environment-related events. developer.apple.com 관련 WWDC 영상 (2023년) https://developer.apple.com/wwdc23/10179 What’s new in Core Motion - WWDC23 - Videos - Apple Developer Learn how you can u..
· iOS
AppDelegate.swift : 앱의 실행 주기(Life Cycle)를 관리SceneDelegate.swift : 사용자 인터페이스(User Interface)의 실행 주기(Life Cycle)를 관리ViewController.swift : 화면에 보이는 뷰에서 처리하는 내용의 스위프트 코드 소스를 담고 있는 클래스 파일 (뷰 하나당 클래스 하나 대응)Main.storyboard : 앱의 내용을 시각적으로 쉽게 프로그래밍 할 수 있도록 해주는 파일Assets.xcassets : 앱의 아이콘을 보관하는 저장소LaunchScreen.storyboard : 앱이 실행될 때 잠시 나타나는 스플래시 화면의 스토리보드Info.plist : 앱이 실행되는 데 필요한 정보를 저장하고 있는 파일
· iOS
Xcode를 사용한 iOS 개발 중 API KEY를 숨기는 방법에 대해 알아보자 네이버 영화 API를 사용하기 위해 발급받은 2개의 KEY값을 숨겨보겠다. X-Naver-Client-Id X-Naver-Client-Secret 1. Xcode -> New File -> Property List 파일 생성해주기 2. 생성된 plist 파일에 String 타입의 key를 만들어주고, value에는 값을 넣어준다. .gitignore에 해당 plist 파일을 세팅해주고 push를 하고 나면 처음에 들어간 임의의 값이 들어간 상태까지만 추적을 하기 때문에 먼저 임의의 value 값을 넣어준다. 이 때, value에 실제 키값을 바로 넣어주어도 상관은 없는데, 이 때는 .gitignore에 해당 plist 파일을..
· iOS
REST API 통신을 간편하게 하도록 지원해주는 라이브러리인 Alamofire를 사용해보기 위해 라이브러리를 설치해보았다. 1. 먼저 코코아팟(CocoaPods)을 설치해준다. 코코아팟이란 스위프트 프로젝트의 종속성 관리자이다. sudo gem install cocoapods 2. 터미널 창에서 프로젝트 폴더로 이동해준 뒤 pod을 적용해준다. pod init ※ 만약 pod 적용 중 FrozenError 발생 시에는 다음과 같이 루비 업데이트를 해준다. sudo gem update xcodeproj 잘 적용이 되었다면 아래와 같이 프로젝트 폴더에 Podfile 파일이 생성될 것이다. 3. 생성된 Podfile 파일에 아래 내용을 추가해준다. pod 'Alamofire', '~> 5.5' 4. 라이브러..
· iOS
뷰 컨트롤러 사이에 값을 주고받는 방식은 2가지 개념으로 나누어진다. 직접 전달 방식 (동기 방식) 간접 전달 방식 (비동기 방식) 직접 전달 방식 (동기 방식) 뷰 컨트롤러 --> 뷰 컨트롤러로 데이터를 직접 전달하는 방식이다. 주로 영속적으로 값을 저장할 필요가 없는 화면 전환 시에 사용된다. ex) 선택 카테고리 값을 전달받는 쪽의 뷰 컨트롤러가 전달받을 값의 명세를 모두 파악하고 이를 대입할 변수를 미리 생성해 두어야 한다. [ 전달 과정 (VC1 --> VC2) ] VC1에서 VC2로 전달할 값을 준비한다. VC2에서는 값을 대입받을 프로퍼티를 정의한다. VC1에서는 VC2의 인스턴스를 직접 생성하거나, 이미 생성되어 있는 인스턴스의 참조를 읽어온다. VC1에서는 2. 에서 정의한 VC2 인스턴..
· iOS
iOS의 화면 전환 방식은 크게 4가지 정도로 나눌 수 있다. 뷰 컨트롤러의 뷰 위에 다른 뷰를 가져와 바꿔치기 (Container View Controller 사용) 뷰 컨트롤러에서 다른 뷰 컨트롤러를 호출하여 화면 전환 내비게이션 컨트롤러를 사용하여 화면 전환 화면 전환용 객체 세그웨이(Sequeway)를 사용하여 화면 전환하기 iOS에서 화면 전환은 다음의 2가지 특성을 가진다. 다음 화면으로 이동하는 방법과 이전 화면으로 되돌아가는 방법이 다름 화면 전환 방식에 따라 이전 화면으로 되돌아가는 방법이 다름 화면 전환 기법 1. 뷰를 이용한 화면 전환 (비추천) 하나의 뷰 컨트롤러 안에 두개의 루트 뷰를 준비하고, 상태에 따라 뷰를 적절히 교체해주는 방식이다. 뷰를 완전히 바꿔치기 할 수도 있고, 기..
· iOS
시스템 프레임워크는 사용자가 앱 아이콘을 터치하여 실행했을 때 이를 인식하고 앱을 구동해준다. 그러면 최초에 main() 함수가 실행되고, 함수 내부에서 UIApplicationMain() 함수를 호출하면 앱이 구동된다. (스위프트에서는 @main 어노테이션을 찾아 해당하는 클래스를 실행) 커스텀 코드 쪽에서는 앱 델리게이트 클래스에 작성된 application(_:didFinishingLaunchingWithOperations:) 메소드가 시스템에 의해 자동으로 호출된다. AppDelegate 클래스의 application(_:didFinishingLaunchingWithOperations:) 메소드에는 앱이 처음 시작될 때 실행될 코드를 작성해줄 수 있다. 이어서 시스템 프레임워크의 이벤트 루프가 실..
· iOS
View Controller (뷰 컨트롤러) 앱의 화면을 관리하기 위한 코드 작성 (이벤트 발생 시 수행될 코드 작성), 일반적으로 화면의 개수만큼 필요하다. Storyboard (스토리보드) 앱에 사용되는 여러 화면을 하나의 파일에 모아 설계할 수 있도록 지원하는 UI 설계용 파일 형식 코드 없이 UI/UX 화면 구성 가능 앱의 전체 구조를 쉽게 파악 가능 Seque (세그웨이) 스토리보드를 통해 화면 전환 시 출발지와 목적지를 직접 지정하는 방식을 세그웨이를 이용한 화면 전환이라고 한다. 두개의 뷰 컨트롤러 사이에 연결된 화면 전환 객체를 세그웨이 라고 함. 마우스 우클릭 드래그, 혹은 ctrl + 드래그로 화면 연결 UIViewController UIKit 프레임워크에 정의되어 있는 클래스로, 기본..
kybeen
'ios' 태그의 글 목록