iPhone 6s가 출시되면서 iOS 9에는 3D Touch와 관련된 기능이 많이 추가 되었다. 그중 하나가 Home Screen Quick Actions 기능이다. 퀵 액션, 단축 버튼과 같은 기능을 한다. 홈 스크린에서 아이콘을 꾹! 힘있게 누르면 퀵 엑션을 지원하는 앱은 바로 가기 리스트가 나타나고 없는 앱들은 탭틱 진동이 살짝 일어난다. 6s 미만의 아이폰에서는 지원하지 않는다.


앱에 3D Touch 관련 기능을 추가할 때 가장 쉬운것이 퀵 액션이다. 코드 몇 줄만 작성을 하면 기존에 앱에 코드 구조를 바꿀 필요가 없이 퀵 액션을 추가할 수 있다.


퀵 액션은 코드 상에서는 Shortcut Item이라고 부른다. 숏컷 아이템은 크게 두 가지로 나뉜다. 

  1. Static Shortcut Item
  2. Dynamic Shortcut Item

스태틱 숏컷 아이템은 plist에서 설정을 하고 변경할 수 없다. 하지만 앱에 정의 되어 있기 때문에 최소한 한번을 실행하지 않고 설치만 했을 때에도 퀵 액션을 만들 수 있다.


반면에 다이나믹 숏컷 아이템은 앱이 실행되고나서 UIApplication.sharedApplication().shortcutItems에 할당 하기 때문에 최소한 한 번 은 실행을 해줘야 다음에 나타나게 된다. 앱을 업데이트 하거나 재설치 할 때도 마찬가질수 도 있다. 하지만 고정되지 않고 원하는대로 아이템을 변경할 수 있다. 


애플의 기본앱인 사진기 앱과 전화 앱을 비교해 보면 그 차이를 알 수 있다. 사진기 앱은 기능이 딱 4개로 정해져 있다. 하지만 전화 앱은 Favorites에 설정한 상단 4명을 보여줄 수 있다. 퀵 액션에 보여주고 싶으면 리스트의 순서를 바꾸면 된다. 


원래 하고 싶었던 것은 앱을 실행 하지 않고 퀵 액션만 부르면 랜덤값으로 계속해서 변경을 해서 보여주고 싶었다. 하지만 그 방법은 없는 것으로 보인다. 최소한 한 번 이상의 앱이 실행되어야 계속 해서 랜덤값으로 할당 해 줄수 있다.


가장 간단하게 Dynamic ShortItem을 만드는 방법을 알아보도록 하자. 


앱상 어디에서 구현해도 상관은 없지만 최소한 한 번은 호출 되어야 보이기 때문에 func application(application:, didFinishLaunchingWithOptions:) 에 구현을 하면 되긴한다. 하지만 앱이 첫 번째로 실행 되었을 때만 호출이 되고 그 다음에는 호출 되지 않으므로 지속적인 변경을 위해서는 applicationDidBecomeActive(application:)에 넣으면 다음에 앱이 열였을 때도 이 메소드가 호출이 되어서 다시 숏컷 아이템을 재 할당할 수 있다.


UIApplicationShortcutItem을 만들고, UIApplication.sharedApplication().shortcutItems 에 넣으면 끝이다. 정말 간단하지 않는가? 


글로벌 변수로 스트링 값을 가진 배열을 하나 만들었다.

var randString : [String] = ["김밥", "라면", "만두", "김치찌개", "로브스터", "냉면", "비냉", "떡볶이"]


그리고 앱이 실행되면 ShortItem에 할당할 아이템을 아래와 같이 구현한다.

func applicationDidBecomeActive(application: UIApplication) {
  // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
  print("applicationDidBecomeActive")

  let count = UInt32(randString.count);
  
  // 1.
  let item1 = UIApplicationShortcutItem.init(type: "type1", localizedTitle: randString[Int(arc4random_uniform(count))], localizedSubtitle: "test", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Compose), userInfo: nil)
  
  let item2 = UIApplicationShortcutItem.init(type: "type2", localizedTitle: randString[Int(arc4random_uniform(count))], localizedSubtitle: "test", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Compose), userInfo: nil)
  
  let item3 = UIApplicationShortcutItem.init(type: "type3", localizedTitle: randString[Int(arc4random_uniform(count))], localizedSubtitle: "test", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Compose), userInfo: nil)
  
  let item4 = UIApplicationShortcutItem.init(type: "type4", localizedTitle: randString[Int(arc4random_uniform(count))], localizedSubtitle: "test", icon: UIApplicationShortcutIcon(type: UIApplicationShortcutIconType.Compose), userInfo: nil)
  
  let shortcutItems : Array = [item1, item2, item3, item4]
  
  // 2.
  UIApplication.sharedApplication().shortcutItems = shortcutItems

}
  1. shortcutItems에 넣을 UIApplicationShortcutItem을 하나 만든다. type은 퀵 액션으로 호출 되었을 때 구분을 위한 것이다. localizedTitle은 텍스트로 들어갈 값이고 localizedSubtitle은 밑에 추가 설명글이다. 옵셔널이다. icon은 시스템에 내장된 아이콘을 사용해도 되고, 아니면 커스텀 아이콘을 사용해도 된다. userInfo에는 추가적으로 들어갈 정보이다. 옵셔널이다.

  2. 최대 4개의 퀵 액션을 지원하므로 4개의 아이템을 배열에 넣고 shortcutItems에 할당한다.

