はてなキーワード: Xamarinとは
親愛なるちょまど氏へ
あなたの情熱と努力により、Xamarinは素晴らしい旅路を歩んできました。あなたのテクニカルエバンジェリストとしての活動は、開発者コミュニティに革新的なアイデアや熱意をもたらし、Xamarinが成功に導かれました。Xamarinのサポート終了は新たな時代の幕開けです。あなたの貢献が、この旅の終わりを祝う素晴らしい瞬間に繋がりました。
あなたの「Xamarinするならまず人脈」というスローガンは、技術だけでなく人との繋がりも重要だと私たちに気づかせてくれました。そして、「Xamarinはいいぞ!」との熱い言葉は、多くの開発者たちにとってインスピレーションとなりました。
私たちがXamarinのサポート終了という新たな局面に立ち会う今、あなたはその歴史の一編を締めくくる役割を果たしました。私たちはこれからも新たな冒険に向けて進んでいくことでしょう。その際にも、あなたの情熱と洞察力が輝きを放ち、新たな成功を築いていくことでしょう。
おめでとうございます!これからの未来もさらなる輝かしい瞬間で満ち溢れることを願っています。
心からのお祝いを込めて
Xamarinするには、まず人脈♪
FlutterもXamarinもRNもCordovaも基本クセが強いし(特にiOS側が)ガワネイティブでWebview貼るだけならネイティブでいいよ
最近のAndroid WebViewは基本的にAndroid ChromeだしWKWebViewはMobile Safariなので検証もそんなに大変じゃない
Cordovaはhtmlを使ってローカルで動くアプリのビューを組み立てるelectronみたいなやつだからユースケースが別
Androidでガワネイティブアプリ(Webとしてアプリを実装してWebViewで表示するだけスマホアプリ)を作りたい場合ってどういう技術使うのが良いの?
具体的には広告関係だけネイティブっぽい機能かライブラリ使って表示できるようにして、
機能的なアプリ側の部分は基本ほとんどガワネイティブで実装したいと思ってる、なるだけ手間がかからない方法で。
一番ラクなPWAとかTWAはAdmobみたいな広告が載せられないっていう問題があるんよね。広告載せたいためだけのガワネイティブ化。
それは確かに現時点でのXamarinのプレゼンスを考えると沢山おるやろなぁ
まぁ、そもそもボランティア自体を受け入れる前提がないんだから無意味な話だけどな
今のお役所でオープンソースの開発を一発ネタじゃなくてこういう継続運用が必要なプロジェクトで採用できる体制なんか全く期待できないでしょ。
それでもXamarinのせいにしたがる人がいっぱい居るよな
まぁ、はてな村にはXamarinに親を殺された人が結構居るみたいだから仕方ないのかもしれん。
というか、COCOAをAndroidとiOSで別に作ってたら、それぞれ予算半分でもっとゴミになってたとしか思えないけど、別に作るべきって人達はよりよい未来を想像できるのかな?
最初に結論から書くと、「毎日新聞さん正論すぎる」「だけどまだちょっと時間あるで」。
『「COCOA」がグーグルとアップル基本ソフト最新仕様に未対応』
→ https://mainichi.jp/articles/20210315/k00/00m/020/165000c
うん。コード見てる人はだいたい知ってる。
まあ、そうですね…。
COCOAの動作の基盤となっているのは、Exposure Notification API(曝露通知API)というやつで、GoogleとAppleが共同で開発した、AndroidとiOSの両方で使えるAPI。OSと近いところで動くライブラリみたいなもので、おかげでBluetoothを使っても電力消費は最小限で済むし、アプリがプライバシー関係でよからぬ手出しができないようにもなってる。iPhoneではiOSの一部として組み込まれているし、AndroidはGoogle Play経由の「Google Play 開発者サービス」の新しい版に含まれてる、みたい。
このAPIにはバージョンがあって、V1ってのが最初のやつで、もう少し検出方法が洗練されたV2ってのがある。Exposure Notification APIのセットの中にV1とV2が重複しつつ混在してて、今から作るアプリなら使えるAPIバージョンをアプリ側で確認して、使える方を使う、という感じになるかと思う。
現在、COCOAがまがりなりにも動いていることからも分かるように、API V2が使えるようになっても、後方互換性のためにV1も使えるようになっている。Apple/GoogleはV1のメソッドとかには「deprecated」(使用不可)っていう印をつけて、今後は使わないように、と言ってる。
「deprecated」になったやつは、Apple/Googleは「もう使わんでね。いつ使えなくなっても文句言わんでね」という扱いをする。だから、「ソフトの更新次第で作動停止」という指摘は間違いではない。間違いではないが…。
Apple/Googleのデベロッパならよく知っていると思うけれど、「deprecated」になったからといって、そのAPIを予告なく使えなくすることは、まず、ないのです。
増田はIOSのデベロッパなのでiOSの例をあげると、画面を表示する基本的な部品であるところの UIWebView っていのうがあったんだけど、これはiPhone OSの頃からあった古い古い部品で、これまでずっと使われてきた。これはwebの画面を表示するのと同じやりかたができるので、iOSのアプリはほぼみんな使ってたんだけど、いろいろ問題もあるので、iOS 8の頃に WKWebView っていう新しい部品を出したのです。で、UIWebView をdeprecatedにしたのがiOS 12のとき。
ここからAppleは、「UIWebViewを使ったアプリをApp Storeに提出したら警告するからね」→「今後新規アプリやバージョンアップのときUIWebView使ってたらリジェクトするからね」→「UIWebView使ってるアプリはAppStoreから削除するからね」という感じにデベロッパの様子を見て期限を延長したりしながら段階を踏んで、ほんとに削除(一時的な非表示)始めたのは去年の12月ですよ。しかもiOS 14でもまだ既存アプリのUIWebViewは動く。
もちろん、滅茶苦茶使われていたUIWebViewと比べたら、Exposure Notification APIみたいなマイナーなAPIでこんな丁寧なことはやらないかもしれないけれど、でも重要度で言ったらExposeure Notification APIなんて「超重要」でしょ。V1が全然使えないならまだしも、一応動いてるし。
Exposure Notification API V1は、使えなくなる前には必ずデベロッパに期限を知らせるはずで、いきなり切るはずはない(ないよね(ないんじゃないかな(まちょっと覚悟はしておけ)))。
だから、COCOAが急に使えなくなっちゃう! と不安になる必要は、当面はないと思っていい。かな。
これはスレたデベロッパであるがゆえの油断であると言われてしまえば、そのとおりです。「deprecated」は「deprecated」。普通のプロジェクトなら、すぐさま対応を検討して、バージョンアップ計画を立てるのが正しい。普通のプロジェクト、なら。
記事中では「21年2月になって、ようやく最新使用に対応するための具体的な検討に着手した」って言ってて、まあこれはダメなんだけど、そもそもプロジェクト運営がグダグダだったんでしょうがねーんじゃね? というのがいちヲチャーとしての感想ではある。だって、Android版動いてなかったんじゃよ? プロジェクト立て直す時間はあるはずなので、体勢立て直してから検討してもいいかな、という気はしている。それくらいの時間はある。はず。
そういう意味で、毎日新聞の記事はちょっと叩きすぎな感はある。正論ではありますよ。正論では。
で、ここでぶっちゃけてしまうと、実はもうCOCOAは要らないっちゃ要らないのです。
保健当局がアプリを作れない/作らない国/地域のために、iOSでもAndroidでも、AppleとGoogleが用意したCOCOA相当機能「Exposure Notification Express」というやつが、OSに組み込まれている。これを使うことにすれば、当局はサーバ側のバックエンドだけ用意すればいい。
『グーグルとアップルの新型コロナ接触確認機能に新たな仕組み「Exposure Notification Express」――日本には影響なし』
→ https://k-tai.watch.impress.co.jp/docs/news/1274374.html
『Supporting Exposure Notifications Express』
「だけ」って簡単な言うな。そりゃ大変だけろうれど、わざわざ使いづらい/どマイナーなミドルウェアXamarin(Microsoft謹製)使って、頑張ってクロスプラットフォームなアプリを開発/運用するよりはずっと負担は少ないよね(必要な予算も)。
もう、バンザイして、Expressにしたらいいんじゃね? と、増田は考えるんじゃよ。知らんけど。
COCOAは嫌いになっても、Exposure Notificationの仕組みは嫌いにならないでください…(´・ω・`)
COCOAは出自がアレで、採用の意思決定が不透明で、契約もテキトウで、アプリ運用も誰が何をどうしたらいいのかわかってない/身動きができない、という悲惨なアプリです。
でも、2月以降変わってきたんですよ。COCOAの立て直しチームにCode for Japanの人やオープンソースの知見を持った方が参加して、githubでのissue解決の動きも再開している。ちょっと見てみてくださいよ、いろんな人が寄ってたかってコードを検証して、それが反映されつつあります。
『Issues・cocoa-mhlw/cocoa・GitHub』
→ https://github.com/cocoa-mhlw/cocoa/issues
いままでよりはまともに動くようになるはず。
前述のように、Exposure Notification APIで消費されるCPU資源も、通信も、ストレージも、バッテリも微々たるものです。
Exposure Notification API自体は非常によくできており、プライバシーに関しても、よくまあここまで、というくらい考慮されています。アプリ側でいろんな悪さを仕込むことは技術的には可能ですが、小細工を仕込んでもAppleやGoogleのアプリ審査で弾かれます(通常の小細工入りアプリが弾かれる程度には)。運営への不信からプライバシーについても疑ってしまう人もいるけど、COCOAはその点まず心配ありません。
だから、渋々でいいので、もうしばらくスマホの奥においといてもらえませんか。そんなにお邪魔にはならないですよ?
そして万が一曝露通知が届いたりしたら宝くじ大当たり級の驚きが(うれしくない)
人の不幸は密の味。なによりの大好物は失敗プロジェクトの内情暴露、という増田だ。
さて、今日もいつものようにCOCOAを巡るすったもんだとか https://www.tokyo-np.co.jp/article/87051
ワクチン接種管理システムの納期が2週間とか https://www.nikkei.com/article/DGKKZO69301930Z10C21A2EA2000/
それをおかずにしておいしいご飯を食べながら、年老いた母に向かって上機嫌に語った。日本のITがいかに惨憺たる有様なのかを語った。奴らは失敗したし、これからも失敗するだろう。なぜなら日本はIT技術者を軽視しすぎていて、商社きどりのITベンダーが何か仕事したつもりになってそれでお金を貰える国だからね。といった具合だ。もっともこれは俺が何度も何度も繰り返している社会に対する呪詛で、目新しいところは何もなかった。
「どうでもいい話だね」
と沢庵を口に運びながらふいに母が言った。
「あんたが、過小評価されてようが、どこかのシステムの一つも満足に出来もしない誰かが高給をもらってるとか、そんな話は――」ポリポリと沢庵をかみしめて、飲み込んだ。「――どうだっていい話だよ」
俺はせっかくの上機嫌に水をさされて、少しムッとした。間髪をいれずに母は続けた
「COCOAってのはソースが公開されて、誰でも欠陥を発見できるようになってたんだろ?」
ニュースか何かで知ったらしい。
そうさ、だからCOCOAの欠陥だって、4ヶ月前に発見されてissueとして報告されてた。でも元請けのベンダーも下請けもみんな無視したんだ。
「それは残念だったかもしれないけどね。それもどうでもいい話さ」
そんなことはないだろう、と俺は食後のお茶を淹れながら反論した。
元請けってのは正常に動作するシステムを納品する責任があるんだ。彼らはその責任を果たさなかった。発注者の厚労省だって、検収責任があったのに怠っていた。
「発注者にも元請けにも責任がある。それは道理だね。ただ、私が知りたいのは、あんたの責任さ」
責任?プロジェクトに無関係の、安月給のしがないプログラマの俺の責任?なんだそりゃ?
きょとんとして、母親の目を見た。茶をすすっている皺くちゃの顔が怒りの感情をたたえていることに長年の付き合いのある俺はすぐに気づいた。
「あんたはプログラムがわかるんだろ。あんたは問題の指摘を見てどうしたんだい?」
ギクリとした。俺はそのIssueをgithubで見たわけではなかった。正確にはCOCOAの不具合が明らかになってから、どこからともなくTwitterでまわってきたスクリーンショットを見ただけだった。
「他のプログラマだってそうだ。その指摘は正しかったんだろ?プログラムを見たらそれが正しいことはわかったんだろ?なんで、これはすぐに対応しなきゃいけない。みんなで大騒ぎしよう、とはなんでならかったんだい?そうしていたら、もっと早く問題が解決したかもしれないのに」
俺は黙るしかなかった。正直なところ俺はCOCOAのソースコードすら読んではいなかった。だってXamarinだし、目もくらむような一流企業の年下の若者の書いたコードだし、そもそもアプリは専門外だ。だがそれを母に言って納得させられる自信はなかった。
「それだけの能力がなかったからできなかったっていうなら、仕方ないことさね。それは責められるもんじゃないよ。仕事で請け負ったわけでもないしね」
能力がない、という言葉がまたチクリと俺の胸に突き刺さった。実際のところ、がんばって読み解くぐらいのことはできたかもしれない。GoogleとAppleのドキュメントを読んで、issueの内容を検証する、ぐらいのことだったら出来た可能性もある。
だが、俺はやらなかった。やらなかったから、出来なかったのだ。
プログラムができる人間としてissueが正しいかを検証する責任?
「違う。それは出来なくていいのさ。出来る人がいればたくさんいれば良かったろうけどね。そうじゃない」
じゃあ何?
「このコロナっていう大変な時代に、みんなの命がかかっている大事な話に、『プログラマとして』関わる責任だよ」
ピンとこなかった。俺はコロナ関連のシステムを作っているわけじゃないし、それは他の連中の仕事だ。
「いいかい?私らはプログラムのことなんてさっぱりわからない。エーピーアイってのが何のことかさえよくわからないんだ。あんたにはわかるんだろ?」
「つまりあんたは、私らとは違って物事がようく見えているはずなんだ。私らには逆立ちしたってできっこないことが、出来るはずなんだよ」
で、でも、具体的に何をしろっていうんだよ・・・・・・
「何だっていいさね。あんたの残業が多くて、給料が安いのも知っているから、出来る事なんて全く何もなかったって仕方ないかもしれないね。でも―――」母は目を見開いて俺を真っ正面に捉えた。
「実際に作業をしている当事者をおもしろおかしく冷笑したり揶揄えるほどあんたが無関係だ、とまでは思わないね」
俺は押し黙って下をみるしかなかった。炬燵布団の単調な色合いがくすんで見えている。
「私らはね、これでもあんたたちプログラマに敬意を払ってきたつもりなんだ。給料が安いのだって、可哀想に思っているよ。早くあんたたちがその努力に見合った待遇を勝ち取れたら良い、と本当に思っているよ」
「だけどね、こんな大変な時に、みんなの命がかかっている時に、あんたのようなプログラマーが給料が安いからやる義理はないだの、責任の所在がどうだの、そういう何も生み出さない評論家じみた減らず口を止められないのはどういうことなんだい?そんなことをあんたたちが言う権利は本当にあるのかい?」
「結局のところあんたらは」母は、茶の最後の一滴をすすった「私らの命にすら興味がないんじゃないのかい?」
そんなことは・・・・・・
と反論しようとして、自分が言おうとしていることが何もないことに気づいた。そうじゃないんだ。そうじゃないんだけど・・・・・・とめどない言い訳が続いて俺は口をつぐむしかなかった。