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
DevMovKai Microsoft Ignite 2016 Feedback
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Taiji HAGINO
PRO
October 31, 2016
Technology
62
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
Datadogで実現するマルチレイヤーObservability入門
taiponrock
PRO
0
150
Datadog Cloud Cost Management で実現するFinOps
taiponrock
PRO
0
340
5分で知るMicrosoft Ignite
taiponrock
PRO
0
560
Bridging the Gap:Why Developer Relations and Product Management Must Work Together
taiponrock
PRO
0
78
What Four Approaches Taught Me About Developer Productivity
taiponrock
PRO
0
51
Automatic Creation of Azure Environment Configuration Diagrams! with Datadog Cloudcraft
taiponrock
PRO
0
100
VS Code の静的分析でリアルタイムのコードフィードバックを取得
taiponrock
PRO
0
250
Backstage of Enterprise Conference
taiponrock
PRO
1
260
どの種は何の花を咲かす?DevRelのターゲットオーディエンスを知ることの意味
taiponrock
PRO
2
510
Other Decks in Technology
See All in Technology
Goでデータパイプラインを作ろう
sansantech
PRO
1
360
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.6k
名古屋の市バスGTFS-JPデータ×スガキヤ 最寄りバス停検索をAmazon ElastiCache Serverless for Valkeyで最適化する
usanchuu
1
510
OSPN.JPバージョンアップ作業進捗のご報告 / 20260801-osc26kyoto
akkiesoft
0
420
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
2
610
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
140
Flutterをカメラで動かしたかった話
sony
1
130
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
630
ガバメントクラウドでのランサムウェア対策
techniczna
2
1k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
190
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
310
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
4 Signs Your Business is Dying
shpigford
187
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
400
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
The Language of Interfaces
destraynor
162
27k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
390
Side Projects
sachag
455
43k
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