이렇게 하고 빌드&런을 하면 아이콘을 꾹 누르면 퀵 액션이 보여진다. 그리고 실행했다가 다시 누르면 아이템들이 변경되는 것을 확인 할 수 있다. 


하지만 숏컷을 눌러서 이제 그 type에 맞는 액션을 호출 하게 하려면 AppDelegate에서 func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void)를 구현해줘야 한다. 


func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
  
  switch shortcutItem.type {
  case "type1":
    print("type1")

  case "type2":
    print("type2")
  
  case "type3":
    print("type3")
  
  case "type4":
    print("type4")
    
  default:
    print("test")
  }
}

앞에 UIApplicationShortcutItem.init에서 type으로 설정한 것이 shortcutItem.type이다. 이것으로 구분하여 각각에 퀵 액션에 대한 것을 구현 할 수 있다.


리스트 순서와 아이콘의 위치는 3D Touch Human Interface Guide Line을 참조하도록 하자.


홈 화면에서 아이콘이 상하좌우 위치에 따라서 퀵 액션(ShortCut)의 순서(order)와 아이콘의 위치가 다르게 나온다. 아이콘에서 가까운쪽이 순위가 높은거고, 아이콘의 위치는 아이콘에 가까운곳에 숏컷 아이콘이 오게 된다.


이상 아주 간단하게 퀵 액션 만드는 방법을 살펴 보았다.




저작자 표시 비영리
신고
Posted by KraZYeom


아이폰은 CPU논란에 이어서 스토리지 NAND 타입이 TLC냐 MLC냐 논란도 있다. MLC면 더 좋겠지만 아이폰에서 미친듯이 토렌토를 돌리고 지우고 쓰고 하는 것도 아니니 크게 문제가 되지 않지만 소비자는 이왕이면 더 좋은 제품을 원한다. 


이전 iPhone 6, iPhone 6+에서도 크게 논란이 되었다. 또 삼성 제품이냐 그 외 제품이냐의 차이도 있긴 하다. 


체크 하는 방법은 http://www.pgyer.com/tlccheck 링크에 가서 앱을 하나 설치 하면 된다. 중국 회사로 보이니 개인정보 등등이 꺼려지면 안 까는게 맞다. 

비밀번호를 넣어야 인스톨 할 수 있는데 0000 비밀번호를 넣고 홈 버튼을 눌러서 바탕 화면에 돌아오면 앱이 설치 된다. 


애플 앱스토어에서 받은 앱이 아니기 때문에 앱을 터치해서 실행을 하면 믿을수 없는 개발자라고 팝업창이 뜬다. 


실행하기 위해서는 믿을수 있는 인증서라고 한번 인증을 해줘야 한다. 설정(Settings) > 일반(General) > 프로파일 & 디바이스 관리(Profiles & Device Management) 로 가면 아래 Enterprise Apps 에 Yunnan science and Technologu Co., Ltd.가 있고 선택 후, Trust 버튼을 누르면 확인하는 팝업 창이 하나 뜬다. 또 Trust 버튼을 누르면 된다. 한번 확인 후에는 바탕 화면에서 앱을 지우거나 Delete App 버튼을 눌러서 앱을 삭제하면 된다. 


다시 앱을 실행하면 아래 그림과 같이 간단한 폰의 정보가 나오고 NAND 정보까지 나온다. 128기가 제품이여서 그런지 당연히 TLC로 나온다. 벤더는 싼디스크. 


뽑기 논란이 많다. 성능의 차이도 있긴 하지만 아이폰 6s, 6s+ CPU 제조사 확인 방법 에서도 말했지만, 각 부품은 미달 되는 제품이 아니니 크게 걱정 할 필요가 없다. CPU 논란이 있었을 때도 이곳저곳에서 테스트 했지만 성능의 차이는 1-2%이고 일반적으로 사용할 때는 거의 문제가 되지 않는다고 했었다. 맥 처럼 크게 파워풀하게 돌리는 앱도 없고 엄청난 영향은 없으니, 그냥 빨리 사서 잘! 사용하면 가장 좋다.





