「秋の京都で MobiRuby をつつく会 in はてな」に参加した時を思い出しメモ
MobiRubyの勉強会に参加して内容をブログに書こうとしていたんだけれども、下書きのままでした。なんだか気持ち悪いので、まとまりないけれども公開します。
参加した勉強会:http://atnd.org/events/33550
その時につぶやいた自分のtwitterをまとめながらメモする。
遅刻した。。。浅野さんのプレゼン途中でした。最近phonegapで開発しているというお話。丁度電車でリーン・スタートアップ読んでたので、プレゼンの内容と少しシンクロして感動。
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
id:ninjinkun さんのプレゼンの途中から参加しました。アプリの開発という内容。電車のなかで、リーン・スタートアップを読んでいたのでちょっとびっくり。
- iPhoneアプリ開発で、PhoneGap利用した
- ネイティブだとイテレーションが長くなるので、ピボット(方向転換)しにくい。
- HTMLベースのアプリだとイテレーションのサイクルを短くできるので、UIが固まっていない場合はWEBベースのほうが向いている。
- アップストアもWEBベースみたい。リンク切れがあったり。
- Facebookアプリがネイティブに移行したのは、HTML5でUIを固めることができたからかもしれない。
What's MobiRuby? iOS app development environment on mruby , MIT Licese , Can access native functions, Have plan for Android version ...
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
続いて@masuidriveさんの MobiRuby 。
- rubyでiPhoneアプリ開発できる→実際にアップストアにsamegameを公開
- MIT Licese
- ネイティブ関数は呼べる
mruby, 仕様が軽くなった ISO通った メモリ使用量が減った romが500kあればインプリメントできる ソースコードが短い 約25000行 Crubyはその10倍 rubyにオーバーフローの仕様がない、値が大きくなっていくと・・・
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
- rubyがISO/IEC 30170になったことで、mrubyをまつもとゆきひろさんが作った。
- 組込向けのため、メモリ使用量が減った
- ソースコード一人でもなんとか追いかけれる量?
New implementation of Ruby for embedding, Built by dad Matz, Less memory and storage, Not required POSIX, only c99, Cruby subset ,
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
- POSIXなOSでなくても動く
- c99のみで作られてる
mruby → アプリに組み込むRuby, Matzさんが、Luaの置き換えを意識して作られた言語
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
Not required POSIX, only C99 → BIOSに組み込む人もいるオープンブートみたいに利用できる。オープンブートって何?マックからみ?
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mobirubyのvision MobiRuby provides Ruby power to Mobile devices, Meta programming is most important Ruby power
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
現状はRubyとObjective-Cがわからないと書けない超誰得状態。
ガベージコレクションがあるObjective-Cとバリバリ共存可能
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mruby-cunc, c function bridge for mruby, Call C based function directly,
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
シンボリックテーブル、dlopen、シェアードライブラリ、mruby-cfuncでmallocしてもがベージコレクションされる。Rubyの関数を関数ポインタにすることもできる、スレッドは動かないが、1つのプロセスの中で複数のVMを作ることができる。
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mruby-cocoa Cocoa bridge for mruby Use Cocoa functions transparently, Based on mruby-cfunc and Cocoa runtime, Manipulate Cocoa objects ,
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
Bridge Cocoa runtime , Objective-C has powerful runtime features, Create and modify class dynamically , ObjeC Class <- Ruby class <- ObjeC c
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
Objective-C - Reference count, mruby -Mark & Sweep, Swizzled Objective-C "release" method, awful performance bottleneck
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mrubyにはrequireがない→POSIXなくても動くようにするため
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mobiruby-common , POSIX base functions
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mobiruby-ios, iOS specific utilities, Bootstrap, Xcode integration, Wrapped class
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mobiruby http://t.co/YmamKyOB
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
コード補完がないobjective-Cは相当きつい
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
mobiruby待てないなら、200ドルくらいはらって、RubyMotionを利用することをおすすめだそう。
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
RubyMotion, Rhodes, Ruboto, RubyCocoa , Titanium Mobile,
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
“MobiRuby” http://t.co/y1Trt1s2
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
“mobiruby (MobiRuby) · GitHub” http://t.co/rkrpUno3
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
GCCとcleanでCのコンパイル実装が違うので、GCCで動くがcleanで動かないということがあるそう。Cの仕様で定義されていないコアな部分が原因だそう。
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
node.jsっぽいそう。 / “mattn/mruby-uv · GitHub” http://t.co/SmMVva1L
— 堤 庸(mitsugi) (@mitsugeek) November 17, 2012
c99にダイナミックリンクは無い
— 堤 庸(mitsugi) (@mitsugeek) 2012, 11月 17
言語仕様を軽くしようという流れの話を聞いてて、大きな政府か小さな政府かって話と絡む?コアとライブラリを分けるということのように、地域主権と、一極集中の上手い組み合わせが必要なんだとふと思ったた。
— 堤 庸(mitsugi) (@mitsugeek) 2012, 11月 17
“組み込み向け「軽量Ruby」と「Rubyチップ」、福岡県が経産省の事業で開発へ - ニュース:ITpro” http://t.co/IwSlg35G
— 堤 庸(mitsugi) (@mitsugeek) 2012, 11月 17
appleが川上から川下まで握っているというお話。プロセッサ、OS、言語、開発環境、PC、デバイス。
— 堤 庸(mitsugi) (@mitsugeek) 2012, 11月 17
objective-Cは動的言語なのでまだなんとかなるが、Dalvik VMで動的言語してjavaと連携するのは不格好になるそう。windows8でもmruby動くそう。
— 堤 庸(mitsugi) (@mitsugeek) 2012, 11月 17