超訳 Xamarin の概要
Microsoftのページって個人的に理解する為に、ワンクッションおくことが多いです。
色々読みながら、で結局どうなの?ってのにたどり着くまで結構時間かかること多いんですよね。。。
これは、単純に筆者のスキルレベルのせいだと考えてます。
なので、筆者的に理解した翻訳を残しておこうというメモ。的なエントリです。
今回訳してみたページ
Xamarin の概要の超訳。
Xamarin.Forms は、iOS、Android、Windowsで動くプログラムを作成するときの一つの選択肢。
という1行にまとまりました。 このドキュメントから私が理解できたことは。この1行です。
ドキュメントに記述されている概要
Xamarin.Forms は、iOS、Android、ユニバーサル Windows プラットフォーム アプリ間で共有可能なネイティブ ユーザー インターフェイス レイアウトを効率的に作成するための、開発者向けクロスプラットフォーム UI ツールキットです。
キーワードの略を記述
キーワード | 意味 |
---|---|
iOS | iPhoneのOS(オペレーティングシステム) |
Android | スマホのOS(オペレーティングシステム)のこと |
ユニバーサル Windows プラットフォーム(UWP) | 異なるデバイス向けに提供されるMicrosoft Windows用のアプリケーションソフトウェアを共通の基盤上で動作させることのできる、統合されたプラットフォーム |
ネイティブ ユーザー インターフェイス レイアウト | iOS向け、andorid向けにそれぞれUI(ユーザーインターフェース)を構築するコンポーネントがあるが、これらコンポーネントを利用して作成したレイアウトのこと |
クロスプラットフォーム | 異なるプラットフォーム上で、同じ仕様のものを動かすことが出来るプログラムど土台のこと |
UI ツールキット | UIを構築するための道具一式のこと |
ユーザーインターフェース | 機械、特にコンピュータとその機械の利用者との間での情報をやりとりするためのインタフェース(入出力部分) |
プラットフォーム | システム・サービスを動かすための基盤(土台となる環境) |
Xamarin | .NET を使用して、iOS、Android、Windows 向けのアプリケーションをビルドするためのオープンソースのプラットフォーム |
オープンソース・ソフトウェア | ソースコードを商用、非商用の目的を問わず利用、修正、頒布することを許し、それを利用する個人や団体の努力や利益を遮ることがないソフトウェア |
英語ドキュメントを翻訳
Xamarin.Forms is a cross-platform UI toolkit that allows developers to efficiently create native user interface layouts that can be shared across iOS, Android, and Universal Windows Platform apps.
DeepLでの翻訳
Xamarin.Forms は、iOS、Android、Universal Windows プラットフォームのアプリ間で共有できるネイティブのユーザーインターフェイスレイアウトを効率的に作成するためのクロスプラットフォーム UI ツールキットです。
Googleでの翻訳
Xamarin.Formsは、開発者がiOS、Android、およびユニバーサルWindowsプラットフォームアプリ間で共有できるネイティブユーザーインターフェイスレイアウトを効率的に作成できるようにするクロスプラットフォームUIツールキットです。
Wikipediaを覗いておく
XAMLベースのクロスプラットフォームなGUIアプリケーションフレームワーク。
感想
Xamarin.Formsって割と嫌われてる?
よくあるネットの意見
- 原因の切り分けが難しそう。
- Xamarin.Forms自体のバグを踏みそう。
iOS7 betaのままでアクティベーションできなくて困ってたけど解決。と手順メモ。
問題発生。
今日の夕方頃か、気づいたらiPhoneがこんな事に。
そしてメールアドレスとパスワードを入力するものの・・・
原因
iOS7 betaを入れっぱなしにしていた事が原因のようです。 (その有効期限が切れた?)
解決方法
iOSの最新版をダウンロード https://developer.apple.com/devcenter/ios/index.action#downloads
モデル番号は背面カバーに記載されてます。
iTunesでオプションキーを押しながらアップデートボタンを押す
ダウンロードしたファイルを選択
アップデートを選択
アップデート中
上の手順で完了。iPhoneが再起動されて、wifiの設定して再びアクティベーションを求められますが、上手くいきました。
「秋の京都で 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