​ ​​마음에 드셨으면 아래 추천 버튼을 꾹 눌러주세요. :-)


저작자 표시 비영리
신고
Posted by KraZYeom


아이폰 6s와 6s+가 미국에서 출시 된지 거의 3주가 흘러간 시점에 드디어 한국에서 아이폰을 출시한다고 공지했습니다. 미국 출시 후 정확하게 5주 뒤 딱 36일만입니다.


보통 전파 인증에 3주가 걸리니 딱 3주가 흐른 시점에 출시 날짜를 밝힌거니 딱 맞아떨어지네요. 거기에 통신사 준비, 물량 준비 기간 등등을 포함하면 얼추 저정도의 시간이 필요합니다.  iPhone 출시일 점치기 참조


한국에서 그나마 배대지를 통해서 구입 할 수 있는 나라는 미국, 일본, 호주, 홍콩 정도 입니다. 그래서 가격을 한 번 뽑아봤습니다. 한국이 얼마나 더 비싼지 더 싼지 알아보기 위해서요. 


iPhone 6s, 6s+ 각국 가격비교에서 정상적인 합법적인 방법으로 각국 세금 포함 * 환율(송금보낼 때) * 카드 수수료(1%) + 부가세(10%) + 관세(0%) 를 계산해서 보면 아래 그림과 같습니다. 

그 결과는 미국을 제외 하고는 한국이 가장 저렴합니다. 미국 > 한국 > 홍콩 > 호주 > 일본 순으로 저렴합니다. 


가장 저렴하게 구입 할 수 있는 방법은 미국의 세금 없는 지역에서 구매를 해서 배대지를 통해서 한국으로 보내고 부가세를 내면 됩니다. 만약 사업자의 경우에는 부가세를 나중에 환급 받을 수도 있으니 더 좋습니다.


물론 출장, 여행 중에 불법적으로 부가세를 안 내고 들고 오면 가장 저렴하긴 합니다. 하지만 여행 경비, 식비 등등이 포함 되니 단순 가격 순위 비교에는 포함 시키지 않겠습니다. 


직접 들고 올 경우에는 $600을 초과한 금액에서만 부가세가 붙기 때문에 부가세가 많이 붙지 않을 겁니다. 3-5만원 정도. 하지만 다른 물건을 샀을 경우에는 또 추가적으로 붙으니 부가세는 10%를 다 붙인다고 생각하면 될 것 입니다.


또한 각국 통신사를 끼고 사면 가격이 또 엄청나게 달라집니다. 예전에 누군가 분석한 글에 의하면 이것도 한국이 가장 저렴 하다고 합니다. (자료를 찾으면 추후 업데이트 하도록 하겠습니다.)

  • 넥서스 기준 509000/379, 아이폰 기준 920000/649 으로 하면 애플의 가격이 $1당 75원 비쌉니다.





​ ​​마음에 드셨으면 아래 추천 버튼을 꾹 눌러주세요. :]


저작자 표시 비영리
신고
Posted by KraZYeom


이번 아이폰 6s 계열의 큰 이슈 중 하나는 CPU 제조사 이슈가 아닐까 싶다. 


A9 CPU Identifier 개발자 사이트에 접속해서 앱을 바로 다운로드 받고 인증서를 확인 하는 간단한 과정을 거치면 되었지만, 애플에서 10월 1일 인증서를 막아버렸다. 그래서 웹에서 설치하는 방법은 안된다. 


대신에 개발자인 경우에는 Github:CPU-Identifier에서 소스코드를 크론받고 컴파일 하면 된다. 앱을 실행하면 바로 삼성 CPU인지 TSMC(Taiwan Semiconductor Manufacturing Company) CPU인지 확인 할 수 있다. 



그리고 부품 차이의 문제에 대한 단상

일반 서비스를 개발 할 때도 서버는 2중화 3중화 작업을 한다. 만약 문제가 생기면 바로 스위칭을 해야하기 때문이다. 


애플과 같이 정말 대량(수천만대 이상)으로 하드웨어를 제조할 때에는 부품을 한 곳에서 수급하지 않는다. 왜냐하면 한곳에서 수급했다가 그 제품에 문제가 생기면 그 제품은 더 이상 판매 할 수 없다. 그래서 보통 2곳 정도(혹은 그 이상)에서 부품을 수급 받는다. 부품을 받을 때에는 조건이 주어지고 그 조건을 만족하는 부품이면 된다.


하지만 문제는 여기서 발생한다. 


