Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
どうしてこのコードエラーになるんですか?
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
96
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
630
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
900
Odin Validationはいいぞ!
ryotamurohoshi
2
1.1k
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.6k
Unityでも、新しいC#
ryotamurohoshi
0
1.5k
Riderはいいぞ!
ryotamurohoshi
1
3.8k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.8k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
38k
Other Decks in Technology
See All in Technology
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
5
25k
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.5k
消えない 動かない 効かない
yama3133
1
110
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
450
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
540
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
160
AI時代、データエンジニアが一番おもろい
genshun9
0
130
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
3
180
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
350
AIで仕事のやり方を変える
matsu7874
3
1.1k
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
150
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
41
2.7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
270
Code Review Best Practice
trishagee
74
20k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
BBQ
matthewcrist
89
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
730
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
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ͷ࣮ػͰಈ͔ͨ͠Βࢮʹ·ͨ͠ ޙͰΞυόΠεԼ͍͞