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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
RyotaMurohoshi
January 15, 2015
Technology
34
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
どうしてこのコードエラーになるんですか?
2015/01/15 Xamarin 本社に Mono 申したい会 兼 Xamarin 新年会で発表した際の資料です
※元々はSlideShareで公開していた資料です
RyotaMurohoshi
January 15, 2015
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Tilemapのアップデートについて
ryotamurohoshi
0
87
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
610
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
870
Odin Validationはいいぞ!
ryotamurohoshi
2
1.1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.5k
Unityでも、新しいC#
ryotamurohoshi
0
1.5k
Riderはいいぞ!
ryotamurohoshi
1
3.8k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.7k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Other Decks in Technology
See All in Technology
プロダクトだけじゃない、社内プロセスにおける自動化・省力化ノススメ
kakehashi
PRO
1
3.6k
ボーイスカウトルールでメモリやスキルを改善しよう
azukiazusa1
1
340
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
貴方はどのエンジニアリングを磨くのか
hatyibei
0
120
SRE本の知られざる名シーン / The Hidden Gems of Google SRE Book
nari_ex
1
360
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
3
3.6k
Baseline対応のDOMの型定義を作った
uhyo
3
730
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
180
SRE Next 2026 何でも屋からの脱却
bto
0
600
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
220
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
13
6k
ローカルLLMとLINE Botの組み合わせ その3 / LINE DC Generative AI Meetup #8
you
PRO
0
130
Featured
See All Featured
Between Models and Reality
mayunak
4
370
Color Theory Basics | Prateek | Gurzu
gurzu
0
390
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
870
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
63
55k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Language of Interfaces
destraynor
162
27k
Into the Great Unknown - MozCon
thekraken
41
2.6k
The Spectacular Lies of Maps
axbom
PRO
1
850
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ͷ࣮ػͰಈ͔ͨ͠Βࢮʹ·ͨ͠ ޙͰΞυόΠεԼ͍͞