난이도: 하


@available(iOS 8.0, *) DeviceOwnerAuthenticationWithBiometrics


@available(iOS 9.0, *) DeviceOwnerAuthentication


앱에 잠금을 하기 위해서 예전에는 직접 구현을 하거나 오픈소스를 가져다 쓰는 등으로 구현을 했었는데 iOS 8.0과 9.0에서 LocalAuthentication 라이브러리를 통해서 Touch ID와 Passcode를 지원하고 있다.


8.0에서는 Touch ID를 이용한 것만 지원하니 8.0에서 Passcode를 지원하려면 오픈소스를 가져다 쓰는게 좋긴하다.


Add Library

Project > Targets > Build Phases > Link Binary with Libraries > + > LocalAuthentication.framework 



사용방법

// 1.
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthentication, error: &error) { 
// 2.
  context.evaluatePolicy(.DeviceOwnerAuthentication, localizedReason: "Authentication is required for access",
    reply: {
      (success: Bool, error) in
        if success {
          print("success")
        }
    }
  )
}
  1. 디바이스가 DeviceOwnerAuthentication을 지원하는지 검사한다. .DeviceOwnerAuthentication를 적용하면 Touch ID가 기본적용 되며, 실패시 PassCode를 입력 가능하다. 
  2. 지원을 하면 실행을 해서 한다. 성공 값이 Bool으로 반환된다. 


Passcode를 여러번 틀리면 알아서 1분 지연을 시켜준다. 그 이후에 또 실패를 하면 5분 등으로 추가적으로 시간이 더 지연된다.




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


난이도: 하


오랜만에 iOS 코딩을 하려니 많은게 바뀌었다. 


UIAlertView는 9.0에서 아래와 같이 deprecated 되었고, UIAlertController를 사용하는 것을 권장한다.

@available(iOS, introduced=2.0, deprecated=9.0, message="UIAlertView is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleAlert instead")


그리고 UIActionSheet도 UIAlertController를 사용하면 된다. 참고로 UIActionSheet는 아래와 같이 iOS 8.3에서 deprecated 되었다.

@available(iOS, introduced=2.0, deprecated=8.3, message="UIActionSheet is deprecated. Use UIAlertController with a preferredStyle of UIAlertControllerStyleActionSheet instead")


사용법

let alertController = UIAlertController(title: "Test Title", message: "Test Message", preferredStyle: UIAlertControllerStyle.Alert)
// .Alert .ActionSheet

let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (UIAlertAction) -> Void in
  print("Okay")
}
alertController.addAction(okAction)

let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (UIAlertAction) -> Void in
  print("cancel")
}
alertController.addAction(cancelAction)

let destructiveAction = UIAlertAction(title: "Destructive", style: UIAlertActionStyle.Destructive) { (UIAlertAction) -> Void in
  print("Destructive")

}
alertController.addAction(destructiveAction)

self.presentViewController(alertController, animated: true) { () -> Void in
  print("presentViewController")
}

Alert과 ActionSheet의 구분은 preferredStyle로 구분을 해주면 되고 나머지는 동일하다. 



Alert과 ActionSheet 공통으로 주의해야 할 점은 .Default와 .Destructive는 여러 개를 .addAction해서 추가 해도 되는데, .Cancel은 2개 이상 만들어서 self.presentViewController 하면 crash 된다.


UIAlertController를 만들고, 각각의 UIAlertAction을 추가해주면 된다. 워낙 간단하니 다른 설명은 하지 않도록 하겠다.



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


외국에서 물건을 구입하는 과정에서 결제만 되고 물건이 도착을 안하는 과정에서 문제가 생기면 딱히 소비자들이 할 수 있는 방법이 없다. 특히 언어적 문제로 인해 누군가 대신 처리를 해주면 좋은데 그 과정에서 가장 좋은게 신용카드 사에 있는 분쟁 신청. PayPal 에도 클레임/분쟁이라는게 있다. 