맥북 프로 SSD의 경우에서도 지금의 아이폰 6s와 같은 사태가 발생했었다. 삼성 SSD가 도시바나 다른 경쟁사?의 SSD의 성능보다 월등하게 좋았다. 그렇다고 다른 경쟁사 제품이 기준에 못 미치는 것은 아니다. 그러면 애플이 거부했을 것이고 다른 제조사를 찾을 것이다. 


메모리, CPU 그리고 SSD(는 잘 모르겠지만 컨트롤러에서 성능이 앞서는 걸까?)와 같은 반도체 제품은 누가 뭐라고 해도 전세계 TOP이다. 


디스플레이는 (맥북 프로에서는 LG가 잔상효과 때문에 문제가 생기긴 했지만) LG가 더 잘 만든다고 생각한다.


CPU 2곳, SSD or 저장장치 2곳에 MLC, TLC 2종류, Display 2곳,  조합이 2 * 2 ( * 2 ) * 2 이렇게 되기 때문에 뽑기라는 말이 생기게 되었다. 


삼성과 LG가 더 뛰어나기 때문에 다른 제품이 안 좋은건 아니지만 상대적으로 안 좋아보이는 것이다. 


왜인지를 잘 모르겠지만 고급 제품으로 갈 수록 좋은 제품을 사용하는 것 같다. 이전에는 6+에서 TLC를 써서 문제였지만.


성능에 정말 큰 차이를 보일까? 에휴, 잘 모르곘다. 하지만 사람 심리상 같은 값으로 더 좋은걸 원하니 어쩔수 없는... 


난 삼성 CPU이다. -_ -;



저작자 표시 비영리
신고
Posted by KraZYeom

한국에 10월 23일 (금) 출시 발표 했습니다. 

한국, 미국, 일본 등 아이폰 6s, 6s+ 가격 비교 여길 참조하세요. :]


드디어 오늘 9월 25일, 애플에서 iPhone을 출시하였습니다. 호주, 일본, 홍콩, 중국, 미국 등 1차 출시국에서 동시에 출시 되기 때문에 시차로 인해서 호주에서는 벌써 판매가 되고 있습니다. 그 다음이 일본, 중국, 홍콩 이런 순이 아닐까 싶습니다. 그래서 미국이 가장 늦는 편에 속합니다. 

저는 iPhone 6s+ 로즈골드 128GB 제품을 미국에서 예약을 했고, 배대지를 통해서 받을 예정입니다. 

[사진 출처 : 애플 홈페이지]


그래서 사람들이 가장 궁금해 하는 가격표를 살짝 뽑아봤습니다. 일본 온라인 스토어에는 소비세 8%가 안된걸로 알고 있는데 맞는지 모르겠네요.


iPhone 6s, 6s+ 각국 가격 비교 구글 닥스에 미국, 일본, 호주, 홍콩.. 그리고 한국 예상가격을 뽑아봤습니다. 



미국, 일본은 직접가서 구매했을 가격도 뽑았습니다. 미국의 경우는 세금이 없는 지역도 있고, 일본의 경우는 6개월 이하로 여행을 할 경우 소비세 8%를 현장에서 바로 빼주므로 많이들 가서 구입해 오시니까요.


구입시 각 나라별 특징

  • 미국 : 오레곤, 델라웨어 등에서는 부가세 0%
  • 일본 : 현장에서 구입할 때 6개월 이하 여행객은 소비세 8% 빼줌, 카메라 셔터음 있음
  • 홍콩 : 홍콩 시민카드? 가 필요하다고 함. 
  • 호주 : 세계에서 가장 빨리 출시 되나 거리가 멀고.. 이미 부가세 포함되어 있음


한국에서 출시하기 전에 먼저 구입하고 싶으신 분들은 위 표 및 특징을 참조해서 구입에 도움이 되었으면 합니다. 배대지나 직접 들고 오실경우에는 부가세 내는게 원칙이니 참고하세요. 속이다가 걸리면 평생 족쇄가 될 수 있습니다.


한국에서는 언제 출시 될지 모르겠지만 조만간 10월 달 내로 출시 하지 않을 까 싶습니다.  iPhone 출시일 점치기 표를 보면 10월 24일 또는 31일쯤 나오지 않을 까 생각합니다.


지금 환율이 아주 많이 올라서 생각보다 비싸게 나올 가능성이 있습니다. 출시전 가장 저렴하게 사는 방법은 미국 부가세가 없는 지역 사는 것입니다. 가장 비싸게 사고 싶으시면 프랑스, 영국에서 사면 가장 비싸게 살수 있습니다. ... 그리고 나중에 브라질에서 구입을 하면 넘사벽으로 구입을 또 할 수 있습니다. 


어서 추석이 끝나서 받았으면 하는 바람이네요. :]



저작자 표시 비영리
신고
Posted by KraZYeom