SlideShare a Scribd company logo
1 of 19
Xamarin.iOS 開発者から見た Swift
Swift愛好会 vol35@G's Academy
2018年9月18日 鈴木友宏
興味無いとは思いますが‥自己紹介
鈴木友宏
Xamarin.iOS, Realmとかの技術支援をやってます。
車とドライブをこよなく愛するオッサンです。
ほそぼそとBlogもやっています。
http://hiro128.hatenablog.jp/
Twitter
@hiro128_777
2
ご質問
• Xamarin知ってるよ~ !
• Xamarin使ったことあるよ~!
3
4
って何?
• クロスプラットフォーム
• 完全なネイティブアプリを作成可能
• (iOS・Android・UWP) のAPI カバー率 100 %
• C# / .NET / Visual Studio のエコシステムを享受できる
Xamarin.iOSとは
5
Xamarin Native Xamarin Forms
ロジックのみ共通化
UIはネイティブで個別に作りこむ
ロジックとUIを共通化
UIは各プラットフォームの
同じ役割のUIが自動マッピング
Shared C# App Logic
(.NET Standard)
iOS
C# UI
Android
C# UI
Windows
C# UI
Shared C# App Logic
(.NET Standard)
Shared C# UI Code
(Xamarin.Forms)
ここが
Xamarin.iOS
なんで、Xamarin.iOS なんてイロモノを使ったの
• Objective-C が辛すぎて逃げたかった。(Swift はリリースの直前の時期‥)
• ずっと C# で Windows アプリを開発していた。
• Windows アプリの iOS への移植を依頼されたがロジックを全て作り直すの
は嫌だった。
6
ですが、最大の理由は!!
Miguel de Icaza
(mono, Xamarin
の産みの親)のファ
ンだから
7
Xamarin.iOS 使ってみると
• Xamarin.iOS の情報などほとんど見つからない。
• Swift の情報を調べまくり、C#に移植する日々。
8
あれ??だんだんSwiftが読めるようになってきたぞ!?
Swift のことをもっと知りたく
なってきました。
9
Xamarin.iOS 開発者から見た Swift
1
Xcode の方が圧倒的にビルドが早い!!
• Swift は余計なステップがなく直接コンパイルするので早い!
(当たり前ことですが(笑))
• Xamarin.iOS では、C#→IL→iOS ネイティブコードなので遅い。
1
Swift も C#もできること自体に差はない
• できることは基本的に一緒。
• だが、C#の文法に古さを感じてしまう。
• セミコロン必須。
• 言語レベルでのディクショナリサポートが無い。(クラスのインポートが必要)
• Optionalをサポートしない。
• Swift は世代が新しいので、モダンなコードが書けてカッコイイ。
12
Optional ってエレガント。C#にも早く欲しい
• 安全で、モダンな感じがカッコイイ。
• C#7 でも値型(struct) では Nullable を利用できる。
• C#8 で導入予定とのこと。
13
Swift
let string: String? = "Swift"
if let bindString = string
{
bindString = bindString.uppercaseString
}
C#
var text = "CSharp";
if (!string.IsNullOrEmpty(text))
{
var bindString = text.ToUpper();
}
その他、シンタックスシュガーが充実
• コードから冗長部分がなくなりスッキリする。
• エレガントなコードが書ける。
14
Swift
var c = { print("Swift") }
c()
var dictionary = ["one": 1, "two": 2]
for (key, value) in dictionary
{
print( "key = (key), value =
(value)" )
}
C#
Action c = () => Console.WriteLine("CSharp");
c();
var dic = new Dictionary<string, int>() { {"one",
1}, {"two", 2} };
foreach (var kvp in dic)
{
Console.WriteLine("key = {0}, value = {1}",
kvp.Key, kvp.Value);
}
プロトコトルのメソッドが区別ができない??
15
Swift
extension PhotoCaptureProcessor : AVCapturePhotoCaptureDelegate
{
func photoOutput(_ output: AVCapturePhotoOutput, willBeginCaptureFor resolvedSettings: AVCaptureResolvedPhotoSettings)
{
}
func photoOutput(_ output: AVCapturePhotoOutput, willCapturePhotoFor resolvedSettings: AVCaptureResolvedPhotoSettings)
{
}
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?)
{
}
なぜ
メソッド名が一緒??
プロトコトルのメソッドが区別ができない??
16
C#
[Protocol]
[Register ("AVCapturePhotoCaptureDelegate", false)]
public class AVCapturePhotoCaptureDelegate : NSObject, IAVCapturePhotoCaptureDelegate, INativeObject, IDisposable
{
[Export("captureOutput:willBeginCaptureForResolvedSettings:")]
public virtual void WillBeginCapture(AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
[Export("captureOutput:willCapturePhotoForResolvedSettings:")]
public virtual void WillCapturePhoto(AVCapturePhotoOutput captureOutput, AVCaptureResolvedPhotoSettings resolvedSettings);
[Export ("captureOutput:didFinishProcessingPhoto:error:")]
public virtual void DidFinishProcessingPhoto (AVCapturePhotoOutput output, AVCapturePhoto photo, NSError error);
メソッド名が Swift と違うExport 属性を見ると判断できる
Xamarin.iOSは気をつけないとすぐメモリリークする
• iOS の世界のオブジェクト(NSObject 派生のクラス)は、後始末をきちんとし
ないとすぐメモリリークする。
• WeakReference<T>を適切に使用する。
17
力技の弊害が出てしまっている。
まとめ
18
Swift は iOS, macOS が中心にあり、言語とプラット
フォームが密接に結びついている。
C# は mono の存在により、言語の独立性が高い。
Swift には覚えれば覚えるほど
ハマって行く魅力がある。
Swift ではなく iOS API にハ
マって行くのかも知れない。
C# はそのようなカリスマ的魅力は感
じないが、素人に優しくツールとして
万人に受け入れられやすい。
Apple と マイクロソフトの特徴がよく表れている。
ご静聴ありがとうございました。

More Related Content

What's hot

Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Yoshifumi Kawai
 
モノビットエンジン と AWS と クラウドパッケージで 最強のリアルタイム・マルチプレイ環境を構築&運用
モノビットエンジン と AWS と クラウドパッケージで最強のリアルタイム・マルチプレイ環境を構築&運用モノビットエンジン と AWS と クラウドパッケージで最強のリアルタイム・マルチプレイ環境を構築&運用
モノビットエンジン と AWS と クラウドパッケージで 最強のリアルタイム・マルチプレイ環境を構築&運用モノビット エンジン
 
Xamarin.forms navigation overview
Xamarin.forms navigation overviewXamarin.forms navigation overview
Xamarin.forms navigation overviewAtsushi Nakamura
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能MITSUNARI Shigeo
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方onozaty
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムKLab Inc. / Tech
 
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)tattaka_sun
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022Takayuki Shimizukawa
 
View Customize Pluginで出来ること
View Customize Pluginで出来ることView Customize Pluginで出来ること
View Customize Pluginで出来ることonozaty
 
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)onozaty
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」akipii Oga
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理KageShiron
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCamlHaruka Oikawa
 

What's hot (20)

Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
 
モノビットエンジン と AWS と クラウドパッケージで 最強のリアルタイム・マルチプレイ環境を構築&運用
モノビットエンジン と AWS と クラウドパッケージで最強のリアルタイム・マルチプレイ環境を構築&運用モノビットエンジン と AWS と クラウドパッケージで最強のリアルタイム・マルチプレイ環境を構築&運用
モノビットエンジン と AWS と クラウドパッケージで 最強のリアルタイム・マルチプレイ環境を構築&運用
 
Xamarin.forms navigation overview
Xamarin.forms navigation overviewXamarin.forms navigation overview
Xamarin.forms navigation overview
 
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステムAndroid向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
Android向けUnity製ゲーム最適化のためのCI/CDと連携した自動プロファイリングシステム
 
Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)Nimで競技プログラミングを始めた話(1ヶ月)
Nimで競技プログラミングを始めた話(1ヶ月)
 
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
OpenTelemetryでWebシステムの処理を追跡しよう - DjangoCongress JP 2022
 
