Slide 1

Slide 1 text

Introducing Uno Platform @mitsuba_yu

Slide 2

Slide 2 text

• H.N. :蜜葉 優 [@mitsuba yu] • silkyfeel - freelance • Microsoft MVP for Windows Development • Designer / Developer / Photographer • Keynoteの表紙はいつも自分で撮影 • 乃木坂46とマウスのPR作ったり、UWP/WPFをメインに • http://c-mitsuba.hatenablog.com profile

Slide 3

Slide 3 text

• かなり出たばっかりのライブラリの話をします。 • 2019/12/21 現在時点での情報です。 • 明日には変わってるかもしれないし、
 使い物にならないかもしれません。 • 逆に今現在動かないものが、
 明日には動くようになっているかもしれません。 注釈

Slide 4

Slide 4 text

• Uno Platformってなに? • 開発環境とDEMO • かっこいいアプリは作れるのか? • Write Once Run Anywhereは都市伝説なのか否か • やってみてどうだったのかと、そのまとめ Agenda

Slide 5

Slide 5 text

今日のお持ち帰り 5 Uno Platformって 使いやすいの?使い物になるの?どうなの? の現状

Slide 6

Slide 6 text

突然ですが、 どっちが好きですか? 6

Slide 7

Slide 7 text

7

Slide 8

Slide 8 text

Uno Platformってなに? 8

Slide 9

Slide 9 text

• XAML/C#で書けるマルチプラットフォーム向けのライブラリ • UWP、Mac OS、iOS、Android、Webに対応 • カナダの会社が作ってる • Apache 2.0 License で安心 UnoPlatform

Slide 10

Slide 10 text

それXamarinじゃないの? 10

Slide 11

Slide 11 text

Yes. 11

Slide 12

Slide 12 text

じゃあXamarinで良くない? なんで最近そんなUnoがー
 って言われてるの??? 12

Slide 13

Slide 13 text

13

Slide 14

Slide 14 text

真っ当なXAMLが書ける!!! 14 by Windows開発者

Slide 15

Slide 15 text

Architecture • 基本はXamarin.Nativeベース • UIをUWP likeなXAMLで記述 • 例えばStackPanel/Unoは
 RelativeLayout/Androidと
 MKMapView/iOSを継承 • 言ってしまえば
 Formsの焼き直し

Slide 16

Slide 16 text

似たようなのを昔見ましたね

Slide 17

Slide 17 text

いいことばっかりなの? 17

Slide 18

Slide 18 text

いや、そんなこともない 18

Slide 19

Slide 19 text

Architecture • Xamarin.Nativeの上に乗っている • Xamarinで実装されているiOS/AndroidのAPI • Unoで実装されているXamarinのAPI • これしか使えない • Windowsとしては、現状 2018 October Update相当が使える (ver.17763) ちょっと古い。 • あと、闇癖も多い。。。

Slide 20

Slide 20 text

20 開発環境とDEMO

Slide 21

Slide 21 text

• 簡単 3Step 開発環境構築

Slide 22

Slide 22 text

開発環境構築

Slide 23

Slide 23 text

開発環境構築

Slide 24

Slide 24 text

24 • Windowsの電卓をiPhoneで • プロジェクトテンプレートから1つ作ってみる (D01) • インテリセンス (D01) • サンプルアプリを作って移植してみた (Monitor) DEMO

Slide 25

Slide 25 text

かっこいいアプリは 作れるのか? 25

Slide 26

Slide 26 text

• National Geographic
 Learn English • TEDで英語を勉強するアプリ
 • Cineplex Mobile • 映画の選んで、近所の映画館 のチケットを取れるアプリ App

Slide 27

Slide 27 text

• XAML Controls Gallery • Uno Gallery / Uno.UI Demo • Animations / Brushes / Button / CheckBox / CommandBar / FlipView / GridView / HyperlinkButton / Image / ListView / MessageDialog / Panels / PasswordBox / Progress / RadioButton / ScrollViewer / Shapes / Slider / TextBlock / TextBox / ToggleButton / ToggleSwitch / Transform / Typography / WebView Sample/Component

Slide 28

Slide 28 text

Write Once Run Anywhere? 28

Slide 29

Slide 29 text

29 • UWP or !UWP (D02) • 使えるもの、使えないもの • x:Name / Navigation / Style (D05) • Command / Behavior / Storyboard (D03) DEMO

Slide 30

Slide 30 text

• 丁寧に書けばイケるかも? • Xamarinは.NET Standard / UWPは.NET Core • .NET Coreにしかないコードを書くと、UWPはビルドが通る
 でも、iOSとAndroidは通らない。 • デバイス依存系コードはやっぱり無理じゃないかな?(未検証 • それぞれのプロジェクトに実装して呼ぶようにすればイケる はず(Xamarinスキルが足りなくて未検証 Write Once Run Anywhere?

Slide 31

Slide 31 text

Write Once Run Anywhere? • Uno
 「どれが1つを実装すれば
 オマケで他がついてくるよ」
 


Slide 32

Slide 32 text

32 • NativeStyle (D04) • Uno
 「でも他のプラットフォームのデザインガイドラインを
 別のプラットフォームに使うのはナンセンスなのは分かって る」 Design DEMO

Slide 33

Slide 33 text

Design • NativeStyle はそのプラットフォームの見た目をしている
 コントロールではない • そのプラットフォームのコントロールをそのまま使っている • 利用するのであれば、プラットフォーム間の実装差分を許容す る必要がある

Slide 34

Slide 34 text

まとめ 34

Slide 35

Slide 35 text

• 今話題のUno Platformをご紹介した。 • いつものXAMLでUIを書けのは素晴らしい。
 反面、インテリセンスの制限とレンダラーが無いのは厳しい。 • Xamarinがベースな以上、どうしてもUWPで通るビルドが通ら ないことがある。 • エラーメッセージが的外れで、原因究明が難しい。 • でも環境構築はとても簡単で始めやすい。但し初回ビルド… まとめ

Slide 36

Slide 36 text

• Xamarin.Formsは触ってみて幻滅したけど、
 Uno Platformは面白い。
 これこそMSが買収すべきなのでは、と思えるぐらい。 • XAMLが一緒なだけとはいえ、MVVM/ReactivePropertyが使え て、いつもと同じ思考で開発できるのは、本当に素晴らしい。 やってみてどうだったか

Slide 37

Slide 37 text

• ただ、まだまだ若いライブラリなのは否めない。
 前述のように動かないものいっぱいある。 • なにが動かないか分からない以上、作り込んだアプリの移植は 厳しい。代わりに1から作るのであれば、なかなかありかも? • エディタ対応の不十分さはやっぱり気になる。
 波線とかでてたり、インテリセンスが効かなかったり。 やってみてどうだったか

Slide 38

Slide 38 text

• Pre-Release版では使える機能も増えてそう。 • 年1回、UnoConfをやってるらしい、ちょっと行ってみたい。 • フォルダパスが長くなりがち(ビルドが通らない • 個人的には今後にかなり期待してる!
 やってみてどうだったか

Slide 39

Slide 39 text

No content