Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
どうしてこのコードエラーになるんですか?
Search
RyotaMurohoshi
January 15, 2015
Technology
0
30
どうしてこのコードエラーになるんですか?
2015/01/15 Xamarin 本社に Mono 申したい会 兼 Xamarin 新年会で発表した際の資料です
※元々はSlideShareで公開していた資料です
RyotaMurohoshi
January 15, 2015
Tweet
Share
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Tilemapのアップデートについて
ryotamurohoshi
0
65
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
570
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
790
Odin Validationはいいぞ!
ryotamurohoshi
2
1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.4k
Unityでも、新しいC#
ryotamurohoshi
0
1.4k
Riderはいいぞ!
ryotamurohoshi
1
3.7k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.6k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Other Decks in Technology
See All in Technology
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
120
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
260
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
500
Cosmos World Foundation Model Platform for Physical AI
takmin
0
970
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
380
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
量子クラウドサービスの裏側 〜Deep Dive into OQTOPUS〜
oqtopus
0
140
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
1.3k
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
650
KATA
mclloyd
PRO
34
15k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
110
Done Done
chrislema
186
16k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
390
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
110
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
110
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Transcript
Ͳ͏ͯ͜͠ͷίʔυ ΤϥʔʹͳΔΜͰ͔͢ʁ ྄ࣨଠ 2015/1/15()(Xamarin(ຊࣾʹ(Mono(ਃ͍ͨ͠ձ(݉(Xamarin(৽ձ
͍͢·ͤΜ
೦ͳ͕Β Xamain.iOSͱXamarin.Androidͷ
͠·ͤΜʂ
͜ΜΜ ͓ٱ͠ͿΓͰ͢ ͘͠ ͡Ί·ͯ͠
UnityίϛϡχςΟ͔Βདྷ·ͨ͠ʂ
ࣗݾհ • ໊લ:྄ࣨଠ • ձࣾ:FULLERגࣜձࣾ • ࣄ:UnityήʔϜΤϯδϯͰͷεϚϗήʔϜ։ൃ • ίϛϡχςΟ:,ຊAndroidͷձUnity෦ͷ͓ख͍
UnityήʔϜΤϯδϯ monoΛ͍ͬͯ·͢ʂ iOSɺAndroidɺMacɺWinɺήʔϜઐ༻ػ͍Ζ͍Ζಈ͘ (Ͷɺ΄ΒʂXamarinؔͳ͘ͳ͍ʂ)
ͯ͞ɺ
Xamarinɺͦͯ͠mono ͢Β͍͠Ͱ͢Ͷʂ
(৮ͬͨ͜ͱແ͍͚ΕͲɽɽɽ) UI෦ϓϥοτϑΥʔϜݻ༗ͷػೳΛআ͖ ίΞϩδοΫͷ෦Λڞ௨ԽͰ͖Δʂʂʂ ͢Β͍͠ʂ
ͭ·Γ Andorid༻ʹॻ͍ͨίΞϩδοΫ iOSͰಈ͘ʂ
100%ಈ͘ʂ
Μʁ
ຊʹʁ!ᴺ!ᴺ_ŋ)ŢƄŖ
Xamarin͢Β͍͠ʂ ͚ͲɺϩδοΫଆ࣮100%Ͱͳ͍Ͱ͢ΑͶ
Limita&ons h"p:/ /developer.xamarin.com/guides/ios/advanced_topics/limita8ons/
iOSͳͲ࣮ߦ࣌ͷίʔυੜΛೝΊ͍ͯͳ͍ڥ͕͋Δ ͦ͏͍͏ڥͩͱJITίϯύΠϧͰ͖ͳ͍ ͦΜͳڥͩͱAOT(Ahead)Of)Time)ίϯύΠϧʂ
͚ͲɺAOTίϯύΠϧͩͱ͍Ζ͍Ζ Ͱ͖ͳ͍͜ͱ͕͋ͬͨΓɺ Τϥʔʹͳͬͯ͠·͏ίʔυ͕͋Δ
ྫ͑δΣωϦΫε
͜ΜͳΫϥε͕͋ͬͯ static class Utility{ static class PredicateOf<T>{ public static Func<T,
bool> Always = t => true; } public static void ShowIfAble<T> (T source, Func<T, bool> predicate){ if (predicate (source)) Console.WriteLine (source); } public static void Show<T> (T source) { if (PredicateOf<T>.Always (source)) Console.WriteLine (source); } }
iOSͰ࣍ͷΑ͏ʹݺͼग़͢ͱɽɽɽ Utility.Show(1);
ʊਓਓ!ਓਓʊ ʼ!ಥવͷࢮ!ʻ ʉY^Y^Y^Yʉ
Why?
͍ɺ ʮAOTͷ੍ݶʹҾ͔͔ͬΔ͔Βʯ ͬͯͷΘ͔ΔΜͰ͚͢ͲͶ
Xamarin༷ࣾʹMonoਃ͍ͨ͠ ʮAOTίϯύΠϧڥԼͰɺ ͳ੍ͥݶ͕͋Δ͔ɺ ͦͷཧ༝ɾΈΛڭ͍͑ͯͩ͘͞ʯ
ͪͳΈʹ͖ͬ͞ͷίʔυ static class Utility{ static class PredicateOf<T>{ public static Func<T,
bool> Always = t => true; } public static void ShowIfAble<T> (T source, Func<T, bool> predicate){ if (predicate (source)) Console.WriteLine (source); } public static void Show<T> (T source) { if (PredicateOf<T>.Always (source)) Console.WriteLine (source); } }
ͪͳΈʹ͖ͬ͞ͷίʔυ LINQ%to%ObjectsͷதͰಉ͡Α͏ͳ͜ͱ͍ͬͯΔ Countͱ͔FirstOrDefualtͱ͔ɺFunc<T,%bool>ͳड़ޠؔΛ ҾʹͱΔͷɾͱΒͳ͍ͷͷΦʔόʔϩʔυ͕͋ΔͭͰ (iOSͳͲAOTͳڥͰ#ifΛར༻ͯ͠ɺΘͳ͍Α͏ذ) αϯϓϧͳͨΊͷίʔυͰͳͯ͘ɺ࣮༻ίʔυʂ h"ps:/ /github.com/mono/mono/blob/master/mcs/class/System.Core/System.Linq/Enumerable.cs#L48
ิ ӿຊ͞Μ(@atsushieno)͕ ʮΠϯαΠυXamarin(6)*Xamarin.iOSͰ༻͢ΔϥΠϒϥϦʯ ͷίϥϜͰ͋Δఔɺཧ༝Λઆ໌͞Ε͍ͯ·͢ɻ Ͱ͜Ε࠷৽൛Ͱͳ͍Α͏Ͱ͢ɻ h"p:/ /www.buildinsider.net/mobile/insidexamarin/06
એɾใࠂ ୈ2ճͷJXUGͷษڧձͰɺ ʮUnityͩͱLINQࢮʹ·͘ΔʯͳLT͠·ͨ͠ UnityͰࢮͳͳ͍(͜ͱΛඪͱͨ͠) LINQޓϥΠϒϥϦ࡞ͬͯެ։ͯ͠·͢
ɹ͓ئ͍ monoͷ$$aot=fullͳϏϧυͱ$$full$aotͳ.exeͷ࣮ߦɺ ࢼͨ͠ͷͰ͕͢ɺ͍·͍ͪ͜ΕͰ͍͍͔͔Γ·ͤΜ .NETɺmonoͷϥϯλΠϜίϯύΠϧ ʹ͍ͭͯΞυόΠε͍͚ͨͩΔͱخ͍͠Ͱ͢
ؔ࿈ϦϯΫ • h#p:/ /www.mono,project.com/docs/advanced/aot/ • h#p:/ /www.mono,project.com/docs/advanced/run7me/docs/ aot/ • h#p:/
/developer.xamarin.com/guides/ios/advanced_topics/ limita7ons/
͓·͚2 F#ͰίΞϩδοΫ࡞ͬͯ UnityͰήʔϜ࡞ͬͯΈ·ͨ͠ PS#Vitaͷ࣮ػͰಈ͔ͨ͠Βࢮʹ·ͨ͠ ޙͰΞυόΠεԼ͍͞