X



Xamarin Part4 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/05/08(月) 07:40:04.29ID:KaTWGm/F
C#を用いてクロスプラットフォームアプリケーション(iOS Android Mac)を
を開発するためのライブラリおよび開発環境です。
Macの人は Xamarin Studio、Winの人は Visual Studioで開発できるよ!

公式
http://xamarin.com/

前スレ
Xamarin Part3 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1483089021/


Xamarin Part2
http://echo.2ch.net/test/read.cgi/tech/1480602653/

Xamarin Part1
http://echo.2ch.net/test/read.cgi/tech/1359861574/
2017/06/11(日) 21:21:10.89ID:RB/OHkYp
>>689
おま環
2017/06/12(月) 01:53:57.64ID:MEYLXkSo
C#でAndroidアプリを作れるというのが理解できない
XamarinがC#のコードをJavaに直して吐き出してくれるみたいなイメージでいいんですか?
2017/06/12(月) 01:54:53.51ID:AUXrYQSd
全然違うけどな
693デフォルトの名無しさん
垢版 |
2017/06/12(月) 09:37:07.87ID:sBWCHRoY
うん、全然違う
2017/06/12(月) 15:57:37.01ID:q27/iY9p
だから糞なんだけどな
2017/06/12(月) 18:56:25.30ID:EjkH/ZCK
Xamarin程の糞はない
2017/06/12(月) 19:28:13.98ID:302sbzUP
Xamarin.Formsで全画面表示ってできるんですか?
697デフォルトの名無しさん
垢版 |
2017/06/12(月) 19:33:06.00ID:5L3xq22d
%%%MC+7,8%%%

}

000-"M","LES","TUV=0.13325&/0\7&%&",

