📂 ROOT

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)
aab 포맷으로 빌드한 앱을 스토어 배포 전 테스트 할 일이 있어서 apk 포맷의 설치 파일이 필요했다 그래서 aab에서 apk를 추출할 순 없을까라는 의문에서 찾은 방법을 공유합니다 본 포스팅은 MacOS 기준으로 작성되었습니다. 1. bundle tool 설치 brew install bundletool 번들에서 apk로 변환을 위해 bundletool을 다운받습니다 2. 변환 bundletool build-apks --bundle=app-release.aab --output=release.apks bundle : 변환할 bundle 파일을 명시합니다 output : apks 포맷으로 지정해줍니다 이렇게하면 aab와 같은 경로에 apks 파일이 생겼을텐데 파일 포맷을 apks ➝ zip으로 변환한 뒤 ..
category_list_image
차니 ☻
2021.12.03
(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. Hooks Guide https://cordova.apache.org/docs/en/10.x/guide/appdev/hooks/ Hooks Guide - Apache Cordova Hooks Introduction Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. Cordova hooks allow you to perform special activities around cordova comman cordova.apache.org 프로젝트에서 커맨드가 실행된 시점..
category_list_image
차니 ☻
2021.11.12
(0)
1. 개요 회사(xcode 13.1)에서 생성한 프로젝트가 집(12.3)에서 열리지 않았다 내용은 명료하다 현재 xcode 버전과 프로젝트 xcode 버전이 호환이 안돼서 열지 못 한다는 내용.. 2. 해결방법 Xcode 13.1에서 생성한 프로젝트이니 설정 값을 바꾸면 되지않을까 싶어서 프로젝트를 뒤적거리다 방법을 찾았다 프로젝트 우클릭 → 패키지 내용 보기로 들어간다 그러면 위 세 가지 항목들이 보이는데 그 중 project.pbxproj를 열어준다 해당 파일에는 프로젝트 설정들이 들어가있다 이제 수정할 부분을 찾는다 objectVersion 이 값의 정확한 의미는 잘 모르겠다. 이 값을 다운그레이드 하지 않으니 계속 프로젝트가 열리지 않아서 낮춰주었다 CreatedOnToolsVersion 프로젝트..
category_list_image
차니 ☻
2021.11.11
(0)
1. 개요 A 맥북에서 작업하던 프로젝트를 B 맥북에서 빌드했는데 화면의 절반 가량이 사라져서 표시됨 2. 해결방법 프로젝트 → General 탭에서 App Icons and Launch Images 항목에서 Launch Screen File에서 storyboard를 설정해주었더니 해결됨
category_list_image
차니 ☻
2021.11.11
(0)
1. 개요 앱을 백그라운드 상태로 두고 스키마를 통해 앱으로 진입될 때 AppDelegate에서 WebView에 callback을 줌 callback에 alert가 있는 경우 CPU 사용량 100%로 치솟음과 동시에 앱 터치 먹통 2. 재현 NSString* str = [[NSString alloc] initWithFormat:@"alert('Test')"]; dispatch_async(dispatch_get_main_queue(), ^{ [topView stringByEvaluatingJavaScriptFromString:str]; }); topView는 WebView 인스턴스라고 가정 AppDeleage에서 alert('Test')를 호출함 이 때 화면에 alert가 나타나며 현상 재현 3. 해결 ..
category_list_image
차니 ☻
2021.11.03
(0)
차니 ☻
'분류 전체보기' 카테고리의 글 목록