본문 바로가기

Programming/iOS

(34)
[Xcode Tip] SVN 저장소 파일 Git허브로 저장하기 xcode 소스의 형상관리는 SVN으로 관리를 했었습니다. 점차 Git으로 형상관리를 변경하는 추세입니다.Git의 강력한 관리 기능을 사용하기 위해서, SVN에 저장된 소스를 Git허브로 저장하는 하고 사용하는 방법에 대해서 알아보겠습니다. 1. Git 허브에서 레파지토리 생성New repogitory를 선택하고, 생성합니다. 2. SVN 주소를 import 하기- 레파지토리를 생성하고 나서는 기존에 사용하던 SVN 주소를 복사해옵니다.- Preparing 작업이 완료되면, Git에 Svn의 데이터가 복사가 완료됩니다. 3. Xcode에서 Git 허브 로그인 하기- Xcode를 열고 preference > Account 를 선택하고 Git 계정을 입력합니다.- Xcode를 다시 열고 Clone an ex..
[ xcode Tip] 하드용량 확보하기 맥으로 ios 개발을 하다보면, 용량 부족이라는 문제를 맞이하게 됩니다. 프로젝트를 여러개 진행하면서, xcode가 업데이트되면서 저역시 256G 용량의 하드가 10G 남는 초유의 사태가 벌어졌는데요. 처음에는 정크파일을 없애고, 필요없는 파일들을 지워봤지만, 눈에 띄게 용량이 늘어나지 않았습니다. 바로 문제는 xcode에 있었습니다. xcode에서 아카이브를 만들때 원본파일이 저장되고, 새로운 버전의 시뮬레이터가 업데이트 될때마다 용량은 늘어났습니다. 또한, DerivedData 에 빌드에 대한 정보가 저장되는데, 이폴더 역시 다 지워도 프로젝트 빌드시 문제가 되지 않습니다. 지금 바로, ios 개발을 하시는 분들은 맥북 용량이 부족하다면, 필요없는 파일을 없애, 쾌적한 개발을 하시길 바랍니다. 1. ..
[Objective-C Tip] Key-Value Observing 개발을 하다보면, 변경사항을 통보받을때, 감시객체를 등록하면, 편리합니다. 감시객체를 등록하고, 동작이 일어나는 부분에서 변경을 해주면, 변경된 결과를 바로 받아볼수 있습니다. 1. 감시객체 등록 [obj addObserver:selfforKeyPath:@"enable"options:NSKeyValueObservingOptionNew| NSKeyValueObservingOptionOld context:NULL]; ______________________________________________________________________________________________________________________ 2. 감시객체 변경 - (IBAction)observer:(id)sender { U..
[Objective-C Tip] UImage 이미지 리사이징 프로젝트 하실때, UIImage를 많이 사용합니다.이번 시간에는 UIImage의 관련된 팁을 드리고자 합니다. * 크기 변경- (UIImage *)resizeImage:(UIImage *)image width:(int)width height:(int)height{ CGImageRef imageRef = [image CGImage]; CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef); //if (alphaInfo == kCGImageAlphaNone) alphaInfo = kCGImageAlphaNoneSkipLast; CGContextRef bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGe..
[Objective-C Tip] 메모리 관리 Objective-c 의 메모리 관리에 대해서 알아보겠습니다. -alloc : 해당 객체에 메모리를 할당하고 레퍼런스 카운트를 1 올립니다.-retain : 해당 객체의 레퍼런스 카운트를 1 올립니다.-copy : 해당 객체의 복사본을 만듭니다. 그리고 복사본의 레퍼런스 카운트를 1 올립니다.-release : 해당 객체의 레퍼런스 카운트를 1 낮춥니다.-autorelease : 정해지지 않은 시점에 해당 객체의 레퍼런스 카운트가 -1 낮아집니다. * 규칙 1. 블록 내에서 alloc, retain, copy의 수와 release, autorelease 수가 동일해야 합니다.2. factory 함수를 사용해 생성한 객체의 경우는 대부분 autorelease로 반환됩니다. 따로 release를 할 필요가 ..
[Objective-C Tip] 디클레어 프로퍼티 Objective-c의 디클레어 프로퍼티에 대해서 알아보겠습니다. 프로퍼퍼티 속성은 readonly, readwrite, assign, retain, nonatomic 가 있습니다. + readonly 읽기 전용 ->읽기 쓰기 속성 ,읽기만 가능 getter메서드만 가능 + readwrite 읽기 쓰기 가능(기본값) ->읽기 쓰기 속성 ,단순하게 값을 대입 (기본설정)+ assign 대입으로 값을 설정(기본값)->값의 설정 방식+ retain 객체를 보존(retain)해서 설정 ->값의 설정 방식 ,이전에 가리키고 있던 객체를 release하여 메모리에서 제거+ nonatomic 매소드는 배타적으로(독점적으로) 실행하지 않아도됨 -> 멀티쓰레드 환경에서 사용하지 않는 산 접근자를 더 빠르게 동작 하게함 ..
[iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 3부 (필터) [iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 1부 (cocospods)[iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 2부 (카메라)[iOS 강좌] 오픈소스로 쉽게 카메라 앱 만들기 - 3부 (필터) 이번 시간에는 카메라의 필터를 변경할 수 있도록하고, 촬영된 사진을 휴대폰의 저장을 해보겠습니다. 먼저 GPUImage에서 제공하는 필터를 카메라에 추가해보도록 하겠습니다. 많은 필터를 제공하고있는데요. iOSBlurFilter를 적용해보겠습니다. iOSBlurFilter 선택해서 해당 클래스를 들어가보면, 프로퍼티값을 확인 할수 있는데요. 설정된 필터에서 값만 변경해주면, 나만의 맞춤 필터를 완성할 수도 있습니다. -------------------------------------------..
[iOS 개발팁] 빌드 환경 분리하기 Xcode에서는 Plist 파일을 이용하여 빌드 환경을 분리하여 관리할 수 있습니다. 프로젝트를 진행하다보면, 개발환경, 운영환경에 맞게 App를 빌드하여 테스트를 진행할 경우 들이 있습니다. 프로젝트를 처음 생성하면, 아래와 같이 info.plist 파일이 생성이 됩니다. 프로젝트에 대한 설정값들을 관리 할수 있는 파일인데요. 프로젝트 파일을 선택하기 되면, 아래와 같이 현재 연결된 타겟으로 정보를 입력할수 있습니다. Bundle identifier 에 번들명을 입력하게 되어있습니다. 여기에 TARGETS를 추가하면, 다른 번들을 추가 할수 있습니다. Duplicate를 통해 타겟을 복사합니다. 복사한 뒤 dev 라고 이름을 변경합니다. 그후 "Edit Sceme.." 선택하고, 하단에 "Manage ..