Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DevMovKai Microsoft Ignite 2016 Feedback
Search
Taiji HAGINO
PRO
October 31, 2016
Technology
64
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevMovKai Microsoft Ignite 2016 Feedback
Taiji HAGINO
PRO
October 31, 2016
More Decks by Taiji HAGINO
See All by Taiji HAGINO
なぜデベロッパーアドボカシーが必要なのか?
taiponrock
PRO
0
200
Datadogで実現するマルチレイヤーObservability入門
taiponrock
PRO
0
180
Datadog Cloud Cost Management で実現するFinOps
taiponrock
PRO
0
400
5分で知るMicrosoft Ignite
taiponrock
PRO
0
580
Bridging the Gap:Why Developer Relations and Product Management Must Work Together
taiponrock
PRO
0
110
What Four Approaches Taught Me About Developer Productivity
taiponrock
PRO
0
67
Automatic Creation of Azure Environment Configuration Diagrams! with Datadog Cloudcraft
taiponrock
PRO
0
110
VS Code の静的分析でリアルタイムのコードフィードバックを取得
taiponrock
PRO
0
280
Backstage of Enterprise Conference
taiponrock
PRO
1
280
Other Decks in Technology
See All in Technology
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
290
hackers_champloo_2026_tidb
makocchi
0
110
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
180
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
350
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.1k
Post AI時代のリファクタリング実践記 / Refactoring in the post AI era
kaminashi
1
100
go-sqletch
moznion
0
130
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.7k
SREでアラート疲れを 解決しよう!
kairim0
1
220
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
670
Running Kotlin + Quarkus with Lambda
nealle
1
410
Featured
See All Featured
Leo the Paperboy
mayatellez
10
2.4k
RailsConf 2023
tenderlove
30
1.6k
We Have a Design System, Now What?
morganepeng
55
8.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
530
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
30 Presentation Tips
portentint
PRO
1
430
Un-Boring Meetings
codingconduct
0
450
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
Music & Morning Musume
bryan
48
7.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
450
Documentation Writing (for coders)
carmenintech
77
5.6k
Transcript
None
Speaker’s profile
Taiji HAGINO Software Engineer Mitsui Knowledge Industry Research & Development,
Education, and DevRel (Mobile/Web/IoT) taipon.rock @taipon_rock taijihagino
http://dist.tokyo/ http://mkidev.connpass.com/ https://ios.or.jp/ https://nodered.jp/ http://devrel.connpass.com/ https://ios.or.jp/topics_detail.html?news_id=299
None
Nativeアプリケーションとは?
? ? ? Native UI Native APIs Native Performance
モバイルアプリのアーキテクチャ
Silo approach iOS Windows Android Objective-C Xcode C# Visual Studio
Java Android Studio No shared code • Many languages and development environments • Multiple teams
Write once, run anywhere Lua Javascript Actionscript HTML+CSS Limited native
API access • Slow performance • Poor user experience App generator
iOS C# UI Windows C# UI Android C# UI Shared
C# logic Xamarin’s unique approach Shared C# codebase • 100% native API access • High performance
Windows APIs Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices System.Data System.Windows System.Numerics
System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C#
iOS – 100% API coverage MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C#
Android – 100% API coverage Text-to-speech ActionBar Printing Framework Renderscript
NFC System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C#
Code sharing stats Mac iOS Android Windows iCircuit Touch Draw
86% 14% 72% 28% 70% 30% 61% 39% 88% 12% 76% 24% 90% 10%
Native performance Xamarin.iOS Xamarin.Android ARM BINAR Y Runs natively .APP
AO T .NE T C # Bindings .APK Compil e and Link .NE T C # Bindings IL + JIT Runs natively
✓ Always up-to-date Same-day support: • iOS 5 • iOS
6 • iOS 7 • iOS 8 • iOS 9 • iOS 10 Full support for: • Apple Watch • Apple TV • Android Wear • Amazon Fire TV • Google Glass • and much more
Xamarin for Visual Studio Xamarin Studio
Anything you can do in Objective-C, Swift, or Java can
be done in C# and Visual Studio with Xamarin
Xamarin環境はVisual Studioに含まれている Community Editionなら無償で利用可能
Open Source – open.xamarin.com
さらなるアプローチ
Build native UIs for iOS, Android, and Windows from a
single, shared C# codebase. Meet Xamarin.Forms
Xamarin Development Approaches iOS C# UI Windows C# UI Android
C# UI Shared C# Logic Shared C# Logic Xamarin.Forms
What’s included ✓ 40+ Pages, layouts, and controls (Build from
code behind or XAML) ✓ Two-way data binding ✓ Navigation ✓ Animation API ✓ Dependency Service ✓ Messaging Center Shared C# Logic Shared UI Code
Pages Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetail
Navigation Tabbed Carousel Layouts
ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell Controls
Xamarin.Forms ecosystem
Native UI from shared code • <?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>
Cross-platform UI with Xamarin.Forms
Shared C# codebase • 100% native API access • High
performance iOS C# UI Windows C# UI Android C# UI Shared C# Mobile C# Server Linux/Mono CoreCLR Azure Shared C# Client/Server
Infrastructure designed for Scale
None
REST API Offline sync Facebook Twitter Microsoft Google Azure Active
Directory Azure Mobile Apps Windows Android Chrome iOS OSX In-App Kindle Backend code SQL Mongo Tables O365 API Apps Offline Sync
Mobile Offline Sync
• • Notification Hub • Maps between tags and handles
1. Get PNS handle 4. Send to device 2. Store PNS handle 3b. Request notification Use device handles 3a. Request notification Use logical users/tags 5. Manage device handles
Adding a backend
End-to-End
Develop Test Build Distribute Monitor
Build
Test
Distribute & Monitor
Code Build & Integrate Testing Feedback Monitoring Distribution
Good Luck C
Taiji HAGINO Software Engineer Mitsui Knowledge Industry Research & Development,
Education, and DevRel (Mobile/Web/IoT) taipon.rock @taipon_rock taijihagino