001-"23","1","0","2","7.14",[\b%7/1444*%812%2.3%7&6111\end\\]{%3%12%\br
2017/06/13(火) 03:09:09.57ID:EFmCbykq
>>691です
CシャープのコードをILという中間コードに直して、そこからAndroidの中間コードに変換してくれる、で合っていますか?
2017/06/13(火) 04:01:01.00ID:tjsf1/MG
>>698
ILから先は.NET のランタイムがAndroidやiOSのAPIを直接叩いて動作する
2017/06/13(火) 09:28:08.39ID:Rrtg2Skm
>>698
だいたいあってる
C# => C#中間バイナリ => Android Nativeバイナリ とコンパイルする(JIT含む)

実行時には.NETランタイム(Monoランタイム/VM)が
Android NativeバイナリからAndroid API(C言語I/F)を経由してAndroid API(Java)を呼び出す

http://www.mono-project.com/docs/advanced/runtime/
とか
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/
を解読したら読み取れるんじゃないかな

.NETランタイム(Mono)はVMじゃねぇ!!とか言う奴いるけどJITコンパイラを含むVMなんだよなぁ
極力プレコンパイルなりJITなりでネイティブコードに落としてるんだろうけど限界はあるやね
2017/06/13(火) 10:59:02.26ID:tLOkWGaV
色々間違ってる
2017/06/13(火) 11:08:44.63ID:bcmdcu3y
>>698
ttp://www.buildinsider.net/mobile/insidexamarin/07
2017/06/13(火) 11:21:51.46ID:Rrtg2Skm
>>701
こんな風になw
一次リソース出しても読みもしないで思い込みで布教するから困ったちゃん
704デフォルトの名無しさん
垢版 |
2017/06/13(火) 12:16:57.05ID:/5j4YrAT
「Android Nativeバイナリから」が日本語がおかしいんじゃね
2017/06/13(火) 12:28:25.13ID:vISLmsVn
最初の一文からおかしい
2017/06/13(火) 12:38:50.11ID:bcmdcu3y
おかしいとか間違っているとかいうなら、どう間違っているか、正しいのはどうなのかを書かないと無意味。
まあ、中には煽りたいだけの人もいるだろうけどね。
2017/06/13(火) 12:48:12.73ID:LvzI55Ha
>>699>>700>>702

>698
ですがみな様ありがとうございます
取り急ぎの感謝です
じっくり読ませていただきたいと思います
2017/06/13(火) 13:28:21.22ID:Rrtg2Skm
> .NETランタイム(Mono)はVMじゃねぇ
に脊髄反射で気に入らないんだろうけど
> The Mono runtime implements this virtual machine.
と公式に明記されてるっつーの

プレコンパイル(C#中間コードへ)とJIT(Android Nativeへ)でarm, x86バイナリに変換してるって理解してないのかいな
んで、流石に全命令をPFコマンドにマッピングできないからランタイム(VM)が中継しなきゃならんわけだろ

まさかC#から.dexにコンパイルしてるとか、MonoにJITは存在しないとか思っちゃいねーだろうな
2017/06/13(火) 13:41:50.64ID:Rrtg2Skm
煽りなんじゃなく本気でXamarinが貶されてると思って反論してそう、反論になってないけど

俺の知識も結構古いから最新のXamarin.Androidが以下のことしてるならソースをおくれ
1. アプリケーションレイヤーのC#は.dexにコンパイルしてて, Android API(C言語I/F)を操作することはない
2. JITまでの処理を超絶賢いコンパイラでART並みのネイティブターゲットビルドしてる(この場合、Android Java APIはどうやって呼んでるの?)
710デフォルトの名無しさん
垢版 |
2017/06/13(火) 13:43:10.34ID:huEjF5Un
Javaで作ったアプリと
C#で作ったアプリ

実行速度は同じですか?
2017/06/13(火) 13:50:22.18ID:nSPZwJz9
Xamarinのが遅いし実行ファイルの容量もでかい
712デフォルトの名無しさん
垢版 |
2017/06/13(火) 14:59:56.44ID:MpJDhsXT
いやむしろダルビックがクソのせいでXamarinで書いたやつの方が基本速いって話だと思うが。
新しいVM名前忘れたけどそっちだとどうかは知らん。
713デフォルトの名無しさん
垢版 |
2017/06/13(火) 15:04:43.99ID:MpJDhsXT
「.NETランタイム(Monoランタイム/VM)が
Android Nativeバイナリから」
714デフォルトの名無しさん
垢版 |
2017/06/13(火) 15:11:26.66ID:MpJDhsXT
ごめん途中で書いちゃった。
それはJITコンパイルされたものからJavaを呼び出してるって意味?
2017/06/13(火) 15:51:48.59ID:co8+PZUE
>>700
>Android API(C言語I/F)を経由してAndroid API(Java)を呼び出す

APIがAPIを呼び出すってどういうこと?
2017/06/13(火) 16:05:00.87ID:5JfOZPJx
>>709
俺のイメージはこの通り

http://www.buildinsider.net/mobile/insidexamarin/07
2017/06/13(火) 16:40:46.11ID:mEdJ5tDH
一つのアプリを起動するとmonoランタイムとdalvikランタイムの
両方が立ち上がって相互に依存しあっている状態になる
これを一つのフレームワークとみなしてる

monoでJITコンパイルされたnaitiveアプリはmonoのライブラリを参照する
monoから直接叩ける下位のAPIはそのまま実行
dalvik(java)に依存してる部分は仲介システムを介して実行
718デフォルトの名無しさん
垢版 |
2017/06/13(火) 16:53:53.68ID:FSd9JKbI
初めからAndroidネイティブやってりゃこんな混乱なくてめでたしめでたし
2017/06/13(火) 17:21:08.47ID:Rrtg2Skm
>>713-714
疑問は同類だと思うからまとめてレスするけど
Xamarin.Androidで吐かれた実行時のコードってJava(VM)レイヤーじゃなくNative(C/C++)レイヤーで動くわけじゃん?
そのレイヤーからJava APIを呼ぼうと思ったら、JNI経由してJava APIを呼ばざるを得ない
C#コード => .NET Runtime(C/C++) => C/C++ Android API(JNI) => Java Android API

public class MainActivity : Activity
って書いた時のC# Class "MainActivity"とJava Class "Activity"は直接連携してるんじゃなくて下からぐるっと回って連携してる理解

>>716
その記事のソース元だと思われるアーキテクチャ資料はこれかなぁ
https://developer.xamarin.com/guides/android/under_the_hood/architecture/

AndroidアプリケーションAPI(Java)の上に一部重なってXamarin.Android API(C#)がいるけど
MCWもACWもJNIを経由してるよって言ってるからまぁそういうことなんだろうな
720デフォルトの名無しさん
垢版 |
2017/06/13(火) 17:30:06.13ID:X6Xo923W
>>719
いや疑問ていうか君の書いたもの分かりづらいからこういう意味で言ってるんだよね?っていう確認
2017/06/13(火) 17:32:09.88ID:zMNW55yd
>>719
JNIはjavaからネイティブを呼ぶ仕組みだからまったくの逆では?
2017/06/13(火) 17:39:11.30ID:UjkMf+JE
ちょまど今年で契約終了ってマ?
2017/06/13(火) 17:46:53.85ID:zMNW55yd
JNIは双方向なんだな
2017/06/13(火) 17:50:15.19ID:Rrtg2Skm
>>720
IDを転々とさせて煽ってるけどお前は誰だよw

>>721
NativeからJavaを呼ぶモノもJNIって呼ぶよ・・・最近のJava業界は違うのかもしれんけど

さておき、元々の反論(笑)からズレてしまったけど
C#のJITコンパイルしたコード(Managed Code)ってどれくらいネイティブ化してるんだろうね
Mono VMっつってるけど、Dalvik VMほどアホじゃなくART Runtimeくらい賢いといいなぁ
2017/06/13(火) 17:53:24.94ID:9zGloa6i
>>722
KPI()が高いんだから継続だろ
726デフォルトの名無しさん
垢版 |
2017/06/13(火) 18:02:19.12ID:X6Xo923W
>>724
勝手に陰謀論にしてんじゃねーよ
>>713に書いたようにお前の書いたものが何言ってるのか分からないから確認してやってんだろが。
そもそもお前が勝手に他の奴はわかってねえとイキってるだけやん
2017/06/13(火) 18:17:39.40ID:A+O/w9QH
最新のandroidは、実行統計情報に基づいて再コンパイルするART runtimeと新しいJIT runtimeのハイブリッド
2017/06/13(火) 19:27:07.42ID:0l6/Ble6
XamarinのUWPって.NET Nativeではないん?
つまり遅いん?
2017/06/13(火) 19:46:45.68ID:8nmrk1h7
>>728
おまえが馬鹿なのはよくわかった
2017/06/13(火) 19:58:08.27ID:0l6/Ble6
>>729
馬鹿なので詳しく教えて。
2017/06/13(火) 20:09:02.97ID:nSPZwJz9
Xamarin程の糞はない
2017/06/13(火) 21:28:45.67ID:Rrtg2Skm
>>726
で、何が言いたいんだよw
疑問、確認済んで自己満足したら罵倒なのはどうかと
733デフォルトの名無しさん
垢版 |
2017/06/13(火) 21:49:04.30ID:huEjF5Un
Android Studioと共存できる?
2017/06/13(火) 22:05:34.18ID:McnSDEvv
不可能
735デフォルトの名無しさん
垢版 |
2017/06/13(火) 22:12:43.64ID:MpJDhsXT
>>732
いや確認したこととお前が上から目線でイキってるのとは別でしょ。
2017/06/13(火) 22:42:45.99ID:QDQv43N6
>>733
可能
2017/06/14(水) 02:49:14.50ID:YjvfTYog
>>710
実効速度考えるとAndroidStudio一択なんだけどね
開発速度考えたらXamarin一択になる
AndroidStudioの要求スペックやUI全てが糞オブ糞
2017/06/14(水) 02:52:13.54ID:YjvfTYog
有能な開発者がAndroidStudioは見切ってるリアルやストア見ればわかるけどね
Xamarinも全然ベストということはなくてアンチテーゼのレベルにとどまってはいるが
2017/06/14(水) 03:08:02.72ID:8RlawS/K
今VisualStudioもAndroidStudioも両方使ってるけど、IDEの出来ならだんぜんAndroidStudioだわ
必要マシン性能はCorei7 16GBメモリ SSD これだけ揃えれば問題ない

AndroidStudioに慣れた後だと、なにやるにしてもVisualStudioはひと手間多くて嫌になるよ
VisualStudio for Macはさらにひどい出来だな
2017/06/14(水) 03:11:55.59ID:8RlawS/K
今年のGoogleI/OでKotlin採用が一番受けたけど、
ここで歓声上げた奴等はほぼAndroidStudio贔屓だと思って間違いない
AndroidStudio無しでKotlin使うとかほぼ考えられんからね
2017/06/14(水) 03:21:42.09ID:sjQFObUl
そんなのJavaで開発してりゃ当たり前だろ
使い分けも出来ないのはただの無能
2017/06/14(水) 03:33:39.92ID:8RlawS/K
AndroidStudio見切ってるやつがKotlinを歓迎するのか
おまえ面白いこと言うのな
2017/06/14(水) 03:41:50.01ID:sjQFObUl
VisualStudioではJavaは使えないしAndroidStudioではC#は使えない
それだけのこと
2017/06/14(水) 08:21:02.84ID:JfvqLMZu
>>740
もともとkotlin派はintellij使ってるけどw
2017/06/14(水) 08:55:25.47ID:cHdy61OE
C#使ってる奴等はほぼVisual Studio贔屓だと思って間違いない
2017/06/14(水) 08:56:35.72ID:2lEYzfeN
>>744
intellijのandroidサポートはAndroidStudio と同じものだろ
新規プロジェクト作成で同じ画面出てくるし
2017/06/14(水) 09:23:57.41ID:qrcUW+3G
>>735
うん、イキってるのは関係ないから大人の余裕でスルーしなよ

そんなことよりXamarin(Mono VM)がVMと評されるほどアホじゃないってことを示そう
Xamarin詳しくないから賢いならどういうアーキテクチャでそうなってるのか興味ある
2017/06/14(水) 10:12:39.78ID:3q7Jf+yw
>>739
i5 メモリ8GB SSD
これだときついかな?
2017/06/14(水) 10:13:37.00ID:cHdy61OE
実機デバッグにすればきつくない
2017/06/14(水) 10:46:03.31ID:QpisDt2i
AndroidStudioは起動が遅い
2017/06/14(水) 12:00:37.64ID:CV8NhxRP
>>748
AndroidStudioとemulatorとその他ブラウザとか動かしてるとちょっとキツイかなって感じ
emulatorをやめるか、AndroidStudioとemulator専用マシンならいける
752デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:09:08.11ID:tbRNMUc+
>>747
いやだからお前日本語おかしいってw

AndroidStudio使いやすいのか。
覚える気は無いけどVSより使いやすいってのは思想設計がいいのかAndroid専用だからそりゃ色々最適化されてるってのとどっち?
2017/06/14(水) 12:37:24.53ID:CV8NhxRP
>>752
AndroidStudioはJetBrains社のIntellijIDEAにGoogleがandroid用プラグインを追加したもの
IntellijIDEAはプラグインでいろんな言語に対応できる
IntellijIDEAが優秀かどうかは好みの問題もあるだろうけど、
JetBrains社はほぼIDE専業メーカーとして生き残っているわけで、一定の評価は受けてると思っていいだろう
2017/06/14(水) 12:44:13.00ID:QhYNjehQ
VSは時代遅れ
microsoftに関わってるやつはゴミ
755デフォルトの名無しさん
垢版 |
2017/06/14(水) 12:48:14.95ID:i/E7QqbY
でもC#の躍進凄いからねえ
2017/06/14(水) 12:51:28.30ID:CV8NhxRP
>>755
https://blog.jetbrains.com/jp/2016/01/13/569
2017/06/14(水) 12:57:04.84ID:CV8NhxRP
この記事でも紹介されてるAlt+Enterが、
AndroidStudioでもほんと便利で捗る
2017/06/14(水) 13:15:36.47ID:QhYNjehQ
microsoftは10年以上IDE開発しててゴミとか才能ないよ
2017/06/14(水) 13:37:55.85ID:fYC+lzac
なんだかんだ言って最高のIDEはVisual Studioだわ
760デフォルトの名無しさん
垢版 |
2017/06/14(水) 14:13:10.30ID:mHh/iDcV
>>753
おお、ideaが元なのか。それは良さげだな。
R#先生にはお世話になってます。

ideaは2000年かちょい前ぐらいにjavaやってた時に触ってすげーと思った記憶が。
2017/06/14(水) 14:32:44.34ID:LagFPNJT
Xamarin信者が発狂する「VM」という釣り餌があるに荒らしが構ってくれなくて悲しい
お前らIDEだのKotlinだので盛り上がってないでXamarnを煽れよ...
2017/06/14(水) 14:52:24.83ID:n6C+xNJr
日本語がおかしいって言われているのがまだわからないのか
763デフォルトの名無しさん
垢版 |
2017/06/14(水) 15:30:01.10ID:mHh/iDcV
つか誰かVMで発狂してんの?泥のはVMで意味通じるやん
2017/06/14(水) 16:22:03.66ID:yrfv8Ss1
姫の画像まだ?
2017/06/14(水) 16:41:54.93ID:cHdy61OE
VMってViewModelか?
2017/06/14(水) 18:00:30.66ID:qrcUW+3G
>>763
泥だけじゃなくてiOS含め全PFでVMやぞ
767デフォルトの名無しさん
垢版 |
2017/06/14(水) 20:04:38.74ID:mHh/iDcV
何がVMかは定義次第でまあいいとしてAOTしたものもVMとか無いわー
2017/06/14(水) 20:56:08.34ID:+Zkva6l9
ここがちょまど大好き民の巣か
2017/06/14(水) 20:57:50.08ID:VUdaz+Iq
>>768
大好き民しかいないように見えるなら病院行った方がいい
770デフォルトの名無しさん
垢版 |
2017/06/14(水) 22:08:23.67ID:gBpR1WIn
ちょまどのことが気になるから周りが皆ちょまど大好き民に見えるんだろう
2017/06/15(木) 01:52:56.79ID:WlJvH0OQ
どうでもいいから姫の画像はよ
2017/06/15(木) 06:41:46.12ID:kFR7Ieff
>>767
それはギャグで言ってるのかね?
その論だとJavaがVMじゃないとか、Pythonがインタプリタじゃないとか言えそうだなww
2017/06/15(木) 09:22:33.26ID:Tqu705KT
「日本語がおかしい」としか言えない壊れたオモチャになった信者は置いといて
便乗してVM煽りに参加してきた荒らしを「VMも悪くない」と殴り返そうと待ってたのに誰も乗らない

VMであってもVM内で完結するManaged Codeの実行速度はネイティブと大差ないし
CPUコマンドを直接操作する処理はAOTコンパイルで最適化入るからVMであることは蔑称じゃないんだよなぁ
信者はVMとして動くXamarinを誇るべき
774デフォルトの名無しさん
垢版 |
2017/06/15(木) 09:43:16.31ID:9wmecpo7
>>772
何でそうなるの?マジで意味わからんから説明してみ?
自分は.NETやJavaでVM云々出てくるのは生成物が中間言語でそれがいろんなところで動くよってことからその実行環境にたいして来てると思うが、
その特性はAOT通したら失われるわけだから通したものをそう呼称するのは違くないかって言ってるんだが。
なんか解釈間違ってるっていうなら具体的によろ
2017/06/15(木) 09:43:43.36ID:wwnPF+Kx
起動速度全然違うわ。
776デフォルトの名無しさん
垢版 |
2017/06/15(木) 09:56:32.58ID:9wmecpo7
そもVM煽りっていつ誰がしてん。このスレ?
2017/06/15(木) 11:30:51.53ID:eu1EKxC8
>>774
AndroidのART runtimeはAOT?
778デフォルトの名無しさん
垢版 |
2017/06/15(木) 13:19:29.86ID:FY5sfTVr
>>777
中間言語を元に動くのであれば仮想マシンと言っていいかと。
コンパイルするのが事前か実行時かは本質的な違いではない。
そも仮想マシンというよりも仮想ランタイムって方が語感としてはしっくりくる。
iOSのAOTはそのマシンでは中間言語関係ないからランタイム上で動いてるとは言っても仮想ランタイムではないって認識。
2017/06/15(木) 16:08:57.84ID:kFR7Ieff
誰もVM煽りなんてしてないでしょ、お前が一人で「Mono VMはVMとは言えない」と孤軍奮闘してるだけ

AOTで全てのManaged Codeがネイティブ命令になってるわけないじゃん
CPU依存のメモリや演算は最適化されるけどVM上で操作するオブジェクト操作等々はC# VM上動く命令コードのままだよ
2017/06/15(木) 17:59:14.93ID:+JsmK8e2
>>653
ヒマなのでつらつらソース見てみたけどcommandがおかしい
GetCommandで毎回新しいコマンドを渡してるのでbindingされてない
MSが書いたのかどうかしらないけどバグ入りなので訂正よろしく
2017/06/15(木) 18:08:42.03ID:+JsmK8e2
言い方がまずかった
GetCommandで毎回新しいコマンドをわたしてるので
GetCommand.ChangeCanExecute();
してもバインディングされているボタンに反映されない
782デフォルトの名無しさん
垢版 |
2017/06/15(木) 18:35:29.76ID:ES61Via9
>>779
誰に言ってんのかわからないから安価つけろよ
iOSでマネージコードで動いてるっていうならソースよろ。初耳だわ。
何れにしても上で日本語おかしかった奴が煽りとか言い出した?そいつが間違った知識でイキリ始めたのが元凶じゃねーの。まあ皆仲良くXamarin使えばいいと思うよ
2017/06/15(木) 19:24:29.56ID:S/r7D27v
Xamarinのランタイムの話をする時はiOSかAndroidかどっちの話をしてるのか明確にして欲しいな
全然仕組みが違うんだから
2017/06/15(木) 19:30:29.68ID:WlJvH0OQ
どうでもいいから姫の画像はよ
2017/06/15(木) 20:48:05.33ID:LfCluc7n
ググったら公式サイトに図で説明あんぞ?また思い込みで戦ってるのかwww
Xamarinユーザは程度が低いのう

違うなら違うというソースよろ
786デフォルトの名無しさん
垢版 |
2017/06/15(木) 21:14:14.85ID:YJEzdhkx
リンク貼れよ無能
2017/06/15(木) 21:54:38.73ID:sOmi0Pkm
ファイルサイズがでかいのはわかるんだけど遅いの?
2017/06/15(木) 22:22:33.56ID:kFR7Ieff
ついにage続けてた子も壊れたオモチャになってしまったか
どこの日本語がおかしいのか、どこが技術的に間違っているのか
そして、それぞれ何が正しいのかを一次ソース付きで提示できないのがXamarinクオリティなんだなぁ

>>787
遅くないよって解説しようと思ってたけど呆れたからやめる
特定条件下ではネイティブと比類ないorネイティブより速度出るよ、その特定条件下のベンチマークは探せばあるんじゃね
2017/06/15(木) 22:47:10.62ID:IeCKC/7f
Xamarin.Forms起動が遅いよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。