#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
松屋
デベロッ
パー
日本マイクロソフト
Microsoft 本社チーム
マンガ家
#JXUG #MSPjp
私が描いている漫画
「はしれ!コード学園」
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
•#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
すべて Xamarin アプリへの
コミット!
(サーバサイド (ASP.NET)への
コミット含む)
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
Kotlin
#JXUG #MSPjp
iOSアプリも Androidアプリも
全部 同じ1つの言語/IDE で
開発できたらなあ
#JXUG #MSPjp
#JXUG #MSPjp
iOS アプリ
Android アプリ
UWP アプリ
#JXUG #MSPjp
C# で Android / iOS アプリ開発
従来はターゲット OS ごと
のスキル、開発言語、開発環境
統一された
スキル、開発言語、開発環境
#JXUG #MSPjp
C# で Android / iOS アプリ開発
従来はターゲット OS ごと
のスキル、開発言語、開発環境
統一された
スキル、開発言語、開発環境
#JXUG #MSPjp
UIAlertController
AlertDialog
MessageDialog
#JXUG #MSPjp
DisplayAlert ("Alert", "You have been alerted", "OK");
#JXUG #MSPjp
<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml
x:Class="MyApp.MainPage">
<TabbedPage.Children>
<ContentPage Title="Profile" Icon="Profile.png">
<StackLayout Spacing="20" Padding="20"
VerticalOptions="Center">
<Entry Placeholder="Username"
Text="{Binding Username}"/>
<Entry Placeholder="Password"
Text="{Binding Password}"
IsPassword="true"/>
<Button Text="Login" TextColor="White"
BackgroundColor="#77D065"
Command="{Binding LoginCommand}"/>
</StackLayout>
</ContentPage>
<ContentPage Title="Settings" Icon="Settings.png">
<!-- Settings -->
</ContentPage>
</TabbedPage.Children>
</TabbedPage>
Xamarin.Forms では、
「XAML」(ざむる)という
マークアップ言語で書く
#JXUG #MSPjp
#JXUG #MSPjp
だった!(過去形)
約 24万円/人・年
#JXUG #MSPjp
Xamarin が
Microsoft に
ジョインしてから
1年が経ったね!
やったー!
#JXUG #MSPjp
タダ
#JXUG #MSPjp
#JXUG #MSPjp
Nintendo Switch Online アプリは
Xamarin(Xamarin.Forms)製です
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
github.com/dotnet/csharplang/
#JXUG #MSPjp
クロスプラットフォーム開発ツール
無償
• Windows でも Mac でも開発できる
• ネイティブAPI 100%
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
• Xamarin.Forms
Xamarin Native
#JXUG #MSPjp
41
Shared C# App Logic
(PCL)
共有 UI コード (XAML)
iOS
C# UI
共有ロジック部分のコード (C#)
Android
C# UI
Windows
C# UI
Xamarin.FormsXamarin Native
ロジックのみ共通化
UIはネイティブで個別に作りこむ
#JXUG #MSPjp
#JXUG #MSPjp
松屋
デ
ベロッパー
マイクロソフト
マンガ家
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
A B
A / B どちらが
松屋でしょうか?
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
A
#JXUG #MSPjp
B
#JXUG #MSPjp
Custom Vision Service
#JXUG #MSPjp
誰でも超お手軽に使える、
Microsoft による AI サービス
の うちのひとつ
「 Custom Vision Service 」
https://customvision.ai
#JXUG #MSPjp
学習させた
松屋の牛めし
#JXUG #MSPjp
学習させた
吉野家の牛丼
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
発行された API の
URL の場所
#JXUG #MSPjp
クライアント側の処理
(API 叩いて結果を
受け取る器の準備)
#JXUG #MSPjp
クライアント側の処理 (API 叩いている場所)
#JXUG #MSPjp
クライアント側の処理
(まずはコンソールアプリで
API叩いて返ってくるかテスト)
#JXUG #MSPjp
クライアント側の処理
(アプリ上で
「警察出動」ボタンが
押された時の処理)
#JXUG #MSPjp
クライアント側の処理
(投稿された画像が [松屋] だった時のみ
ちょまぎょが 嬉しそうな顔をする処理)
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
#JXUG #MSPjp
https://customvision.ai
#JXUG #MSPjp

20170818_Xamarin基本 + MSのAIサービス「Custom Vision Service」について

Editor's Notes

  • #2 実は隠しタイトルがある
  • #3 Xamarin 触ったことある人、手を上げてください
  • #4 私のこと知ってる人?手を上げてください
  • #5 で、最近のニュースというか 近況としては
  • #20 言語やツールはバラバラ。 →プラットフォームごとに完全にコードが分離。 →スキルやコードの再利用ができない →プラットフォームごとの実装差異 異なる言語の習得コスト
  • #26 iOS: UIAlertView Android: AlertDialog.Builder
  • #27  (String title, String message, String cancel)
  • #42 ネイティブ API BCL (Base Class Lirary) エコシステム