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
24
どうしてこのコードエラーになるんですか?
2015/01/15 Xamarin 本社に Mono 申したい会 兼 Xamarin 新年会で発表した際の資料です
※元々はSlideShareで公開していた資料です
RyotaMurohoshi
January 15, 2015
Tweet
Share
More Decks by RyotaMurohoshi
See All by RyotaMurohoshi
Unityの合同同人誌や合同商業誌を書いてる僕は感想やレビューや評価が欲しい
ryotamurohoshi
0
490
Unity 2021.1での Unityパッケージの名称変更について
ryotamurohoshi
0
680
Odin Validationはいいぞ!
ryotamurohoshi
2
910
Tilemapはいいぞ!2020 〜すごいぞ、プロジェクト専用拡張Brush〜
ryotamurohoshi
0
2.3k
Unityでも、新しいC#
ryotamurohoshi
0
1.3k
Riderはいいぞ!
ryotamurohoshi
1
3.4k
Riderのススメ〜俺はRiderここが好き〜
ryotamurohoshi
1
2.3k
Unity開発者に伝えたい.NETのこと
ryotamurohoshi
4
37k
ImportedLinqのススメ
ryotamurohoshi
0
1.3k
Other Decks in Technology
See All in Technology
x86-64 Assembly Essentials
latte72
4
470
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
540
ライフステージの変化を乗り越える 探索型のキャリア選択
tenshoku_draft
1
120
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
360
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
820
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
プロダクト開発者目線での Entra ID 活用
sansantech
PRO
0
140
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
210
QAエンジニアが スクラムマスターをすると いいなぁと思った話
____rina____
0
150
AIエージェント元年@日本生成AIユーザ会
shukob
1
260
サバイバルモード下でのエンジニアリングマネジメント
konifar
22
7.4k
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
370
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Side Projects
sachag
452
42k
The Language of Interfaces
destraynor
156
24k
Documentation Writing (for coders)
carmenintech
68
4.6k
Building Adaptive Systems
keathley
40
2.4k
Music & Morning Musume
bryan
46
6.4k
Embracing the Ebb and Flow
colly
84
4.6k
Product Roadmaps are Hard
iamctodd
PRO
51
11k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Become a Pro
speakerdeck
PRO
26
5.2k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
660
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ͷ࣮ػͰಈ͔ͨ͠Βࢮʹ·ͨ͠ ޙͰΞυόΠεԼ͍͞