View Customize Pluginで出来ること
View Customize Pluginで出来ることView Customize Pluginで出来ること
View Customize Pluginで出来ること
 
View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)View customize plugin for Redmineの紹介 (2019年版)
View customize plugin for Redmineの紹介 (2019年版)
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
SQIP2015講演資料「チケット駆動開発の運用パターン集~問題はチケットに分割して統治せよ」
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml関数型プログラミング入門 with OCaml
関数型プログラミング入門 with OCaml
 
Cpu pipeline basics
Cpu pipeline basicsCpu pipeline basics
Cpu pipeline basics
 

Similar to Xamarin.iOS 開発者から見た Swift

Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Yoshito Tabuchi
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
Xamarin 実戦投入時に気をつけたいことあれこれ
Xamarin 実戦投入時に気をつけたいことあれこれXamarin 実戦投入時に気をつけたいことあれこれ
Xamarin 実戦投入時に気をつけたいことあれこれTomohiro Suzuki
 
第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要Yoshito Tabuchi
 
WPF開発者がXamarin.Macを触るその前に
WPF開発者がXamarin.Macを触るその前にWPF開発者がXamarin.Macを触るその前に
WPF開発者がXamarin.Macを触るその前にKazuhiko Shimada
 
JXUG ハンズオンもくもく会
JXUG ハンズオンもくもく会 JXUG ハンズオンもくもく会
JXUG ハンズオンもくもく会 Tomohiro Suzuki
 
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Yoshito Tabuchi
 
