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はじめました

2,144 views

Published on

2015 MVP ComCamp 東北会場 エフスタ!!SENDAI × サトヤ仙台 合同勉強会

Published in: Software
  • Be the first to comment

続Xamarinはじめました

  1. 1. 続Xamarinはじめました 八巻 雄哉 2015 MVP ComCamp (エフスタ!!SENDAI × サトヤ仙台)2015/1/31
  2. 2. Xamarinとは
  3. 3. 共有コード クロスプラットフォームアプリ開発 プラットフォー ム固有コード コードを共有して ネイティブアプリ iOS ネイティブUI Android ネイティブUI Windows ネイティブUI Xamarin(C#) Tatanium Mobile(JavaScript) RoboVM(Java) RubyMotion(Ruby) プラットフォー ム固有コード プラットフォー ム固有コード
  4. 4. C#と.NET基本クラスライブラリ(BCL)
  5. 5. Windows Phoneアプリの場合
  6. 6. iOSアプリの場合 iOSのAPIを100%カバー
  7. 7. Androidアプリの場合 AndroidのAPIを100%カバー
  8. 8. 学生は無料でINDIE版使えます
  9. 9. Visual Studio(Windows)
  10. 10. Xamarin Studio(WindowsとMac)
  11. 11. Xamarin.Forms
  12. 12. Xamarin.Forms 共有コード 共有UIコード(Xamarin.Forms) iOS ネイティブUI Android ネイティブUI Windows ネイティブUI UIコードも共有して ネイティブアプリ Tatanium Mobile(JavaScript) もほぼ同じ仕組み
  13. 13. Xamarin.Forms.Labelクラスの場合 UILabel TextView TextBlock
  14. 14. Mobile Appsが Xamarin.Formsを使ったプロジェクト
  15. 15. 4つのプロジェクト
  16. 16. Androidのデバッグ環境
  17. 17. Android SDK x86 エミュレーター(Intel HAXM)
  18. 18. Xamarin Android Player (Beta)
  19. 19. 実機(Nexus 7 2012 )
  20. 20. 個人的な比較表 パフォーマン ス Fast Deployment 動作があやし くない x86 エミュレーター ○ × ○ Xamarin Android Player △ ○ × 実機(Nexus 7 2012 ) ○ ○ ○ 参考: Windows で動作する Android 仮想環境の比較まとめ (Xamarin 関係 者向け) - Qiita
  21. 21. 学習題材
  22. 22. 文字列リソース(多言語化) ユニバーサルWindowsアプリの場合 拡張子reswファイルを使用 Xamarinの場合 resw形式が使えないので、旧来のresx形式を使用 Shared形式のプロジェクトだとresxファイルを追加できない 参考 Resx & Xamarin Forms ユニバーサルWindowsアプリの場合 Xamarinの場合
  23. 23. アプリケーション設定情報の保存 ユニバーサルWindowsアプリの場合 Windows.Storage.ApplicationDataを使用 Xamarinの場合 System.IO.IsolatedStorage.IsolatedStorageFileを使えば1ソースで共有可能 自分でJSONとかXMLファイルを生成しないといけない AndroidはSharedPreference、iOSはNSUserDefaultsを使う それぞのプラットフォーム毎に実装しないといけない NuGet Gallery | Settings Plugin for Xamarin and Windows https://www.nuget.org/packages/Xam.Plugins.Settings/ ユニバーサルWindowsアプリの場合 Xamarinの場合
  24. 24. タイマー処理 ユニバーサルWindowsアプリの場合 Windows.UI.Xaml.DispatcherTimerを使用 Xamarinの場合 Xamarin.Forms.Device.StartTimerメソッドを使用 タイマーの間隔(インターバル)は途中で変更できない ユニバーサルWindowsアプリの場合 Xamarinの場合
  25. 25. サウンド(効果音) ユニバーサルWindowsアプリの場合 SharpDX経由でXAudio2を使用 Xamarinの場合 探したけど1ソースで共有可能な方法はなかった→とりあえずAndroidだけ実装 SoundPool 音を再生するための軽量なクラスだけど、10秒までしか音を出せない Media Player BGMはこちらで再生 ユニバーサルWindowsアプリの場合 Xamarinの場合
  26. 26. DependencyService プラットフォーム固有の機能をXamarin.Formsから共通に呼び出す方法 1. 共有プロジェクトに共通なインターフェースを定義 public interface ISoundPlayer 2. 各プラットフォームのプロジェクトでそのインターフェイスを実装 [assembly: Dependency(typeof(SoundPlayer))] public class SoundPlayer : ISoundPlayer 3. DependencyServiceを使ってメソッドの実行 DependencyService.Get<ISoundPlayer>().Play(soundId);
  27. 27. Xamarin.Forms 1.3(2014年12月) Xamarin.FormsはNuGetパッケージとして提供 Xamarin自体をアップデートしても Xamarin.Formsは自動的にアップデートされない Xamarin.Forms 1.3 Major Enhancements to Xamarin.Forms | Xamarin Blog • Application Lifecycle • Styles • Triggers • Navigation Stack
  28. 28. まとめ(前回のネタへの反応) Xcode タダで使える! iOSとMacのアプリしか作れない Macでしか開発できない Xamarin 無償版、学生無料などはあるが基本有償 iOS、Android、Windows、Macのアプリを作れる WindowsでもMacでも開発できる
  29. 29. Write C#. Run on 2.6 billion devices. With Xamarin, you write your apps entirely in C#, sharing the same code on iOS, Android, Windows, Mac and more. よければXamarin使ってみてください
  30. 30. 付録
  31. 31. Xamarin.Formsの前提条件 Android 4.0以降 iOS 6.1以降 Windows Phone 8(Visual Studio使用)
  32. 32. 注意点 ソリューションファイルがある場所のパスにUnicode文字が含まれて いると「Unexpected Error」でビルドできない(Windows Phoneプ ロジェクトは大丈夫)。 XamarinのAPIリファレンスのメンバには.NETのようにベースクラス のメンバは含まれていない(必ずベースクラスのメンバも見るよう に)。

×