내가 직접 판매자와 연락을 해서 하는게 아니라 결제 회사가 대신 해준다. 이걸 진행 하려면 증거 자료가 필요하다. 약간의 스크린 캡쳐 등 물건을 구매 했다는 증거. 오더 넘버 등이 있으면 된다. 


최근 1년간 2건의 문제가 생겼었다. 


1. 타오바오

작년에는 타오바오에서 샤오미 체중계가 엄청 저렴해서 부서 사람들 몇 명과 함께 4대 금액을 결제를 했다. 문제는 결제가 되고 다음날 확인 하는 과정에서 패스워드를 몇 번 잘 못 입력하는 과정에서 계정이 멈춰 버렸다. 해결을 하기 위해서는 뭔가 신분 입증을 해야하는데 중국 회사 이기 때문에 언어적 문제 등 해결 기미가 안 보였다. 


gmail.com 으로 사용해서 그런지 결제, 오더 관련 정보는 메일로 전혀 오질 않았다. 아뿔싸. 배대지로 도착하기만을 기다렸으나 그것 마져도 도착하지 않았다. 아무런 정보가 없었기에 더더욱 힘들었다. 그리고 판매자도 뭔가 문제가 있어 보였다. 


약 7-8만원이라는 돈이 그냥 하늘로 날아갈 것 같았지만, 신한카드 사에 들어가 보니 물건을 잘 못 받거나, 아에 못 받거나 하는 등 문제가 생길경우 분쟁 신청을 대신 해주는 것이 있었다. 


원래 증거 같은것을 보여줘야 하는데, 딱히 증거가 없었기에 일단 일정한 양식에 의해서 입력을 했고 며칠 뒤에 신한카드에서 연락이 왔다. 진행을 해보겠지만 아무런 증거가 없기 때문에 못 받을 수도 있다라는 이야기도 했었다. 그리고 60일 이상 걸릴 수도 있다고 한다. 


신기하게 한달 이상이 지나고 나서 신한카드에서 연락이 와서 물건을 안보냈고 하면서 대금 회수가 되었다는 것이다. 그리고 며칠 뒤에 취소 결제가 승인 되었다. 


2. 테슬라

최근에 테슬라에서 아이폰 케이스를 팔아서 구입하는 과정에서 paypal으로 결제를 하는 과정에서 카드 승인은 떨어지고, 인증 과정에 문제가 생겼다는 alert 이 뜨면서 주문 완료 진행이 되질 않았다. 당연히 카드사에서 돈을 빼가지 않을 거라고 생각을 하고, 그냥 다른 카드로 일반 카드 결제를 진행했고 주문 완료 확정이 되었다. 


그리고 뭔가 예전에 경험이 있어서 일단 캡쳐를 했다. 테슬라 싸이트와 paypal 결제 관련 캡쳐. 그리고 바로 테슬라 고객센터 메일로 너희들 제대로 주문 진행 안되었으니 혹시나 결제 되었으면 결제 된거 취소 해달라고 했다. 


하지만 다음달에 돈을 빼갔다. paypal에 자세히 보니 2번의 결제 시도가 있었고 한번은 실패, 한번은 성공을 했다라는 로그가 있었다. 


젠장. 내돈 24만원. 


그리고 이전에 메일 보냈던 내용과 동일 하게 또 보냈다. 아무런 응답이 없다. 다른 분이 주문 과정에서 잘 못 된 문의를 했더나 얼마 지나지 않아서 답변을 받았다고 한다. 그래서 또 보냈다. 아무런 응답이 없다. 


그래서 paypal에 분쟁 신청에 가서 진행을 했다. 그리고 신한카드사에도 동시에 분쟁 신청을 진행을 했다. 


며칠이 지나도 paypal은 깜깜 무소식이다. 하지만 신한카드사는 적극적으로 나의 의견을 들어 주었다. 그리고 며칠 뒤에 paypal로 부터 분쟁 완료가 떴고 대금이 회수 되었다는 메세지를 받았다. 