Xamarin Native vs Xamarin Forms
Xamarin Native vs Xamarin FormsXamarin Native vs Xamarin Forms
Xamarin Native vs Xamarin FormsTomohiro Suzuki
 
Xamarin を使うとどんなことができるの?
Xamarin を使うとどんなことができるの?Xamarin を使うとどんなことができるの?
Xamarin を使うとどんなことができるの?Yoshito Tabuchi
 
これから始めるXamarin開発
これから始めるXamarin開発これから始めるXamarin開発
これから始めるXamarin開発Tsukasa Kato
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方Yoshito Tabuchi
 
JXUGC 13 東京 はじめに
JXUGC 13 東京 はじめにJXUGC 13 東京 はじめに
JXUGC 13 東京 はじめにYoshito Tabuchi
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例Yoshito Tabuchi
 
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~de:code 2017
 
Xamarin 実戦投入時の留意点再確認
Xamarin 実戦投入時の留意点再確認Xamarin 実戦投入時の留意点再確認
Xamarin 実戦投入時の留意点再確認Tomohiro Suzuki
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarinYoshito Tabuchi
 
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2m ishizaki
 

Similar to Xamarin.iOS 開発者から見た Swift (20)

Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
Xamarin 概要 @ 「Xamarin」って何? Wエバンジェリストによる特濃「Xamarin」勉強会 Rev2
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
Xamarin 実戦投入時に気をつけたいことあれこれ
Xamarin 実戦投入時に気をつけたいことあれこれXamarin 実戦投入時に気をつけたいことあれこれ
Xamarin 実戦投入時に気をつけたいことあれこれ
 
第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要第1回 Japan Xamarin User Group Conference - Xamarin 概要
第1回 Japan Xamarin User Group Conference - Xamarin 概要
 
WPF開発者がXamarin.Macを触るその前に
WPF開発者がXamarin.Macを触るその前にWPF開発者がXamarin.Macを触るその前に
WPF開発者がXamarin.Macを触るその前に
 
JXUG ハンズオンもくもく会
JXUG ハンズオンもくもく会 JXUG ハンズオンもくもく会
JXUG ハンズオンもくもく会
 
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
Xamarin 概要 @ 2014/10/18 わんくま同盟 東京勉強会 #92
 
Xamarin Native vs Xamarin Forms
Xamarin Native vs Xamarin FormsXamarin Native vs Xamarin Forms
Xamarin Native vs Xamarin Forms
 
Xamarin を使うとどんなことができるの?
Xamarin を使うとどんなことができるの?Xamarin を使うとどんなことができるの?
Xamarin を使うとどんなことができるの?
 
これから始めるXamarin開発
これから始めるXamarin開発これから始めるXamarin開発
これから始めるXamarin開発
 
20171202 Xamarinの歩き方
20171202 Xamarinの歩き方20171202 Xamarinの歩き方
20171202 Xamarinの歩き方
 
Xamarinを利用したアプリ開発
Xamarinを利用したアプリ開発Xamarinを利用したアプリ開発
Xamarinを利用したアプリ開発
 
Xamarin 概要
Xamarin 概要Xamarin 概要
Xamarin 概要
 
