iOS

iOS

[iOS] Build Configuration 설정 방법

Build Configuration은 코드 수정없이 각 서버 및 조건 별로 배포가능하도록 환경설정 방법입니다. 천천히 순서대로 진행해보도록 하겠습니다. 먼저 프로젝트를 생성 합니다. 아래 튜토리얼 프로젝트 이름은 ConfigurationPractice라고 생성했습니다. 1. Configuration 생성 Project -> Info + 선택 후 원하는 항목 duplicate Beta라는 이름으로 생성 2. Scheme 추가 추가 후 Manage Schemes를 선택하면 아래와 같은 화면이 나타나고, 현재 프로젝트명만 보입니다. 왼쪽 하단에 있는 + 을 선택하고 이름을 넣어줍니다. 저는 ConfigurationPractice-Beta라는 이름으로 생성했습니다. ConfigurationPractice-Bet..

iOS

[iOS] Cell Life Cycle

간단한 프로젝트를 진행하면서 TableView의 DataSource, Delegate, DataSourcePrefetching에 대한 개념과 알아보고 Cell이 어느 시점에 호출되는지 자세히 알아 보도록 하겠습니다. 먼저 아래와 같은 화면 모양의 간단한 프로젝트를 만들어 보도록 하겠습니다. ViewController.Swift import UIKit class ViewController: UIViewController { let data = Array(0.. Int { return data.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = table..

iOS

[iOS] 코드사이닝, 인증서, 프로비저닝 프로파일이란?

애플 개발자라면 꼭 알아야할 코드사이닝, 인증서, 프로비저닝 프로파일의 개념 및 실행 과정에 대해 알아보도록 하겠습니다. 인증서 과정을 처음 접하시는분들의 입장에선 까다롭고 복잡하여 포기하시는 경우를 종종 봤습니다. 그런데 왜 굳이 애플은 인증서를 만들어야될까요? 애플은 자신들의 기기에 어떠한 프로그램이 동작하기위해선 인증을 받아야되는데 이 부분에 대해 인증을 받기 위해서 인증서를 요청해야됩니다. 또한 앱을 앱스토어에 배포하거나 인앱결제를 할때도 iOS 꼭 필요한 절차입니다. 먼저 애플 인증서가 무엇이고, 어떻게 만드는지에 대해 알아 보도록 하겠습니다. 애플 인증서 애플만이 자신들의 기계(하드웨어)에 소프트웨어(앱, 프로그램 등)이 동작하도록 허락하기 때문입니다. 실제로 앱이 실행될때마다 애플로부터 인증..

iOS

[iOS] 파일시스템(File System)

디렉토리구조에 대해 알아보겠습니다. 파일 디렉토리 구성 iOS Data Storage Guidelines 파일 접근 시, String대신 URL사용 권장 디스크에 파일을 읽고 쓰는것이 컴퓨터의 가장 느린 작업 중 하나. 메모리에 파일 캐싱은 항상 빠른 속도를 보장하지 않는다. 왜냐하면 메모리 사용량 증가로 또 다른 성능이 악화될 수 있고, 시스템 자체 캐시와 중복 가능성이 있기 때문입니다. 파일 시스템 내 하나의 디렉토리 실행가능한 파일, info.plist, 각종 Resources(이미지, 사운드, strings등)등을 할때 그룹화 let bundlePath = Bundle.main.bundlePath print("Path:",bundlePath, "\n") // 출력 Path: /Users/seung..

iOS

[iOS] ContentOffset과 ContentInset

ContentOffset과 ContentInset의 개념에 대해 알아보겠습니다. ContentOffset contentOffset은 point입니다. 즉, x, y좌표를 의미하는것으로써 스크롤을 한다는 것 자체가 contentOffset이 변한다는 의미입니다. contentOffset이 변하면 스크롤된다! 스크롤뷰에 이미지를 올려놓은 화면입니다. 스크롤뷰의 contentOffset을 조절해보겠습니다. 예제는 간단하게 y좌표만 150씩 더해보도록 해서 y좌표를 이동시키는 버튼입니다. @objc func moveContent() { let newOffset = CGPoint(x: scrollView.contentOffset.x, y: scrollView.contentOffset.y + 150) scrollV..

iOS

[iOS] ScrollView

ScrollView 이벤트와 델리게이트에 대해 알아 보겠습니다. ScrollView 화면의 크기보다 더 큰 콘텐츠의 크기를 가진 컨텐츠를 표현하기 위한 뷰 입니다. 스크롤 뷰의 크기와 콘텐츠의 크기 뷰의 크기는 프레임(frame)을 이용해서 뷰 자체의 크기를 얻어 올 수 있습니다. 스크롤 뷰의 경우에는 콘텐츠의 크기와 스크롤 뷰에 나타나는 위치 정보를 다뤄야합니다. Content size : CGSize 구조체를 사용하고 콘텐츠의 크기를 설정 Content offset : CGPoint 구조체를 사용하고 콘텐츠가 스크롤 뷰에 표시되는 위치를 설정합니다. 곧 Bounds의 X좌표, Y좌표를 의미하는 것으로서 스크롤을 한다는 자체가 ContentOffset이 변하는 것입니다. Content inset : U..

iOS

[iOS] Photos Framework

Photos framework와 사용법에 대해 알아 보겠습니다. Photos 프레임워크 UIImagePickerController는 사용자가 카메라나 앨범에서 직접 사진을 고르는 방식으로 이미지를 얻어 오는 반면, photos 프레임워크는 UI를 이용한 사용자의 조작 업이 iOS에서 iCloud사진 라이브러리를 포함하여 사진 및 비디오에 직접 접근할 수 있습니다. 포토 프레임 워크를 사용하려면 Photo Framework를 직접 추가 합니다. 그 이후 import를 작성 합니다. import Photos Photos 프레임워크 모델 클래스에는 PHAsset, PHAssetCollection, PHCollectionList 3가지가 있습니다. 1. 애셋과 콜렉션 PHAsset 이미지, 비디오, 라이브 포토..

iOS

[iOS] iOS Realm이란?

Realm대한 사용방법과 CRUD 예제를 만들어보면서 Realm에 대해 알아보겠습니다. Realm이란? 오픈소스로 모바일에 최적화된 데이터베이스 라이브러리 입니다. ORM이 아닌 데이터컨테이너 모델을 사용하고 데이터객체는 Realm에 객체로 저장됩니다. Performance 프로젝트 만들기 간단한 CRUD예제를 만들어 보면서 Realm에 대해 알아 보도록 하겠습니다. 만들화면 먼저 코코아팟에 pod ‘RealmSwift’ 추가해줍니다. Realm? Realm은 객체 컨테이너로 동작하기 때문에 Object를 생성 해야됩니다. 클래스(class)로 구성되며, @objc dynamic을 변수 앞에 적어줘야됩니다. 준비 과정 모델링의 데이터 변수 선언 Realm 변수 선언 var items: Results? /..

iOS

[iOS] UIDevice

UIDevice에 대해 다뤄보도록 하겠습니다. UIDevice UIDevice 클래스에 접근하면 해당 디바이스의 정보를 알 수 있습니다. 디바이스의 정보를 가지고 어떤방향으로 개발을 해야될지 알아 보겠습니다. 디바이스 이름 / 모델 / 화면 방향 등 OS 이름 / 버전 인터페이스 형식 (phone, pad, tv 등) 배터리 정보 근접 센서 정보 멀티태스킹 지원 여부 접근 방법 let device = UIDevice.current system버전 보기 예를 들어 현재 iPhone의 버전이 11.4.2라고 했을때 11은 Major, 4는 Minor(public), 2는 Minor(non-public)와 같이 Major, Minor (public), Minor (non-public)가 존재합니다. 또, 앱 ..

iOS

[iOS] GCD(Grand Central Dispatch)

GCD(Grand Central Dispatch) 개념에 대해 알아 보겠습니다. GCD GCD의 개념에 대해 알아 보겠습니다. 초기에는 마이크로 프로세서의 clock 속도를 높이는 방식으로 연산 속도를 높였습니다. 그 후 점점 증가하는 전력 소비와 발생하는 열로 인해 단일 프로세서의 clock 속도 증가에 한계를 맞게 되었으며, 이는 특히 모바일에서 영향을 크게 받게 되었습니다. 따라서 CPU 벤더들은 단일 CPU 의 클럭 속도를 개선하는 대신 여러 개의 CPU 를 탑재하는 형태로 효율을 높이는 것에 초점을 맞추게 되었고, 프로세서의 클럭 속도가 빨라지면서 자연스럽게 소프트웨어도 빨라지던 예전과 달리 멀티 코어 프로세서에서는 멀티 프로세서에게 어떻게 잘 프로그램의 동작을 배분하는 지가 중요해졌습니다. G..

jinnify
'iOS' 카테고리의 글 목록 (2 Page)