ケルベロスさんのプログラミング / けるぷろ

プログラマのけるさんことケルベロスです

Corona SDKとは

Corona SDKとは

2015-12-07

最近Corona SDKにはまっているんで紹介します

  • 公式サイト
    Corona SDK | Corona Labs
  • マルチプラットフォームで動くアプリを開発できるSDK
  • 基本無料 ストアアップロードも無料 課金すればObj-CやJavaのネイティブAPIにアクセスできたりオフラインビルドできるようになったりする
  • Lua言語
  • ビルドしてから超瞬間的にシュミレータで確認できる(実機ビルドは少し遅いcoronaのサーバに問い合わせたりしてる)
  • 描画は基本的にOpenGLでされているのでひと昔前の激遅Android端末でもなかなか速い
  • ゲーム開発用の機能が十分に揃っている
  • ただ
    • ググっても日本語での解説がほとんどない

ちょっとすごいと思ったのは以下の画面
f:id:popeyekn:20151207180241p:plainf:id:popeyekn:20151207180247p:plain
サンプルプロジェクトをシュミレータでちょちょいとビルドしてみた画面なんですが
なんとiOS標準のUIパーツとかAndroid標準のUIパーツが再現されているんです
もちろんGL上で描画されているんで、AndroidiOSの画面を再現できたり、その逆もできそう

Corona SDKでHTTP通信

Corona SDKでHTTP通信


  • シンタックス

    request( url, method, listener [, params] )

    • 戻り値
      • requestId
        network.cancel(requestId)とすることでその通信をキャンセルします
    • 引数
      • url
        通信するURL ・String
      • method
        GETやPOSTやPUTなどメソッド名を指定 ・String
      • listener
        通信中(progress)、通信終了後のコールバック ・function
      • param
        パラメータの指定 ・table
        • headers
          • ヘッダ ・table
        • body
          ・String
        • その他のパラメータ
          bodytype,progress,response,timeout,handleRedirects

というのが基本です


  • 使用例
local function network_listener(event) --コールバックの関数  
    if event.isError then  
        print('network error')  
    else   
        print ( "RESPONSE: " .. event.response )  
    end  
end  

lcocal url = 'https://www.google.com'   
local method = 'GET'  

local params = {  
    headers = {  
        ['Accept-Language'] = 'ja-JP'  
    }  
    timeout = 15  
}  

network.request(url,method,network_listener,params)  
  • POST
    JsonでパラメータをPOSTしたい場合
local function network_listener(event) --コールバックの関数
    if event.isError then
        print('network error')
    else 
        print ( "RESPONSE: " .. event.response )
    end
end

local url = 'https://www.google.com' 
local method = 'POST'

local params = {
    headers = {
        ['Content-Type'] = 'applicatdon/x-www-form-urlencoded'
    },
    body = 'color=red&size=small'
}

network.request(url,method,network_listener,params)
  • headersにContent-Type = 'applicatdon/x-www-form-urlencoded'を指定して、bodyのパラメータは文字列型でkey=valueで&つなぎで指定する必要があります