JXUGC 13 東京 はじめに
JXUGC 13 東京 はじめにJXUGC 13 東京 はじめに
JXUGC 13 東京 はじめに
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
Xamarin の概要と活用事例
Xamarin の概要と活用事例Xamarin の概要と活用事例
Xamarin の概要と活用事例
 
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~
[MW08] de:code イベントアプリの作り方 ~ Xamarin.Forms で開発しています ~
 
Xamarin 実戦投入時の留意点再確認
Xamarin 実戦投入時の留意点再確認Xamarin 実戦投入時の留意点再確認
Xamarin 実戦投入時の留意点再確認
 
10分で分かるxamarin
10分で分かるxamarin10分で分かるxamarin
10分で分かるxamarin
 
Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2Xamarin で クラシックデスクトップ 2
Xamarin で クラシックデスクトップ 2
 

More from Tomohiro Suzuki

.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考える.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考えるTomohiro Suzuki
 
Xamarin.iOS の仕組みを理解しよう!
Xamarin.iOS の仕組みを理解しよう!Xamarin.iOS の仕組みを理解しよう!
Xamarin.iOS の仕組みを理解しよう!Tomohiro Suzuki
 
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイントde:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイントTomohiro Suzuki
 
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacTomohiro Suzuki
 
Visual Studio といえば 当然 Visual Studio for Mac だよね!
Visual Studio といえば当然 Visual Studio for Mac だよね!Visual Studio といえば当然 Visual Studio for Mac だよね!
Visual Studio といえば 当然 Visual Studio for Mac だよね!Tomohiro Suzuki
 
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオンJXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオンTomohiro Suzuki
 
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオンJXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオンTomohiro Suzuki
 
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイントMacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイントTomohiro Suzuki
 
Cocos sharpformsの使用例
Cocos sharpformsの使用例Cocos sharpformsの使用例
Cocos sharpformsの使用例Tomohiro Suzuki
 
がんばれガンプ ソルバルウを倒せについて
がんばれガンプ ソルバルウを倒せについてがんばれガンプ ソルバルウを倒せについて
がんばれガンプ ソルバルウを倒せについてTomohiro Suzuki
 
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せがんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せTomohiro Suzuki
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたTomohiro Suzuki
 

More from Tomohiro Suzuki (13)

Net6 Overview
Net6 OverviewNet6 Overview
Net6 Overview
 
.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考える.NET Framework アプリケーションの NET 5 への 移行を考える
.NET Framework アプリケーションの NET 5 への 移行を考える
 
Xamarin.iOS の仕組みを理解しよう!
Xamarin.iOS の仕組みを理解しよう!Xamarin.iOS の仕組みを理解しよう!
Xamarin.iOS の仕組みを理解しよう!
 
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイントde:code2019 MW52 モバイルアプリ、SPA?ネイティブ?UX/UI の違いと技術選択のポイント
de:code2019 MW52 モバイルアプリ、SPA?ネイティブ? UX/UI の違いと技術選択のポイント
 
Another Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for MacAnother Visual Studio - Visual Studio for Mac
Another Visual Studio - Visual Studio for Mac
 
Visual Studio といえば 当然 Visual Studio for Mac だよね!
Visual Studio といえば当然 Visual Studio for Mac だよね!Visual Studio といえば当然 Visual Studio for Mac だよね!
Visual Studio といえば 当然 Visual Studio for Mac だよね!
 
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオンJXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
JXUG Windowsアプリを開発している皆さん、C#でスマホアプリ開発を試してみませんか?ハンズオン
 
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオンJXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
JXUG Xamarin.iOS & Xamarin.Android App Center ハンズオン
 
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイントMacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
MacでiOSアプリの実機ビルドと実機テストを設定する際のつまづきポイント
 
Cocos sharpformsの使用例
Cocos sharpformsの使用例Cocos sharpformsの使用例
Cocos sharpformsの使用例
 
がんばれガンプ ソルバルウを倒せについて
がんばれガンプ ソルバルウを倒せについてがんばれガンプ ソルバルウを倒せについて
がんばれガンプ ソルバルウを倒せについて
 
がんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せがんばれガンプ ソルバルウを倒せ
がんばれガンプ ソルバルウを倒せ
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
 

Xamarin.iOS 開発者から見た Swift