X



Xamarin Part6
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/10/19(木) 04:50:42.42ID:7WcrUuLB
C#を用いてクロスプラットフォームアプリケーション(iOS Android Mac)を
を開発するためのライブラリおよび開発環境です。
Macの人は Xamarin Studio、Winの人は Visual Studioで開発できるよ!

公式
http://xamarin.com/

前スレ
Xamarin Part5 [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1498575762/1

Xamarin Part4 [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1494196804/

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/
0173デフォルトの名無しさん
垢版 |
2018/11/05(月) 23:09:25.87ID:Ns0ubn59
ネイティブの知識なくて良いわけじゃないから学習コストは高いよ
Xamarin.Forms に限らずクロスプラットフォームはどれもそうだと思うけど
その点レンダリングエンジンがネイティブじゃない Flutter は比較的楽なのではという期待がある
あとホットリロードが羨ましい
0174デフォルトの名無しさん
垢版 |
2018/11/05(月) 23:15:23.35ID:Ns0ubn59
ただ Xamarin は .NET の既存資産が多いし、React Native も NodeJS の資産があるのが魅力だろうな
Dart や Kotlin は少なそう
0175デフォルトの名無しさん
垢版 |
2018/11/05(月) 23:19:16.98ID:Ns0ubn59
UI 部分のラッパーがない分ネイティブやるよりは Xamarin Native のほうがラクなんじゃないかな
Xamarin.Forms しかやったことないけど
0176デフォルトの名無しさん
垢版 |
2018/11/06(火) 00:47:55.76ID:BJih7Q4c
>>171
ペゾルト本だよね?
まああれは基本のコントロールからみっちり説明してるからな
今となっては古いところもあるかもだけどあれは、Xamarinやるなら上下巻みっちり読んどけ感はある
日本語版はまだ下巻出てないんだっけ?
0177デフォルトの名無しさん
垢版 |
2018/11/06(火) 00:56:02.43ID:BJih7Q4c
>>175
Xamarinネイティブの方はネイティブに薄皮かぶせただけだからネイティブのことがっつり知らないといかんしの。
自分はXamarin.iOSから入ってFormsに移ったけど、アンドロイドのネイティブはほとんどわからないまま来てしまってアプリなどのリリースもやってるけどやっとこの間レンダラーでビュースイッチャー高なんだか触る羽目になった
0178デフォルトの名無しさん
垢版 |
2018/11/06(火) 07:49:28.67ID:8sAquAjD
Formsでもちょっとまともな事しようと思ったら各プラットフォーム向けにRendererをオーバーライドしたり、デバイス制御しようとしたらやっぱりプラットフォーム専用のコード書かないといけなかったり、完全ではないわな。
それでも共通のPCLがC#で書けるというメリットはでかい。
0179デフォルトの名無しさん
垢版 |
2018/11/06(火) 08:55:43.31ID:BJih7Q4c
>>178
そゆんでは適度にネイティブも透けて見えるから手を入れてモニョモニョしようがあると思ってるんだが。
フラッターとかだと二進も三進もいかないんじゃ?
その辺は良し悪しあるところだとはおもうけど
0181デフォルトの名無しさん
垢版 |
2018/11/06(火) 09:21:47.05ID://8efntW
今はまだ過渡期でしょう。
行く行くは開発会社がネイティブな部分を知る必要もなく
アプリを作る方向に向かってゆく。
0182デフォルトの名無しさん
垢版 |
2018/11/06(火) 09:27:49.32ID:BJih7Q4c
実際はネイティブの環境も変わってくし、そこに一切触れないものも困る場面でてくると思うよ?
0183デフォルトの名無しさん
垢版 |
2018/11/06(火) 10:39:58.64ID:1KwAte1P
>>172
ほぼほぼないよ
だからキツい

>>176
そうそう
みっちり読んで基本を早くマスターしたいが正直楽じゃないね
unityなんてやらずに最初からxamarinやっときゃ良かった
下巻ももう出てるよ
0184デフォルトの名無しさん
垢版 |
2018/11/06(火) 12:36:18.96ID:8sAquAjD
真面目にMVVMやるならBinding要るけど、まずはViewModelすっ飛ばしてコントロール側にNameつけてModelと直接やり取りするのが入門としては良いかも。
XAMLなんてHTMLの遠い親戚みたいなもんだから身構える必要は全くない。
本当に必要なスキルは「英語サイト含めてググる能力」だわ。
0187デフォルトの名無しさん
垢版 |
2018/11/06(火) 21:37:57.80ID:eiD6Vqn1
初心者だけどDataTemplateがすごく使いにくい

ListViewの要素にListがあってListに1件以上アイテムがあるとき
それをラベル貼るみたいに付加情報を表示したいってだけなのに
DataTemplateSelector使わなあかんの?

あとビルドがすごく長い
プレビューワーの品質がひどすぎる(Gorillaプレビューワがいいらしいけど有料っぽい)

会社の方針で使ってるけど正直しんどい
0189187
垢版 |
2018/11/07(水) 08:18:22.10ID:ekMP+mWP
そうです
例えば商品一覧を表示する際に、ある商品には「特価」とか「在庫限り」とか
あるいはその両方を表示したいというときに
特定の要素の場合だけStackLayoutを追加したいんですけど、
Templateだとそういうことはできないですよね?
Templateだからそういうものだと言われたらそれまでですが
0191デフォルトの名無しさん
垢版 |
2018/11/07(水) 13:56:38.27ID:pqMdkqB1
>>186
なぜunityを?
俺も最初はunityでのゲーム開発ってこんなに簡単なんだ、と感心したんだが、ゲームだと普通のアプリに比べて極端に画像が必要になるし、個人開発に向かないなと思った
で、画像が少なくて済むアプリを勉強しようと思った
俺の場合最終目標が個人開発での脱サラなんだが、デザイナに金払って描いてもらうってのも個人だとなかなかキツいんだよな
0194デフォルトの名無しさん
垢版 |
2018/11/07(水) 15:18:58.40ID:Yg7Serho
>>191
自分は業務系のアプリをVR化する話があるので、だな。
後個人的にVRとかで作りたいものあるから。
0195デフォルトの名無しさん
垢版 |
2018/11/07(水) 20:09:41.01ID:Nn5ja2xC
>>189
その例だけで言えばラベルとなる要素の表示/非表示にバインドするプロパティ用意するだけで良くない?
0196デフォルトの名無しさん
垢版 |
2018/11/07(水) 21:23:47.78ID:rZipnLou
Xamarinってデザイナーないの?
Xaml自分で記述するか、C#コードでUI作らないといけないのか?
とてもC#コードなんかでUI記述してられないからXaml構文極めないとUI作れないな
そしてVSのツールボックスなしじゃなんのUI要素があるのかがわからない
macのxamarinstudioならUI要素の一覧は見れるの?
XamarinForms向けのXamlタグ一覧みたいなものが見れるサイトがあれば
どなたか教えてくれないか?
0197デフォルトの名無しさん
垢版 |
2018/11/07(水) 21:58:14.45ID:ekMP+mWP
>>195
ありがとう、まだ試してないけど解決しそう
Template の中身のオブジェクトには触れられないと思い込んでた
何もかもバインドしてしまえば自由自在なのか
助かった
0199デフォルトの名無しさん
垢版 |
2018/11/08(木) 09:02:39.06ID:JSc2SB6N
見てなかったわ。
Templateの中もただのXAMLだからつながるリスト要素のVMにプロパティ生やして好きに汁。
ListViewをunevenheightだっけ?にするの忘れるなよー
0200デフォルトの名無しさん
垢版 |
2018/11/10(土) 00:10:52.75ID:mr47SEAg
>>182
今思いつくだけで、

Z Orderを変えたい、他のアプリの上に透明で重ねたい、全く赤の他人が書いたアプリを
自分のアプリの中央にはめ込みたい、他のアプリの Window を動かしたい、デスクトップ
のアイコンの並びを記憶して復帰したい、デスクトップをクリックしたときに出てくる
フォルダ・ランチャー(?)を作りたい、ファイル・マネージャーを右クリックした時に出て
くるメニュー項目を追加したい。マウスの動作を記録・再生したい、デスクトップの
動作を動画記録したい、(BeginDeferWindowPos() のように複数のWindow を
高速に Move したい、スレッド間の同期を取りたい、Direct3D、OpenGLを
使うような高速動作がしたい、科学技術計算で、AVX512やGPGPUを使うような
最適化がしたい・・・・

見たいな事は、マルチプラットフォームでは難しいかも。
0201デフォルトの名無しさん
垢版 |
2018/11/10(土) 00:24:38.52ID:mr47SEAg
Windows Phoneでも、Android/iPhoneのアプリを全部使えるようにするため
にXamarineに目をつけたのかな、MSは。

逆に、Linuxでも使えるようになれば、MSにとって致命的になるかもしれない
ので、Linuxでは中途半端にしか使えなくすると思う。
0202デフォルトの名無しさん
垢版 |
2018/11/10(土) 00:33:49.51ID:mr47SEAg
多分、そのうち、スマホ用のアプリを作るのは、奇特な人の趣味の世界になっていくかも。
あんな小さな画面ではまともな作業は出来ないし。

自分で作ったアプリを人に見せびらかす目的で、持ち運びしやすいスマホアプリが
作りたい人だけが残っていくのではかなかろうか。

そもそもあんな小さなデバイスで、そんな沢山アプリ作ってどうすんの。
画面の大きなデスクトップPCですら、人気が出るソフトを作るのはとても難しいのに、
小さな画面だと差別化が難しいだろう・・・。
0205デフォルトの名無しさん
垢版 |
2018/11/10(土) 07:33:36.25ID:nyxZoFY7
>>204
ゲームなんてそれこそ個人で作れるもんじゃない
いくらUnityみたいなプラットフォームがあるって言ってもなぁ・・・
ショボゲーなら作れてもそれこそ飽和してるだろう

しかしWEBサイト、アプリ、ゲーム全部無料で配布しちゃって
こんな終わってる業界ないわな
牛丼チェーン店に突然牛丼0円で配布する会社が現れたら
吉野家でもすき屋でもつぶれてしまうだろ
結局これじゃユーザー相手の商売は難しいから
いつまでも受託開発でクズ客の相手しないといけない
プログラミング技術を磨いても磨いても届かない脱サラへの道
0206デフォルトの名無しさん
垢版 |
2018/11/10(土) 10:25:46.86ID:mr47SEAg
>>203
・顔認識して耳生やす。
・受け狙い動画の撮影を支援する。
・かわいいアイコンでごにょごにょする。

みたいなアホみたいな小アプリだけが金儲けできるようになっていきそうだ。
0207デフォルトの名無しさん
垢版 |
2018/11/10(土) 10:33:45.07ID:mr47SEAg
>>205
GMかベンツだけが売れて、他のメーカーはほとんど儲からないような業界になってる。

自動車や電機の業界では見られなかった現象。
0209デフォルトの名無しさん
垢版 |
2018/11/10(土) 21:38:56.59ID:owOQnTkP
>>207
レッドオーシャンだからね
いざappleストアやgoogleストア開いてレッドオーシャンを目の当たりにするとアプリを作る気が失せるんだよなぁ・・・
どうしたらこんな環境でモチベーションが保てるんだろう
こんな環境でもモチベーション保ってアプリ10個くらい作ってみればなにか変わるのかな
もう社畜にうんざりしてるんだよなぁ・・・
0210デフォルトの名無しさん
垢版 |
2018/11/11(日) 00:58:50.27ID:rISCeeCc
あと、Appleは、自分が決めた外観的なルールに従っているアプリしか
許可しないので、独自の Widget を使っているアプリは、許可されないらしい。

だから、Java(Swing), Qt, FLTK みたいに Widget を独自に描画して Platform 非依存
にする方式ではダメで、wxWidget みたいに OS の Widget をそのまま使うタイプの
やり方で無いとダメなんだそうだ。

本当かどうかは確認してないが。
0211デフォルトの名無しさん
垢版 |
2018/11/11(日) 01:14:27.22ID:rISCeeCc
https://futurizm.jp/articles/104

> Xamarinは、C#で記述し.Net環境でクロスプラットフォーム開発がおこなえるツールです。
> OSに依存するインターフェイスやデバイスなどの処理についてはソースを分け、ロジック
> については共通化するという特徴があります。
0212デフォルトの名無しさん
垢版 |
2018/11/11(日) 01:16:20.17ID:rISCeeCc
>>209
どういうアプリが受けるかも、博打的な要素もありそう。
というか、一般人の感覚と自分の感覚がずれていれば難しい。
ということは、ちょっとお馬鹿な人で無いと難しいということだと思う。
0213デフォルトの名無しさん
垢版 |
2018/11/11(日) 01:18:58.96ID:rISCeeCc
https://qiita.com/hikarut/items/974e5782a3c0bf26f82a

・XamarinはMicrosoftよりVisual Studioの一部として提供されている
・C#で開発する
・XamarinのAPIはネイティブのAPIを100%移植しており「ロジックの」共通化が可能
・Xamarin.Formsを使うとUIの共通化もできるが一部しか提供されていない
・そのため共通化としてはだいたい60%くらいが妥当のよう
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0214デフォルトの名無しさん
垢版 |
2018/11/11(日) 07:00:51.72ID:zAxEw/s4
>>210
Appleのガイドラインによれば、ゲームは例外で世界観と統一感があれば独自UIでも構わないよ。
0215デフォルトの名無しさん
垢版 |
2018/11/11(日) 08:25:56.00ID:rISCeeCc
>>214
「ゲーム」だけを例外にしているのも何か困る。
そもそも、ビジネスアプリのUIだって、本来はゲームと同じ。
楽しく操作できる方が良いという点では、RPGのアイテム一覧表示と同じ。
それを、上から目線で1つの価値観で統一しようというのが気に食わない。
0216デフォルトの名無しさん
垢版 |
2018/11/11(日) 08:28:27.87ID:XRKNuZ4U
Xamarinでアプリ作るよりブログアフィリエイトで何百記事も書いた方が儲かるかなぁ
Xamarinはスキルにはなるが、もはやスキルなんてあってもなくても
たいして待遇変わらないし
結局業務経験〇〇年〜でしか判断できないアホな企業ばっかだから
XamarinができますといってもXamarinって何?ぽかーんだろうしなぁ
0218デフォルトの名無しさん
垢版 |
2018/11/11(日) 10:36:17.02ID:rISCeeCc
>>216
「大事なのは技術じゃない」 という言葉が大はやり。
たとえば、「ゲームは芸術」だという考えが蔓延した結果、日本では、
リアルさの無い幼児向けかと思うようなアホみたいななゲームなゲームばかり
になった。任天堂はまだまし。スクエアは、PC-8801時代は、高速な
グラフィック描画技術を売りにしていたのに、今では、アニメ調のアホみたい
な絵になってしまった。これは技術から芸術へシフトした結果か。

>>215
話は変わって、Adobe の PDF Reader が使いにくいのは、Appleの指針の
せいかも知れない。
0219デフォルトの名無しさん
垢版 |
2018/11/12(月) 13:48:47.53ID:8gHHasyS
リスト表示とかタブとか自分で作りたくねえだろ
標準の部品があることはありがたい
0220デフォルトの名無しさん
垢版 |
2018/11/13(火) 13:07:33.42ID:Cws3tb/7
>>219
GUI(Widget) ToolKit には、以下の2種類あることを言っているだけで、
アプリ・プログラマが独自に描くという意味ではない。

1. Widget を OSの Widget を使わずにライブラリが独自に描画する。
 例. Java(Swing), Qt, FLTK
 条件が同じなら、描画が PIXEL 単位でどの Platform でも同じになり、
 全プラットフォーム完全互換も夢ではなく、あるプラットフォームでテストすれば、
 他のプラットフォームでもそのまま動く可能性が高い。
 反面、Apple の審査は通りにくいかも。

2. 各OSのWidget(Win32 Control[EditBox, ListBox, ComboBox, Button, SlideBar, ToolBar], Dialog など)
  をそのまま使う。
  例. wxWidget
  各 OS の Native な GUI と同じなので、ユーザーの混乱は少ない反面、
  互換性の問題が生じたり、OSごとに異なるバグが隠れていることがある。
  Apple の審査は通り易いかも。
0221デフォルトの名無しさん
垢版 |
2018/12/05(水) 01:24:28.91ID:mHds3GDp
個人的には Flutter vs ネイティブ勢 (Xamarin, React Native, Kotlin Native) だと思うけどどっちが勝つんだろう。Flutter 次第な感じかな
0222デフォルトの名無しさん
垢版 |
2018/12/05(水) 01:56:39.88ID:OJCPHum3
勝ち負けじゃない気が。
各々利点欠点あるからどれかが他を制圧するって感じにはならないんじゃ
0224デフォルトの名無しさん
垢版 |
2018/12/05(水) 10:54:55.29ID:keH0PFqQ
この場合のネイティブはネイティブのSDK、コントロールなどを使うかどうかって話だと思うの
0227デフォルトの名無しさん
垢版 |
2018/12/05(水) 20:22:45.97ID:mHds3GDp
Forms 4.0 から iOS 向けのマテリアルデザインコンポーネントバインディングして Android/iOS 両方デザイン統一しやすくするみたいだな。これはなかなか良さげ
0228デフォルトの名無しさん
垢版 |
2018/12/05(水) 20:26:51.62ID:mHds3GDp
難しいのかもしれないけど Live Previewer はよ復活させてホットリローディングできるようにしないとキツそう
0229デフォルトの名無しさん
垢版 |
2018/12/10(月) 16:56:37.48ID:iRRzaRM/
みなさんクロスプラットホームのFormsでやってる人が多いんですか?
僕はこれから参考書買って始めようと思うんだけど
Andoroidしか持ってないからAndoroidネイティブから始めようと思ってるけど
Formsとネイティブは相当違うんですか?
予備知識無で始めるにはどっちがいいですか?
0231デフォルトの名無しさん
垢版 |
2018/12/10(月) 19:25:12.79ID:/ycQ7ddD
あらゆる言語・フレームワーク・ゲームエンジンの著者、

掌田津耶乃が、Flutter の本を出した!
0233デフォルトの名無しさん
垢版 |
2018/12/11(火) 00:21:51.96ID:kYUgfvrp
>>229
んーネイティブは普通にAndroidをKotlinなりで開発する方法をC#に翻訳した感じだけど、formsはネイティブの上にUIフレームワークを乗っけてる感じなので、例えばTODOリストを作るとしても全然違う。
それぐらいだとformsではスタートアップのところでしかMainActivityとかに触ることはない。
自分もformsで業務アプリ作ってるけどAndroidの開発ほとんど知らないで作った。
が色々やってるとそのうちネイティブにも触らないといけなくなる。レンダラーとか。
formsはネイティブの知識があまり知らなくても共通に動かせるものが作れる。
けど突っ込んだことやる場合にネイティブのことを知らないといけなかったりネイティブの方がやりやすいこともある。
自分の感想では凝ったアプリでもかなりの部分はformsで作れるので自分ならforms使う。最近はflutterも良さげなので場合によってはそっちを選択するもよし。
0234デフォルトの名無しさん
垢版 |
2018/12/13(木) 20:44:52.35ID:aguVaZKx
自分ならネイティブにする
Forms の仕組みも理解しなきゃいけないから学習曲線なだらかな方が楽じゃないかな
0235デフォルトの名無しさん
垢版 |
2018/12/13(木) 20:47:32.04ID:aguVaZKx
でも単一プラットフォーム向けに調整するだけでいいから、Forms が極端にネックになることもなさそうだしどっちでもそんなかわんないか
0236デフォルトの名無しさん
垢版 |
2018/12/13(木) 22:22:22.00ID:8CygZk7t
>>234
各々のネイティブに詳しいならだけどそうでなかったらとりあえず両方で動く何かを作るんだったら formsの方が覚えること少ないと思うけどな
もちろんまともなものを作ろうとしたらおいおいネイティブの知識も必要になるけど。
0239デフォルトの名無しさん
垢版 |
2018/12/19(水) 20:29:48.58ID:/mv5q/dC
LineBreakModeっておかしくない?
CharacterWrap とか WordWrap って折り返しの方式なのに
TailTruncation とか MiddleTruncation って文字列が入りきらないときの表示の方式
二つの意味が混在してる意味が分からない

Label で CharacterWrap かつ MiddleTruncation したいときどうすればいいの?
0240デフォルトの名無しさん
垢版 |
2018/12/20(木) 20:15:08.38ID:YEEXcU9l
>>239
Effect なりを使わないと無理みたいだよ
公式でサポートしてほしい気もするから Issue 作ってみてはどうでしょうか?
0241デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:23:17.34ID:wYmtdyH8
プログラミング初心者でxamarin.Formsに手を出して5chブラウザ作ってるんだけどスレの表示に困ってる
Labelで書くとリンクや安価をタップできるようになるけど遅い(数秒〜10秒程度)
ListViewで書くと速いけど安価やリンクを押せるように出来ない(レスの塊としては押せると思う)

レス本文をパースして安価やリンクを押せるようにする自作ViewCell?を作ってListViewに入れるのが手っ取り早い気がしてるけど、パースするようなビューはコードでしか書けずコードでバインディングする(あるいはバインディングせずにListViewを使う)方法が分からない

用語がよく分かってないから変なこと言ってたら申し訳ないけどつまりは、スレを速く表示することとURLや安価をタップ可能な構造を両立したい
0242デフォルトの名無しさん
垢版 |
2019/01/05(土) 00:49:14.03ID:I8ikb8z6
MVVMはわかる?
MなりVMなりでパースしたものをVでバインディングすればいい
リストビューを使わないやつで何がそんな遅いのかはよく分からないんだが。
全部パースしてモニョモニョしてるから?
0243デフォルトの名無しさん
垢版 |
2019/01/05(土) 01:15:47.34ID:wYmtdyH8
>>242
独学ばかりだから雰囲気でしか理解してないけどMVVMは表示系(V)とロジック系(M)とそれをつなぎ合わせる部分VMみたいな理解してる

Labelが本質的になぜ遅いかは分からないけど調べると40要素で100msくらいかかるって言ってるページがあったから数百レスあるスレでID、本文、名前とかごとにLabelを使うと数秒かかるのは納得してる
実際レス番だけ表示するようにしてもlabelを使うと800くらいあるスレで2,3秒かかった
(じゃあなぜListViewは速く描けるのか?はよく分からない。部分的に描画してるから?)
事前にパースしてっていうのはたぶんLabelを使うパターンを想定してると思うけど上の通りラベル単体で遅いからできなかった
それともListViewのセル内のバインディングを動的に弄ることができる?

こんなに早くレスしてくれてありがとう
0244デフォルトの名無しさん
垢版 |
2019/01/05(土) 01:33:33.58ID:I8ikb8z6
MVVMのおおまかな説明はそれでいいかと。
まあとにかくUI向けのコードを分離する1つの方法です。

GUI系のアプリは基本的にUIコントロールでの処理がムッサかかるからそこをなるべく避けないと。
全部のデータをラベルにぶっこんでたらおそくなるのは必然かと。

リストビューが速いのは言われるように部分的にしか表示しないから。仮想リストビューとかでググると出てくる。ちなCacheStrategyだったかな?そこの指定で仮想じゃなくも出来る。

5chのデータ形式は知らんが受信したデータを表示できる文字などに変換する部分のことをパースと言ってる。ラベルは関係ない。
MVVMの形にのっとってたらビューセル内のラベルが対応したVMのプロパティにバインディングしてるので、そのプロパティを変更すれば対応したラベルの表示が変わる
0245デフォルトの名無しさん
垢版 |
2019/01/05(土) 02:06:50.64ID:wYmtdyH8
>>244
ごめん、後半があまり分かってないから確認しながら返信してる
分からないことが多くて申し訳ない

> 受信したデータを表示できる文字などに変換する部分のことをパースと言ってる。ラベルは関係ない。
現状VMまででやっているのは文字コードの変換、不要なHTMLタグの除去、res構造体にID、名前、時間、レス番、本文に分けてstring型で入れてる
ここまでをパースと呼んでいる? それとももっと他に含むものがある?

> MVVMの形にのっとってたらビューセル内のラベルが対応したVMのプロパティにバインディングしてるので、そのプロパティを変更すれば対応したラベルの表示が変わる
ビューセルと言うことはListView使うこと前提で良い?
上で書いたres構造体をそのままビューセルにバインディングするということ?
確かにそれは速く描けるのだけど、そうすると安価やリンクを挿入できない問題に至る
res構造体の本文要素をさらに細かくすると、レス毎に分解のされ方が違うから単純なバインディングで解決出来ない(ように思う)
0246デフォルトの名無しさん
垢版 |
2019/01/05(土) 02:14:00.15ID:wYmtdyH8
ラベルのテキストで省略とかがあることを考えるとプロパティの値に応じて見た目を弄ることが出来るわけだから本文を受け取ってそれを安価部リンク部で表示を変えるビューを自作すれば良いのかな?
どう作るか見当つかないけど…
0247デフォルトの名無しさん
垢版 |
2019/01/05(土) 02:26:47.29ID:Up+SqPJX
ListView もしくはそんな感じのネイティブ実装にするかの 2 択になる
ListView の場合、バインディングするとしたら表示時に全レス分 ViewModel 作ると遅いので、
俗に言う Infinite Scroll と言われる実装にしないと現実的なパフォーマンスは出ないと思うよ
0248デフォルトの名無しさん
垢版 |
2019/01/05(土) 02:43:00.03ID:I8ikb8z6
バースがどこまで含むかはやりたいこと次第だと思われ。
とにかく何かしらの受信データから処理に必要な値なりを抽出する部分

ViewCellにラベル乗っけたら安価とか何でも出来ると思うけどダメなん?

分解のされ方が違うから単純なバインディングで出来ないはよく分からんのだけど、DataTemplateSelector的な話かの
0249デフォルトの名無しさん
垢版 |
2019/01/05(土) 02:59:55.03ID:Qp3aXCwO
レスの本文を表示するときに、分解された部分毎にラベル割り当てようとしてるんだろ。
そうすると、レスの内容によってURLやアンカーの数が違うからひつなラベルの数も違うから設計時にバインディングできないってことだろ。
0250デフォルトの名無しさん
垢版 |
2019/01/05(土) 03:02:41.65ID:Qp3aXCwO
本文用のらべる1個にしてFormattedTextで色付けして、部分クリックとかできたっけ?
0251デフォルトの名無しさん
垢版 |
2019/01/05(土) 03:10:09.19ID:wYmtdyH8
>>248
もしかして何か根本的なところで俺の理解がおかしい…?
色々弄ってる最中で本文しか表示してないけど今はこんな感じなんだ
https://i.imgur.com/8fglyEg.jpg
これを
https://i.imgur.com/BLqhbky.jpg
こんな風に部分的に選べるようにしたいのだけど、ViewCelって一律にバインディング指定してるから安価のあるレスの安価のある場所だけ別にバインディングするって出来ないと思ってる
まさに>>249

>>247
とりあえずListViewで攻めてみる
ネイティブで書く場合はまた別のスレになるのかな
0253デフォルトの名無しさん
垢版 |
2019/01/05(土) 03:33:48.71ID:Qp3aXCwO
後はこのFormattedTextの中身を組み立てる部分をどこに書くかだね。UWPの場合、添付プロパティ追加してそこに書いたりてきるけど。俺はxamarin使った事はねぇからそこは詳しいヒトにまかせる。
0255デフォルトの名無しさん
垢版 |
2019/01/05(土) 08:58:02.19ID:I8ikb8z6
自分がやるとしたらViewModelにはOservableCollection<FormattedTextSrc>みたいなのがあってFormattedTextSrcはSpanなどにほぼ一対一対応することができるただのデータ。
たとえばList<Tuple<int,string>>などをプロパティで持っててintはその文字列をどのように扱うかがわかるもの。intはもちろんenumか何かにすべき。

でUI側のResViewなりがOnBindingContextだっけ?バインディングした時に上がるメソッドでそのListからFormattedTextを組み立てる
0256デフォルトの名無しさん
垢版 |
2019/01/05(土) 12:46:56.17ID:wYmtdyH8
>>255
OnBindingうんたらで大体なんとかなった!
https://i.imgur.com/wGRoAVF.jpg

細かな問題としてはvmまでにTupleのlistを作っても上手く渡せなかった(Timeout exceeded ...エラー出た)からvでstringを分解してること
中程度の問題としてはviewcellの塊自体にロングタップのイベント付ける方法が分かってないこと(多分、iOSプロジェクトの中にexportrendererみたいなのを書く? 出来なくともタップで代用できる気もしてる)

かなり大きな問題はセル内の安価をタップしたときに安価先を表示する方法(指定されたレスの実体なり参照なり位置なりを渡す方法と現在の画面の上にこんな感じに https://i.imgur.com/twtzEHs.jpg 表示か移動かする方法)の見当が全く付いてないこと
viewcellのOnBindingContext..は親画面のことも前後のレスの情報も知らないからそれを渡す方法が必要だよね?
0257デフォルトの名無しさん
垢版 |
2019/01/05(土) 13:11:09.52ID:JyV0/gdK
Viewは自分の表示位置は取れなかったかな…
スクリーン上でのView位置を取るような奴が何かあった気がするが。
0258デフォルトの名無しさん
垢版 |
2019/01/05(土) 13:13:03.11ID:JyV0/gdK
後Viewの親は辿れると思うからそこで親のクラスを見つけるとかは出来ると思う
0259デフォルトの名無しさん
垢版 |
2019/01/05(土) 15:16:59.55ID:wYmtdyH8
>>258
親要素辿ってコンソールに表示できた
あとは自力でアプローチしてみる
色々ありがとう!
0261デフォルトの名無しさん
垢版 |
2019/01/05(土) 18:11:57.22ID:wYmtdyH8
だいぶ専ブラっぽい見た目になってきた
そういえばリストを渡せない問題はデフォ値がコピペ元のstringのままだったからだった
https://i.imgur.com/ecL8Ahs.jpg
安価はListViewにvmをバインディングして再帰的になんとかしようかなと考え始めてる
明日は予定あるし明後日から仕事始まるからあまり時間割けなくなるけど頑張る
0263デフォルトの名無しさん
垢版 |
2019/01/11(金) 11:48:19.52ID:TdN/GMNr
visual studio 2015 Professionalでxamarin開発を始めたら
後々困ったりすることある?
0264デフォルトの名無しさん
垢版 |
2019/01/11(金) 11:58:12.51ID:2VFN1pxP
>>263
対象のフレームワークが使えるなら大丈夫でしょうが、STANDARD2.0を使うのに1手間必要とかあるみたいですね。
0266デフォルトの名無しさん
垢版 |
2019/01/15(火) 17:57:16.10ID:OtrbO0R6
WebAPIでホストのデータを取得し、Xamarin.Formsで受け取る処理を書いています。
WebAPIはLinuxでの実行も考えていますので、.NETCore 2.0 で、Xamarin.Forms は .NETStandard 2.0 を選択しています。
WebAPI側と、Xamarin側とで共通な処理を.NETCore 2.0のライブラリで実装しようとしましたが、プラットフォームが違うのでXamarin側で利用できません。

こういった場合、同じ内容を .NETStandard 2.0 のライブラリを作成し、ソースはリンクを張れば実現できるのでしょうか。
もしくは、「普通はこうやる」というのがあれば教えてください。
0268デフォルトの名無しさん
垢版 |
2019/01/16(水) 09:03:37.59ID:2To5ZFPl
>>267
参照でのエラーです。

エラー NU1201 プロジェクト foo.core は netstandard2.0 (.NETStandard,Version=v2.0) と互換性がありません。 プロジェクト foo.core がサポートするもの: netcoreapp2.1 (.NETCoreApp,Version=v2.1) foo D:\Temp\VS2017\foo\foo\foo\foo.csproj 1
0269デフォルトの名無しさん
垢版 |
2019/01/16(水) 09:15:52.86ID:nwP/4ZMI
それサーバー側?
Standardのバージョン違うのでないとダメとか?
0270デフォルトの名無しさん
垢版 |
2019/01/16(水) 09:48:27.84ID:2To5ZFPl
>>269
.NETCore2.1 WebAPI のプロジェクトでのエラーです。
参照先は .NETStandard 2.0 クラスライブラリです。

とりあえずnuget経由なら、.NETCore2.1 のプロジェクトに .NETStandard のライブラリを追加できるようなので試してみます。
0271デフォルトの名無しさん
垢版 |
2019/01/19(土) 03:27:56.94ID:yTujcmrM
共通ロジックは.NetStandardクラスライブラリで作って、NugetパッケージにしてNASに放り込んどく
NASをローカルリポジトリに登録しといて、プロジェクトごとに欲しいやつを食わせる
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況