paypal에서 처리한 분쟁이 성공한것인줄 알았는데 알고 보니 신한카드사에서 paypal로 클레임 건게 그게 먹혀 들었다 보다. 


일단 문제가 생기면 각종 증거자료를 캡쳐를 잘 해놔야 한다. 물건이 발송이 되어 버리면 판매자의 의견이 더 중요하게 작용하기 때문이다. 


아무튼 문제가 없는 즐거운 지름 되시길 바란다. 이상하게 꼬이면 적은 돈이라도 아까운데 큰돈이면 사람이 미친다. ㅠㅠ



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

Anime Expo Plays Japanese Gymnast Game! 이 영상의 요약판을 페이스북에서 접하였다. 그리고 생각이 든 것은. 한.번. 구.현.해.보.자. 


얼핏 보면 원리는 간단해 보였다. 그냥 회전 시키다가. 버튼을 누르면 손을 놓기. 그래서 오프라인으로 한 번 주문해서 정확한 원리를 분석해보고 느끼고 싶어서 구입을 하려고 열심히 찾았다. 박스에 테츠보-쿤이라고 적힌 것을 읽을 수 있어서 일단 Tetsubo-kun 영어로 검색 해보니 $70 정도 가격이다. 이게 뭐라고 8만 5000원이야. 배송비까지 하면 약 10만원. 


그래서 일본 아마존에서 てつぼうくん으로 검색을 하니 물건이 나온다. 


大車輪てつぼうくんで神業炸裂 대활약 철봉군! 신기작렬?


http://www.amazon.co.jp/タカラトミー-大車輪てつぼうくん-【日本おもちゃ大賞2014-コミュニケーション・トイ部門-優秀賞】/dp/B00KMPA9N6/ref=sr11?ie=UTF8&qid=1451627865&sr=8-1&keywords=大車輪てつぼうくん

3,980엔, 무게는 1kg이며 박스 크기는 생각보다 크다. 한국까지 배송을 받으려니 이것도 한 5.5만원 정도 들어갈 것 같다. 부피가 생각보다 커서 무피 무게가 적용되면 ... 6-7만원. 이게 뭐라고.


그래서 유투브를 더 찾아보았다. 사람들은 열심히 사서 리뷰를 하니까... 

   

이 영상을 보니 대충 감이 왔다. 원리는 아주 간단하지만, 생각과는 달리 간단하지 않았다.


노란 버튼을 누르면 다리가 접힌다. 얼핏 보면 봉이 돌아가서 사람이 돌아가는 것 처럼 보이지만 7분 24초 쯤에 노란버튼을 누를 때 살펴보면 다리가 접힌다. 그네 탈 때 다리를 접었다가 폈다가 하면서 그네를 타듯이 비슷한 물리 원리 이다. 그래서 회전을 할 때 노란 버튼을 적절히 잘 눌러야 한다. 


빨간 버튼을 누르면 철봉에서 손이 때어진다. 이 때 회전각으로 사람이 날아가는데 팔은 위로 펴진 상태가 고정인가 보다. 다리는 평상시에는 굽혀지지 않나보다. 날아가더라도 팔-몸통-다리 이렇게 곧게 펴져있다.


당연히 다리쪽에 무게 중심이 있어야만 다리가 먼저 바닥에 닿을 것으로 추측은 되나 확실하게 모르겠다. 발바닥에 굵은 벨크로가 있어서 착륙 지점에 닿기만 하면 무조건 착지가 된다. 아닐 경우는 그냥 철퍼덕. 


자 원리는 간단하다. 팔과 몸통은 어차피 붙어 있기 때문에 한 부분이라고 생각하면 된다. 그리고 다리 쪽에 질량을 좀 더 주고, 다리와 몸통은 Joint? 로 연결하면 될려나... 



