반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 받은 트랙백

글 보관함


Posted on . Written by


애플이 iOS 5.0 을 발표했을 때 나왔던 편리한 기능은 native 트위터 지원이었습니다. 이전에는 그 기능은 유저를 인증하고 tweet 을 post 하기 위해 REST API 를 call 하고 하는 것들은 앱이 처리할 일이었었습니다. 코로나의 트위터 샘플 앱이 하듯이 말이죠.


iOS 5.0 에서는 device setting 에 아예 트위터 credential을 입력할 수 있게 됐습니다. 그러면 Email, SMS, Print 등과 함께 트위터가 Sharing screen 에 나타나게 되죠. 이렇게 함으로서 Twitter 를 관리하기 아주 쉽게 되었습니다. 지난해 12월 말에 저희는 이 native 트위터 기능에 접근할 수 있는 기능을 제공했었습니다.





Using “Native” Twitter


코로나는 native.showPopup() API 를 call 함으로서 iOS 의 built-in Twitter 기능에 접근할 수 있도록 합니다. 이 API call 은 native 인터페이스를 통해 이메일과 SMS 메세지를 보낼때 사용하는 것과 같은 겁니다. 또한 native device의 store 와 rating service들에 접근할 때 사용하는 그 API 이기도 하구요.

코딩은 아주 간단합니다.

native.showPopup( "twitter", options )


여기서 options 는 Lua table로 tweet 을 위해 필요한 정보들 입니다. 사용되는 파라미터들은 아래와 같습니다.

  • image — post 하길 원하는 이미지에 대한 form { baseDir=, filename= }
  • message — a string that prepopulates the message.
  • listener — popup 이벤트를 지원하는 리스너
  • url — post 하고 싶은 URL. URL string들이 올 수도 있음.


message option을 사용하는 가장 기본적인 코딩

local options = {
   message = "Hello Twitter world!"
}
native.showPopup( "twitter", options )


트윗들은 140 글자로 글자 수가 제한돼 있죠. 언제 tweet 이 제한 글자수를 다 채우는지 그리고 유저가 그 트윗을 commit 하거나 cancell 했는지를 알고 싶으면 이 유저의 action을 체크하기 위해 call back handler 를 정의하실 수 있습니다.

local function tweetCallback( event )
   if ( event.action == "cancelled" ) then
      print( "User cancelled" )
   else
      print( "Thanks for the tweet!" )
   end
end

local options = {
   message = "Hello Twitter world!",
   listener = tweetCallback
}
native.showPopup( "twitter", options )

업로드하길 원하는 이미지를 포함 시킬 수도 있습니다.


local function tweetCallback( event )
   if ( event.action == "cancelled" ) then
      print( "User cancelled" )
   else
      print( "Thanks for the tweet!" )
   end
end

local options = {
   message = "Hello Twitter world!",
   listener = tweetCallback,
   image = {
      baseDir = system.DocumentsDirectory,
      filename = "mypic.jpg"
      }
}
native.showPopup( "twitter", options )


마지막으로 그 트위터에 넣을 하나 이상의 URL 들을 포함 시킬 수도 있습니다. 이 링크들은 popup screen에 나타나지는 않을 겁니다. 트윗이 post 될 때 나타나게 되죠.


local function tweetCallback( event )
   if ( event.action == "cancelled" ) then
      print( "User cancelled" )
   else
      print( "Thanks for the tweet!" )
   end
end

local options = {
   message = "Hello Twitter world!",
   listener = tweetCallback,
   url = { "http://coronalabs.com", "http://apple.com" }
}
native.showPopup( "twitter", options )


이제 여러분 앱은 전달될 트윗을 popup screen 을 통해 보여줄 겁니다. 여기서 유저는 send 하거나 cancel 할 수 있습니다. iOS 가 이메일이나 SMS 메세지를 처리하는 것과 비슷한 과정입니다.


이 native 기능은 iOS 5.0 이상의 버전에서만 작동하는 것을 잊지 마세요. 코로나에서는 Daily Build 990 부터 가능합니다. 이 기능은 아직 안드로이드에서는 지원되지 않습니다.


반응형

Comment