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
600
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
380
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
66
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
250
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
360
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
610
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
530
UICollectionView Compositional Layout
usamik26
0
540
Coding Swift with Visual Studio Code and Docker
usamik26
0
350
Swift Extension for Visual Studio Code
usamik26
2
750
Other Decks in Programming
See All in Programming
Code Reviews
bkuhlmann
4
880
9年開発を牽引して見えてきた、共通化すべきものと個別でつくるもの ~プログラム言語~
shinout
1
640
Site Reliability Engineering for GMO
pyama86
6
910
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
OpenTelemetry のサービスという概念について
azukiazusa1
2
1.1k
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
22
15k
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
受託開発でGitLab CI を活用していく
xiombatsg
1
270
ONE WEDGE_company_guide
1wedge_one
0
370
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
237
11k
Scaling GitHub
holman
457
140k
GitHub's CSS Performance
jonrohan
1023
450k
Atom: Resistance is Futile
akmur
258
25k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Designing for humans not robots
tammielis
247
25k
StorybookのUI Testing Handbookを読んだ
zakiyama
11
4.6k
KATA
mclloyd
14
12k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Designing for Performance
lara
602
67k
In The Pink: A Labor of Love
frogandcode
138
21k
The Mythical Team-Month
searls
215
42k
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# ݁ߏศར