📂 iOS

iOS
안녕하세요, 여러분! 차니 기술 블로그의 Channy입니다. 오늘은 Apple의 개발자 컨퍼런스인 WWDC 2023에서 발표된 주요 내용을 함께 살펴보려고 합니다. 현대 기술의 최전선에 서 있는 Apple은 어떤 혁신을 선보였을까요? 자세한 내용을 확인해보세요! iOS 17 및 iPadOS 17Apple은 iOS 17과 iPadOS 17에서 새로운 기능과 개선 사항을 선보였습니다. 이번 업데이트에서는 다중 작업 환경이 개선되어 사용자들이 멀티태스킹을 더욱 효율적으로 수행할 수 있게 되었습니다. 또한 향상된 Siri 기능과 더 빠른 성능이 기대됩니다. 사용자 경험을 향상시키는 다양한 변화가 예상되며, 더욱 편리한 모바일 환경을 제공할 것입니다. macOS 13 MontereymacOS 13 M..
category_list_image
차니 ☻
2023.08.08
(0)
iOS에서 위치 테스트 시 번거로운 점 안드로이드와 달리 Fake GPS 사용이 불가하기 때문에 실제로 발품을 팔아야함 실시간 로그를 볼 수 없기 때문에 문제 발생 시 원인 파악이 어렵다 사소한 수정이 발생해도 빌드 후 다시 발품을 팔아야함 하여 실제 단말기에서는 방법은 없었지만 시뮬레이터에서 가상 위치로 테스트할 수 있는 방법을 공유드립니다. 하기 예제는 애플 공식 문서를 참고하여 지오펜싱(Geofencing : 지리와 울타리의 합성어)으로 준비하였습니다. 1. 위치 서비스 코드 작성 1-1. Project - Signing & Capabilities 위치 사용을 위해 Background Modes 추가 후 Location updates 항목을 체크해주세요. 1-2. Info.plist 위치 권한 팝업..
category_list_image
차니 ☻
2021.12.27
(0)
1. Retain Cycle Retain Cycle이란 메모리가 해제되지 않고 유지되어 메모리 누수가 발생하는 현상을 말합니다. 클래스간 참조는 default로 강한(strong) 참조이기 때문에 각각의 클래스에서 참조가 발생한다면 강한 참조로 인해 메모리에서 해제되어야 할 상황에도 해제되지 않는 현상이 발생합니다. 이는 곧 메모리 누수(Memory Leak)로 이어집니다 2. Delegate 2-1. delegate를 weak var로 선언해야하는 이유 Retain Cycle이 발생하기 때문입니다. 이러한 상황을 방지하고자 하는 것이 delegate 참조 수준을 weak로 낮추는 방법입니다. 2-2. weak var 적용 적용 전 코드 import UIKit protocol CustomDelegate ..
category_list_image
차니 ☻
2021.12.07
(0)
iOS
오늘은 UIViewController의 Life-Cycle에 대해 알아보겠습니다 화면의 생애 정도로 봐도 될 것 같네요. 1. init 1-1. init(coder:) 스토리보드를 통해 ViewController 초기화 작업을 하는 메소드입니다. 1-2. init(nibName:bundle:) nib를 통해 init(corder:)를 대신하여 초기화 작업을 하는 메소드입니다. 2. loadView 뷰를 실제로 생성해서 메모리에 로드합니다. 스토리보드나 nib(xib)을 사용하지 않는다면 이 메소드를 오버라이드해서 뷰를 만들고 뷰계층을 구성해야 합니다. 3. viewDidLoad 뷰가 메모리에 로드된 이후 시점에 한 번만 호출됩니다. 뷰가 로드는 되었으나 화면에 뷰가 나타나진 않았으므로 빈 화면에서 발생합..
category_list_image
차니 ☻
2021.11.24
(0)
오늘은 iOS 앱 개발을 한다면 꼭 알아야 할 Delegate Pattern에 대해 정리해보겠습니다. 1. Delegate란 무엇인가? Delegate의 사전적 의미를 보면 대리자, 위임자 정도로 해석이 가능합니다 '뭘 위임한다는 거지...?' 라는 의문이 들 텐데, Swift에서는 Delegate 패턴을 통해 특정 기능을 위임하는 것이 가능합니다 한 객체에서 모든 프로세스를 처리하기엔 가독성, 코드 재사용성 측면에서 많은 손해를 보기 때문입니다 2. 사용법 이제는 델리게이트가 뭔지도 알겠고 왜 쓰는지도 알겠는데 어떻게 쓰는 걸까? delegate를 제대로 사용하기 위해서는 아래 내용들을 이해하고 있어야 합니다 프로토콜 (Protocol) : 대리자가 수신자에게 전달할 내용의 약속(규칙)입니다 수신자 (..
category_list_image
차니 ☻
2021.11.22
(0)
iOS
1. pod install pod 'GoogleSignIn' Podfile에 GoogleSignIn 디펜던시를 추가 후 pod install을 진행합니다. 2. ClientID 생성 구글 클라우드 플랫폼에서 프로젝트 생성 후 API 및 서비스 - 사용자 인증 정보 탭으로 이동합니다 사용자 인증 정보 만들기 > OAuth 클라이언트 ID로 이동합니다 OAtuh 동의 화면 설정이 안 되어있다면 순차적으로 진행하시면 됩니다 iOS 항목을 선택하여 생성합니다 클라이언트 ID가 생성되었다면 사전 설정은 완료입니다 3. 프로젝트 설정 프로젝트 설정 > URL Types에 발급받은 ClientID를 역순으로 적어줍니다 func application(_ application: UIApplication, open url..
category_list_image
차니 ☻
2021.11.17
(0)
iOS
오늘은 아이폰에서 갤러리 사진을 가져오는 방법에 대해 알아보도록 하겠습니다 UIImagePickerController는 시스템에서 제공하는 갤러리 이미지 픽커입니다 테스트를 위한 화면 생성 과정은 생략합니다! 1. UIImagePickerContoller 초기화 let picker = UIImagePickerController() self.picker.delegate = self self.picker.sourceType = .photoLibrary self.picker.modalPresentationStyle = .fullScreen 픽커를 사용할 ViewController에서 UIImagePickerController 인스턴스 생성 및 초기화를 진행합니다 delegate : 픽커에서 선택한 이미지 정보..
category_list_image
차니 ☻
2021.11.17
(0)
1. 개요 Custom Scheme 형식 custom-scheme://?callback=appCalled&message=앱 호출하기 custom-scheme : 앱의 스키마명을 의미합니다. 해당 값에 대한 설정은 다음 단계에서 진행합니다. ?{key}={value} : 앱을 호출할 때 전달할 파라미터입니다. &로 연결되어 계속 추가할 수 있습니다. Android iOS Difference iOS는 host가 없다 안드로이드와 달리 특정 ViewController를 열수 없고 단순 앱 호출이라는 점입니다. 물론 구현 방식에 따라 안드로이드와 동일하게 동작하게끔 구현할 수도 있습니다. 2. Custom Scheme 설정 Project - Info 항목 최하단에 URL Types 항목이 있습니다. Identi..
category_list_image
차니 ☻
2021.11.03
(0)
iOS
B2B에서는 꽤나 유용하게 쓸 수 있을 것 같아 공유드립니다. 알아본 바로 앱 내에서 인증서의 만료일을 가져올 수 있는 API는 존재하지 않습니다. 그렇기에 빌드 시 생성되는 embedded.mobileprovision 파일을 이용해서 만료일을 가져와 보겠습니다. 코드만으로 앱에서 만료일을 조회할 수도 있지만, 원리를 설명드리기 위해 아카이브를 통해 진행해보도록 하겠습니다. 바로 코드에 적용하실 분들은 1~3번은 건너뛰어도 무방합니다. 1. ipa 준비 앱을 아카이브하여 ipa 파일을 준비해줍니다. 2. ipa unzip unzip -q TEST.ipa 터미널에서 해당 경로로 이동 후 ipa 파일을 unzip 해주도록 합니다. 그러면 Palyoad 폴더안에 *.app 파일이 생겼을거에요 마우스 우클릭 후..
category_list_image
차니 ☻
2021.10.25
(0)
iOS
1. 개요ios-deployXcodeTestFlight 혹은 AppStoreDropbox별도 서버 구축 아이폰에서 ipa 설치를 위한 방법은 크게 5가지로 나눌 수 있을 것 같습니다.in-house 앱을 불특정 다수에게 배포가 필요한 상황이라면 4번 혹은 5번 방식을 사용할 수 있습니다. 오늘은 그 중 5번 방법을 활용해 ipa 파일을 배포하는 방법에 대해 알아보도록 하겠습니다. 2. 서버 준비2-1. apache httpd사용자가 접속할 수 있는 웹 서버를 열어주도록 합니다. 2021.10.22 - [OS/Mac] - [Mac] apache httpd로 웹 서버 구동하기 [Mac] apache httpd로 웹 서버 구동하기1. brew 설치 2021.10.13 - [OS/MacOS] - [MacOS] ..
category_list_image
차니 ☻
2021.10.22
(0)
1. 들어가기 전에 GCD를 공부하기 전에 우리는 Queue라는 자료구조를 알고있습니다. 먼저 들어온 놈이 먼저 처리된다.. 라는건데 매표소에 줄을 서서 티켓을 산다고 생각하시면 편합니다. 이걸 먼저 얘기하는 이유는 앞으로의 내용이 큐와 연관되어있기 때문입니다! 2. GCD와 Dispatch Queue GCD(Grand Central Dispatch)는 스레드에 대한 관리를 개발자가 아닌 OS에서 처리할 수 있도록 애플에서 개발한 것 입니다. GCD에선 Dispatch Queue를 통해 작업을 관리합니다. Dispatch Queue에는 크게 두 종류로 나뉘는데 아래에서 조금 더 살펴볼게요. 2-1. Serial Queue - Main Queue(main) Serial Queue 등록된 작업을 순차적으로 ..
category_list_image
차니 ☻
2021.10.14
(0)
iOS
오늘은 macOS에서 iPhone 미러링 하는 방법에 대해 알아보겠습니다. Android처럼 공유된 화면을 직접 조작하는 등의 방식은 OS 정책상 불가하지만 단순히 미러링 개념으로는 접근 가능합니다. 1. QuickTime Player 앱을 실행시키면 QuickTime Player가 표시될텐데 파일 - 새로운 동영상 녹화로 이동합니다. 그러면 디폴트로 맥북 카메라에 본인 모습이 비칠텐데 너무 당황하지 마시고 녹화 아이콘 우측 버튼을 눌러서 mac과 연결된 폰으로 변경해주면 됩니다. 2. Replica 7일 동안 무료 체험으로 사용할 수 있는데, 7일 이후에도 광고보면서 그냥저냥 사용 가능합니다. ** mac과 폰이 같은 네트워크(와이파이)에 연결되어있어야 합니다 ** 3. TeamViewer 앱스토어에서..
category_list_image
차니 ☻
2021.10.14
(0)
차니 ☻
'iOS' 카테고리의 글 목록