0
PerlMotion
@kaz_hiramatsu
同人誌とか
PerlMotionとは
• PerlでiOSアプリが作れる
• 現状だとObj-Cのクラスを直接使えな
い

• PerlとObj-Cのブリッジを書かないとい
けない
Perl側
②アプリから

③値を返す

ブリッジ
④値を返す

①アプリから
Obj-C
ブリッジの書き方1
• perl-motion/lib/PerlMotion/Builder/
PerlCompiler/*にあるモジュールを参
考にする

• 拡張子は.mでブリッジ用のC関数を書
く

• C関数とPerlのメソッドを紐つけ...
ブリッジの書き方2
• デリゲートメソッドは.mに書いてPerl
側のメソッドを呼ぶ

• Valueとオブジェクト構造体
• Perl側から引数の受け取り方
• Perl側へ値を返す
Value
• Perlのあらゆる型を格納する共用体
• Perl側から値を受け取る時も返すとき
もValue経由で値をやりとりする
Value
• ValueへObj-Cのポインタを入れる
• OBJC_PTR_TO_VALUE
• ValueからObj-Cのポインタを取り出す
• VALUE_TO_OBJC_PTR
引数の受取
• Perl側から引数はArrayObjectで渡さ
れる(Perlの配列に該当する型)

• args->list[0]に1つめの引数が入ってい
る

• args->list[1]に2つめ...
Perlへ値を返す
• RETURN(OBJC_PTR_TO_VALUE(UI
View, view));

• RETURN_VOID();
• RETURN_INT(0);
ブリッジ書いてみた
• TableViewController
• https://github.com/kazhiramatsu/
perl-motion
メソッドの命名規則
• まだ決まっていない
• Obj-Cのキャメルケースをスネークケー
スにするという案が有力
まとめ
• まだまだ実用段階ではない
• Obj-Cのブリッジを書くのが面倒
• 自動生成で作るという案がある
冬コミ出します
Upcoming SlideShare
Loading in...5
×

PerlMotion

368

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
368
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "PerlMotion"

  1. 1. PerlMotion @kaz_hiramatsu
  2. 2. 同人誌とか
  3. 3. PerlMotionとは • PerlでiOSアプリが作れる • 現状だとObj-Cのクラスを直接使えな い • PerlとObj-Cのブリッジを書かないとい けない
  4. 4. Perl側 ②アプリから ③値を返す ブリッジ ④値を返す ①アプリから Obj-C
  5. 5. ブリッジの書き方1 • perl-motion/lib/PerlMotion/Builder/ PerlCompiler/*にあるモジュールを参 考にする • 拡張子は.mでブリッジ用のC関数を書 く • C関数とPerlのメソッドを紐つける
  6. 6. ブリッジの書き方2 • デリゲートメソッドは.mに書いてPerl 側のメソッドを呼ぶ • Valueとオブジェクト構造体 • Perl側から引数の受け取り方 • Perl側へ値を返す
  7. 7. Value • Perlのあらゆる型を格納する共用体 • Perl側から値を受け取る時も返すとき もValue経由で値をやりとりする
  8. 8. Value • ValueへObj-Cのポインタを入れる • OBJC_PTR_TO_VALUE • ValueからObj-Cのポインタを取り出す • VALUE_TO_OBJC_PTR
  9. 9. 引数の受取 • Perl側から引数はArrayObjectで渡さ れる(Perlの配列に該当する型) • args->list[0]に1つめの引数が入ってい る • args->list[1]に2つめ...
  10. 10. Perlへ値を返す • RETURN(OBJC_PTR_TO_VALUE(UI View, view)); • RETURN_VOID(); • RETURN_INT(0);
  11. 11. ブリッジ書いてみた • TableViewController • https://github.com/kazhiramatsu/ perl-motion
  12. 12. メソッドの命名規則 • まだ決まっていない • Obj-Cのキャメルケースをスネークケー スにするという案が有力
  13. 13. まとめ • まだまだ実用段階ではない • Obj-Cのブリッジを書くのが面倒 • 自動生成で作るという案がある
  14. 14. 冬コミ出します
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×