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
Xamarin iOS
Search
USAMI Kosuke
November 16, 2018
Programming
0
690
Xamarin iOS
Mobile Act OSAKA #7
https://mobileact.connpass.com/event/99908/
USAMI Kosuke
November 16, 2018
Tweet
Share
More Decks by USAMI Kosuke
See All by USAMI Kosuke
Onsager代数とその周辺 / Onsager algebra tsudoi
usamik26
0
690
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
240
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
370
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
530
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
790
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
710
UICollectionView Compositional Layout
usamik26
0
850
Coding Swift with Visual Studio Code and Docker
usamik26
0
550
Swift Extension for Visual Studio Code
usamik26
2
1.1k
Other Decks in Programming
See All in Programming
存在論的プログラミング: 時間と存在を記述する
koriym
2
170
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
150
AI活用のコスパを最大化する方法
ochtum
0
250
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
2.5k
Windows on Ryzen and I
seosoft
0
330
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
190
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
190
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
310
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2k
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
210
API Platformを活用したPHPによる本格的なWeb API開発 / api-platform-book-intro
ttskch
1
150
コードレビューをしない選択 #でぃーぷらすトウキョウ
kajitack
3
1k
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
90
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
150
Evolving SEO for Evolving Search Engines
ryanjones
0
160
Faster Mobile Websites
deanohume
310
31k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
380
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
450
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
210
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
The Limits of Empathy - UXLibs8
cassininazir
1
270
Transcript
Xamarin Λͬͨ iOS ΞϓϦ։ൃͷݱ͔Β Ӊࠤݟެี Fenrir Inc.
Xamarin ͱ
Xamarin ͱ • ෳͷϓϥοτϑΥʔϜʹରԠͨ͠ΞϓϦ։ൃڥ • iOS / Android / ...
• .NET / Mono ϕʔε • C# Ͱͯ͢ͷίʔυ͕ॻ͚Δ • ʢC# Ҏ֎ʹ F# ͑Δʣ
ωΠςΟϒΞϓϦ • ֤ OS ͷωΠςΟϒ API ͕͑Δ • ωΠςΟϒ API
ͷ C# όΠϯσΟϯά • ֤ OS ͷωΠςΟϒ UI ͕͑Δ • ͦΕҎ֎ʹ Xamarin.Forms ͱ͍͏બࢶ͋Δ • ֤ OS ͷωΠςΟϒΞϓϦ͕ϏϧυͰ͖Δ
ϓϥοτϑΥʔϜؒͷίʔυڞ௨Խ
༻࣮
࣮ࡍʹͬͯΈͯ
࣮ࡍʹ iOS ΞϓϦ։ൃͰͬͯΈͯ • IDE • Storyboard • C#
IDE ˍ Storyboard
։ൃڥʢIDEʣ • બࢶ • Visual Studio for Mac • RiderʢJetBrains
IDEʣ • Windows + Visual Studio
࣮ࡍͷڥ • Visual Studio for Mac Ͱͻͱͱ͓Γͷ͜ͱ͕Ͱ͖Δ • ίʔσΟϯά Rider
Windows ্ͷ VS ͷํָ͕ • ͨͩɺσόοά Storyboard ฤूͳͲෆ͕҆͋Δ • ซ༻໘ͳͷͰɺ݁ہ VS for Mac Ͱશ෦͍ͬͯΔ
Xamarin.iOS ͱ Storyboard • Storyboard ্ʹ UIViewController Λஔ͘߹
Storyboard ฤू࣌ͷ • VS for Mac Ͱ Storyboard Λฤू͢Δ߹ •
⭕ ৽͍͠ class ໊ΛೖΕΔͱɺclass ϑΝΠϧΛੜ • ⭕ .designer.cs ϑΝΠϧͱͷ࿈ܞ • ❌ View ͷஔ่͕ΕΔ͜ͱ͕͋Δ • ❌ Auto Layout ͷ੍͕উखʹมΘΔ͜ͱ͕͋Δ
VS for Mac ͱ Xcode ͷซ༻ • ࠷ॳͷ࡞ .designer.cs ࿈ܞ
VS for Mac • View ஔϨΠΞτௐ Xcodeʢ݁ہɺซ༻ঢ়ଶʣ
̘ˌ
̘ˌ • Swift / Kotlin ʹൺΕݹ͍͕ɺݱࡏਐԽ͍ͯ͠Δ • ඪ४ͷݴޠػೳ͕༏Ε͍ͯΔ • namespace
• event • async / await • Reactive • ͳͲ
event class Hoge { public event EventHandler HogeEvent; HogeEvent.Invoke(); //
ΠϕϯτൃՐʢଆ͔ΒͷΈʣ } var hoge = new Hoge(); hoge.HogeEvent += ... // ΠϕϯτϋϯυϦϯάॲཧ
async / await async Task<bool> HogeAsync() { // Կ͔ͷඇಉظॲཧ }
var result1 = Hoge1(); var result = await HogeAsync(); // ඇಉظॲཧ͕ऴΘΔͷΛͭ var result2 = Hoge2();
await ͰΞϥʔτͷϘλϯԡԼͪ var tcs = new TaskCompletionSource<bool>(); var alert =
UIAlertController.Create(title, message, style); alert.AddAction(UIAlertAction.Create(name, style, action => { tcs.SetResult(true); // ϘλϯͷΞΫγϣϯͰ SetResult })); PresentViewController(alert, true, null); var result = await tcs.Task; // SetResult Λͭ
Reactive Extensions • ͍ΘΏΔ Rx • .NET ൃͷͷ͕֤ݴޠʹ·͍ͬͯΔ • Θ͟Θ͟ϥΠϒϥϦΛೖΕͣͱɺඪ४ͰରԠ͍ͯ͠Δͷ͕ڧ
Έ • ҎԼͷϥΠϒϥϦΛೖΕΔͱΑΓศར • ReactiveProperty • ReactiveCommand
·ͱΊ
·ͱΊ • IDE Visual Studio for Mac • Storyboard
ฤू Xcode • ซ༻ঢ়ଶʹͳΔͷ໘ • C# ݁ߏศར