2D로 만들면 옆 모습으로 밖에 보이지 않는다. 딱히 느낌이 살지 않을 수 있다. 하지만 3D로 구현을 하려면 최소한 Unity는 배워야 하는데, Unity는 몇 번 시도했다가 나에게 맞지 않아서 매번 실패. 


일단 2D로 프로토타입이나 한 번 만들어 보자. 딱히 엄청난 물리 효과가 필요한 것도 아니고 대충 해놓으면 물리 엔진에서 이것 저것 다 구현해주니 어렵지는 않아 보인다. Joint로 하는게 맞나? 


철봉과 손, 다리와 몸통만 연결하고 버튼을 누르면 다리만 왔다 갔다 하면 몸은 알아서 회전 할 것이다. 


corona, cocos2d, SpriteKit 으로 만들면 될 것이다.


자 이번에는 Swift도 써먹을겸해서 SpriteKit으로 다시 해보자.

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


구매링크 : Transcend 512GB MLC SATA III 6Gb/s 2.5" Solid State Drive 370 (TS512GSSD370S) 

SSD 512GB MLC 제품 입니다. $110.99 한국직배시 $5.69 배송료 입니다. i-parcel 로 보내질 가능성이 있어서 배송기간이 약 10일정도 걸립니다. 의미 없는 국내 최저 쿠폰 적용 안된 정가 21만원 정도 한답니다.







라이트닝 딜이라서 지금 5시간 남았습니다.      끝...


10% 할인 비씨카드 선착순 2만명. 혹시나 2만명 밖으로 되어서 적용 안될 수도 있습니다.


우리카드 1150원 고정환율


http://amzn.to/1TplX5J 아마존 기프트 100달러 구매시 5달러 프로모션 추첨 이벤트가 있습니다. 링크로 들어가서 Click here to qualify 버튼을 눌러서 당첨이 되면 아래  Reload Your Balance 버튼을 눌러서 100달러 기프트 카드를 결제하면 $5 프로모션을 제공합니다. 기프트 카드 $5는 현금성이고, $5 프로모션은 할인성이여서 천지 차이입니다. 205달러 제품을 구입할 때 프로모션 코드가 적용되면 $200가 되어서 면세 내 구매가 가능해집니다.

$5 이벤트가 적용 안되더라도 기프트 카드를 구입하는게 안전할 수도 있습니다. 가끔 배송 직전에 카드 승인을 내는 경우도 있다고 합니다. 이벤트 날짜 이후 결제가 되면 할인 적용이 안됩니다. (아닐 수도 있습니다)


전 위 3개 모두 적용되었습니다. 

  • $100 * 1150원 * 0.9 == 103,500원. + $5.
  • 11.68 * 1200원 = 13,900원.
  • 117400원 * 1.01(카드 수수료) = 118,600원


국내 직배시에는 개인통관고유부호를 꼭 입력하시고, 우편번호는 꼭 신 우편번호를 넣는걸 잊지마세요. 


그리고 아이파슬 배송은 배송을 국내 이후로는 국내 배송사에서 배송인계가 되어서 배송을 하는데 잘못하면 국내 배송번호를 몰라서 세관에 걸려서 어디가 문제인지 모를 때가 있습니다. 


http://www.sagawa-sgx.com/sgx/trackeng.asp 여기에서 트래킹을 하면 국내 인계 배송번호까지 나중에 나옵니다. 


아마존 직배를 하면 좋은 점은, 초기 불량이 생기면 아아존에서 책임지고 환불 및 교환을 해줍니다. 추후 AS는 국내에서 불가하며 외국으로 보내면 수리는 가능하다고 합니다.


3개 모두 적용시에는 약 12만원 미만에 구입할 수 있습니다. 카드가 없다고 하면 약 14만원에 구입 할 수 있습니다. 


구매링크 : Transcend 512GB MLC SATA III 6Gb/s 2.5" Solid State Drive 370 (TS512GSSD370S) 




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