본문 바로가기

ALL

(65)
한눈에 보는 애플 'Spring Forward (2015)' 행사 국내시간으로 오늘 새벽 2시에 애플의 'Spring Forward' 행사가 있었습니다.발표 순으로 핵심적인 내용만 간략하게 정리하도록 하겠습니다. 가장 먼저 애플 티비를 언급했습니다. 새로운 서비스로 "HBO NOW"라는 서비스를 런칭하고 HBO CEO가 나와 잠시 발표를 했습니다.여전히 새로운 제품은 없었고 기존 재품을 $99 -> $69로 인하했습니다. HealthKit의 연장선으로 ResearchKit을 발표했습니다. 병원에서 진행하는 실태조사를 불특정 다수에게 실시할 수 있으며 이미 미국내 병원과 협력중에 있습니다. 이 ResearchKit은 OpenSource로 누구나 쓸 수 있게 공개된다고 합니다. 다음으로 새로운 맥북이 발표되었습니다. 새로운 맥북은 수년간 디자인 변경이 없던 '맥북 에어'의..
요세미티 10.10.3 beta, '사진' 앱을 이용한 사진 정리법 살아온 세월이 길어지면서, 또 인화된 사진보다 파일로 된 사진이 더 많아지면서 사진을 정리하는 방법에 대해 여러 시도를 해왔습니다.맥을 사용하기 전에는 연도별, 월별, 이벤트 별로 폴더를 만들어 정리했었고,맥을 사용하고부터는 아이포토를 이용해 사진을 정리하고 있었습니다.아이포토를 쓰면서 장점은 파일이 하나로 관리되 백업이 편하다는 거였고 단점은 이벤트들이 폴더로 정리되지 않아 월별로 정리했던 이벤트를 한 화면에서 봐야했던 점이였습니다. 연도별로 이벤트를 생성하니 이게 언제 어디서 찍었는지에 대한 정리가 한눈에 되지 않았습니다.하지만 iOS8에서 '아이클라우드 사진보관함'이 생기면서 사진 내부의 메타데이터를 통해 연도별, 월별로 정리되고 아이폰으로 찍은 사진의 경우 gps정보까지 붙어있으니 같은 달에 찍은..
개인적인 갤럭시 S6 소개 영상 감상 후기 애플뉴스만 뿌리다가 오늘 새벽 삼성의 갤럭시 S6/edge 발표 소식에 어떤게 나왔나~ 해서 발표 영상을 봤습니다.많이 웃었습니다. 재미있는 부분이 많더라구요 ㅎ ( * 아 무슨 이유에선지 영상이 비공개로 전환되었습니다. ㅠㅠ ) 우선 오늘 새벽 Samsug Galaxy Unpacked 2015 영상에서 갤럭시S6의 소개 부분입니다.영상이 시작하니 너무 익숙한 모습이 나옵니다. 이걸 어디서 봤나 했더니... 애플의 맥프로 소개영상과 분위기가 흡사합니다. 초반에만 그런거 같습니다. 물론 갤럭시s6의 소개는 후반부로 갈수록 달라보이긴 하지만 메탈소재와 글로시한 디스플레이를 강조하기 위해 사용한 표현방법인 것 같습니다. 갤럭시s6가 출시되기 전에 유출됐던 사진에 의하면 아이폰6와 매우 유사한 하단과 곡면구조를..
애플, 3월 9일 (현지시간) 스페셜 이벤트 개최 현지 시간으로 지난 26일, (한국시간으로는 오늘 새벽이군요) 애플이 스페셜 이벤트를 개최한다는 초대장을 발송했습니다.3월 9일 오전 10시 (한국 시간으로는 10일 새벽2시), 장소는 샌프란시스코 예바 부에나 센터 (Yerba Buena Center)에서 개최됩니다. 이번 발표에서는 당연히.... 애플 워치가 발표되겠죠. 이미 지난 이벤트에서 대략적인 기능과 디자인은 모두 소개 되었습니다만 발표 후 출시까지 몇개월이라는 시간이 있었으므로 어떤 변화가 있을지 주목됩니다.아마도 실제 출시는 워치킷(WatchKit)이 들어있는 iOS8.2 베타의 정식 버전이 출시되면서 판매에 들어갈 가능성이 유력하나,iOS8.3베타가 동시에 진행되고 있는 만큼 Xcode6.2로 먼저 정식 개발툴만 공개한 후 이어 iOS8...
[Mac App] 5월부터 '가비지 컬렉션' 사용한 맥 앱 ARC로 전환 필수 애플이 지난 20일, 맥 앱에서 ARC로의 전환을 필수로 하겠다고 개발자 사이트에 공지했습니다. iOS의 경우 처음부터 가비지 컬렉션을 지원하진 않았습니다만, Objective-C를 공부하신 분이라면 Obj-C도 자바 등과 같이 '가비지 컬렉션'을 지원한다는 것을 알고 계실껍니다. 간단하게 두가지를 설명드리자면, '가비지 컬렉션' 방식은 프로그램이 실행 중일때 사용되는 전체 메모리를 읽어 필요없는 메모리를 삭제하는 방식으로 동적으로 메모리를 관리하는 것입니다. 때문에 '가비지 컬렉션'을 위해 항상 일정 메모리를 차지했어야 합니다. 애플도 이러한 단점을 알고 자원이 한정적인 모바일 환경에서는 애초부터 가비지 컬렉션을 지원하지 않았습니다. 이와 달리, ARC(Automatic Reference Countin..
ARC 특정 리소스에만 적용/해제 하기 외부라이브러리를 참조할 때 ARC를 사용하지 않은 라이브러리를 심심치 않게 만나게 됩니다.이 라이브러리를 ARC로 변환시키는 방법도 있지만 그리 안전한 방법은 아니기 때문에 특정 원하는 라이브러리파일에만 ARC를 해제하는 방법을 사용합니다. 프로젝트 설정에서 Build Phases -> Compile Sources에 보면 프로젝트에서 컴파일되는 항목들이 나타납니다. 이 부분을 더블클릭하여 Compiler flags를 추가합니다. -fno-objc-arc : ARC 적용-fobjc-arc : ARC 해제
UUID 키체인(Keychain)저장 iOS5부터 사용되던 UUID 값은 보통 서버와 연동하여 기기를 식별하는데 쓰인다. 그런데 이 UUID값이 기기의 고유값은 맞지만 생성할때마다 값이 바뀌어 앱을 처음 실행할때 저장해 두고 불러오는 방식으로 쓰인다.하지만 앱을 삭제할 경우 앱내 저장된 값도 같이 삭제되니 이를 방지하기 위해 기기내 저장소인 키체인(Keychain)을 이용한다.(키체인에 저장된 값도 공장초기화할경우에는 사라진다.) 키체인 API의 경우 Security.framework에 정의되어 있다고는 하지만 사용하기가 까다로워 애플에서 KeychainItemWrapper 라는 클래스를 제공한다. (Download)하지만 이 파일이 업데이트 안된지 좀 된 모양이라 ARC를 지원하지 않는다.프로젝트에서 ARC를 지원하지 않도록 예외처리하거나..
iOS Font Name 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
AlertView 띄우기 (iOS7,8)- Swift Swift에서 AlertView나 ActionSheet를 뿌리는데 UIAlertController가 사용되는데ㅡ 이게 iOS8에서만 잘 돌아가고 iOS7에서는 안된다;;; 디바이스 버전대로 다르게 타는 메소드를 하나 만들어봤다. 버튼을 추가로 달고 싶다면 속만 떼어서 만들면 될듯. func showAlert(Msg: NSString, viewController : UIViewController) -> Void { let floatVersion = (UIDevice.currentDevice().systemVersion as NSString).floatValue if (floatVersion >= 8.0){ println("showAlert_swift") let alert = UIAlertController..
Swift Singletons 구현 방법 스위프트에서 싱글톤을 구현하는 방법은 objec-c보다 더 간단하다 import UIKit private let _SingletonSharedInstance = HYCommon_Swift() /* 내 클래스 이름*/ class HYCommon_Swift: NSObject { class var sharedInstance: HYCommon_Swift { return _SingletonSharedInstance } } 실제 추가되는 코드는 아래와 같다.private let _SingletonSharedInstance = HYCommon_Swift() /* 내 클래스 이름*/ class var sharedInstance: HYCommon_Swift { return _SingletonSharedInstance }..