Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Xamarin基礎講座 Xamarinハンズオン(2016.09 浜松) #JXUG #jaghama

339 views

Published on

Xamarinハンズオン浜松(再び) - http://jaghama.connpass.com/event/37686/ の導入資料です。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Xamarin基礎講座 Xamarinハンズオン(2016.09 浜松) #JXUG #jaghama

  1. 1. Xamarin基礎講座 Xamarinハンズオン Japan Xamarin User Group 奥山 裕紳 Twitter: @amay077 Qiita: http://qiita.com/amay077 Teratail, スタックオーバーフロー
  2. 2. 奥山 裕紳 モバイルアプリ開発者, from 愛知県豊橋市, 東京企業のリモート会社員 Xamarin, Android, iOS, Windows, C#, Java, VB, C++, Geo, GPS, Map 連載 Build Insider – Xamarin逆引きTips コミュニティ Twitter: @amay077 Qiita: http://qiita.com/amay077 Teratail, スタックオーバーフロー 2 自己紹介
  3. 3. 第1部 30分+90分 Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ 第2部 30分+90分 Xamarin.Forms まとめ LT大会&キャッチアップ 30分 3 本日のスケジュール
  4. 4. http://github.com/ytabuchi/XamarinHOL 4 資料
  5. 5. 開発したことがあるのは? • Xamarin アプリ • iOS アプリ • Android アプリ • Windows アプリ 今日使用するOS/IDEは? • Windows / Visual Studio • MacOS / Xamarin Studio 5 受講者の皆さん
  6. 6. アジェンダ Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ Xamarin.Forms まとめ 6
  7. 7. Miguel, Nat Mono, Ximian Novell, Attachmate Microsoft 7 Xamarin (ザマリン・企業)
  8. 8. C# / .NET / Visual Studio フル “ネイティブ” アプリ API 100% 移植 コード共通化 8 Xamarin
  9. 9. C# 9 using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Http; using System.Xml.Serialization; button.Click += async (sender, e) => { using (var client = new HttpClient()) { using (var reader = new StreamReader(await client.GetStreamAsync("xxx"))) { var deserializer = new XmlSerializer(typeof(Rss)); var latest = deserializer.Deserialize(reader) as Rss; var feed = latest.Channel.Items .Where(x => x.Link.Contains("xamarin")) .Select(x => x.Title).ToList(); } } };
  10. 10. 2つの開発手法 10 Shared C# App Logic (PCL) Shared XAML/C# UI Code (Xamarin.Forms) iOS C# UI Shared C# App Logic (PCL) Android C# UI Windows C# UI Xamarin.FormsXamarin Native ロジックのみ共通化 UIはネイティブで個別に作りこむ
  11. 11. 必要な知識 11 プラット フォーム個 別 Xamarin Native iOS API Objective-C, Swift Xcode Android API Java Android Studio Windows API Visual StudioC# API 言語 統合開発環境 iOS API Objective-C, Swift Xcode Android API Java Android Studio Windows API Visual StudioC# Xamarin.Forms iOS API Android API Windows API Objective-C, Swift Xcode Java Android Studio Visual StudioC#Xamarin.Forms UI toolkit
  12. 12. Visual Studio Community の利用条件: https://www.microsoft.com/ja-jp/dev/products/community.aspx 12 必要なライセンス http://nuits.hatenadiary.jp/entry/2016/05/06/17403
  13. 13. アジェンダ Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ Xamarin.Forms まとめ 13
  14. 14. Xamarin.Android 14
  15. 15. 構成 15 ソースファイル (C#) UI 定義 (axml) メタデータ (Resources)
  16. 16. Activity 16 Activity 1 UI Code Activity 2 UI Code Activity 3 UI Code Data, files, images など アプリ
  17. 17. Layout 17
  18. 18. Layout 18
  19. 19. Activity + Layout 19 <LinearLayout ... > <TextView ... /> <EditText ... /> <Button ... /> <TextView ... /> </LinearLayout> [Activity] public class PiActivity : Activity { ... ... }
  20. 20. Resource Id 20 [Activity(MainLauncher = true)] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); var et = FindViewById<EditText>(Resource.Id.digitsInput); ... } ... }
  21. 21. Intent 21
  22. 22. Intent 22 public class MainActivity : Activity { ... void OnClick(object sender, EventArgs e) { var intent = new Intent(this, typeof(Activity2)); base.StartActivity(intent); } }
  23. 23. Intent 23
  24. 24. Navigation 24
  25. 25. Xamarin.iOS 25
  26. 26. 構成 26 ソースファイル (C#) UI 定義 (Storyboard + XiB) メタデータ (property lists)
  27. 27. Frame 27
  28. 28. Bounds 28
  29. 29. View (コードで) 29
  30. 30. 30 Storyboard
  31. 31. Constraints (制約) 31
  32. 32. Multi Screen 32
  33. 33. Segue 33
  34. 34. Segue 34
  35. 35. アジェンダ Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ Xamarin.Forms まとめ 35
  36. 36. Xamarin ネイティブ 36
  37. 37. UIは個別 ネイティブAPIは個別 PCL vs Shared ネットワーク Json, XML 永続化 async/await 37 Xamarin ネイティブ iOS C# UI Shared C# App Logic (PCL) Android C# UI Windows C# UI Xamarin Native ロジックのみ共通化 UIはネイティブで個別に作りこむ
  38. 38. アジェンダ Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ Xamarin.Forms まとめ 38
  39. 39. 抽象化UIライブラリ 最大公約数 ワンソース・ネイティブ UI/UX XAML / MVVM 拡張可能 39 Xamarin.Forms Shared C# App Logic (PCL) Shared XAML/C# UI Code (Xamarin.Forms) Xamarin.Forms
  40. 40. Pages 40 New!
  41. 41. Layouts 41 New!New!
  42. 42. Controls ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell 42
  43. 43. Xamarin.Forms ワンソース ネイティブ の UI/UX 43
  44. 44. XAML 44
  45. 45. XAMLの機能 45
  46. 46. XAMLの機能 Resource Style Trigger Behavior Value Converter Data Template Data Binding 46
  47. 47. Model View ViewModel Data Binding Messaging Center 47 MVVM
  48. 48. ネイティブコントロール (UI) Custom Renderer Effects 48
  49. 49. ネイティブAPI Dependency Service Plugin 49
  50. 50. アジェンダ Xamarin 概要 Android, iOS 概要 Xamarin ネイティブ, Xamarin.Forms 開発手法 まとめ 50
  51. 51. C# / .NET / Visual Studio フル “ネイティブ” アプリ API 100% 移植 コード共通化 51 Xamarin
  52. 52. 2つの開発手法 52 Shared C# App Logic (PCL) Shared XAML/C# UI Code (Xamarin.Forms) iOS C# UI Shared C# App Logic (PCL) Android C# UI Windows C# UI Xamarin.FormsXamarin Native ロジックのみ共通化 UIはネイティブで個別に作りこむ
  53. 53. #Xamarinはいいぞ 53
  54. 54. 公式ドキュメント ペゾルド本(PDFが無料配布中) 日本語の情報 Japan Xamarin User Group Build Insider Qiita 田淵のブログ 各種ブログへのリンク 54 リソース
  55. 55. • 9/7【東京】日本Androidの会 定例会「クロスプラッ トフォーム開発最前線」 by 田淵さん • 9/10【横浜】Xamarin バッドノウハウ大全 by 田淵 さん&ちょまどさん • 9/17【東京】初心者向けXamarinハンズオン! • 10/1【東京】.NET Fringe Japan 2016 • 10/15【東京】JXUGC #17 お前の Xamarin アプリを 見せてみろ! • 11/12【東京】Xamarin Dev Days Tokyo 55 WHAT’S NEXT
  56. 56. ありがとうございまし た Japan Xamarin User Group 田淵 義人 080-7015-3586 Twitter: @ytabuchi facebook: xlsoft.ytabuchi Blog: Xamarin日本語情報

×