SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Xamarinで アプリを作ったときの エトセトラ 
2014/10/18 わんくま東京勉強会#92 
初音玲 
1
セッションの目的とゴール 
セッションの目的 
Xamarinの開発手順を理解する 
Windowsストアアプリとの違いを理解する 
セッションのゴール 
アプリを作るための流れを説明できるようになる 
2
自己紹介 
仕事略歴 
システム企画 
インフラ構築 
業務アプリ構築 
DB設計、構築、各種支援 
略歴 
Microsoft MVP (2008/04-2015/03) 
Oracle ACE (2008/04-:日本で2人目) 
@hatsune_ 
3
最近の著作 
4
AEDオープンデータプラットフォーム 
https://www.facebook.com/AEDSearch 
全国のAED情報を一元管理(世界対応済) 
オープンデータ 
無償利用可能【CC BY 3.0 】 
REST/JSONインターフェース 
県単位一覧、市町村区単位一覧、直近AED検索、周辺AED検索 
登録用APIあり (現在は特定アプリにのみ公開し実証実験中) 
対応アプリケーション(2014.9.1時点) 
AED検索for Windows 8 /for Windows Phone 8.1 
AED検索Web版(酢酸さん作) 
http://aedmap.catchball.co/ 
5
アジェンダ 
Androidアプリ作成最初のつまづき 
2つのロジック分離方法 
Xamarin Formsの幻想 
私はこれでアプリがつくれました 
まとめ 
6
Androidアプリ作成最初のつまづき 
7
APIレベルはどれを選ぶ? 
8 
Android 5.0 Lolipop 
Moto 360とか 
2012年冬モデル4.0.4→4.1.2 
2013年春モデル4.1.2→4.4.2 
Ice Cream Sandwich 
Jelly Bean 
Kitkat
標準エミュレータが遅い 
Genymotionがあるじゃない! 
9
Android開発はWindowsだけで可能 
10
どう設定しているのか分からない 
MainActivity.cs 
[Activity(Label = "わんくまさんぷる02",… public class MainActivity: AndroidActivity 
アイコン 
11
iOSアプリ作成に必要なものは? 
12 
Xcode6.0.1 
VS2013 + 
Xamarin 5.5
iOSアプリ開発でUIエディタを使うには? 
Visual StudioかMacでXamarinを使う 
13 
3D 
2D
Mac上のXamarin 
14
Visual Studio with Xamarin 
15
2つのロジック分離方法 
16
Portable Class Library 
17 
PCL 
プロジェクト 
Android 
プロジェクト 
iOS 
プロジェクト 
PCL 
ビルド 
PCL 
PCL 
参照設定 
参照設定
PCL方式 
18
PCL構成 
PCLにはロジック 
Viewはあくまでも別 
UXは同じでも 
UIはOSごと 
19
共有 
20 
共有 
プロジェクト 
Android 
プロジェクト 
iOS 
プロジェクト 
ソース 
コード 
参照設定 
参照設定 
ソース 
コード 
ソース 
コード
共有コード方式 
21
共有コード構成 
PCLにはロジック 
Viewはあくまでも別 
UXは同じでも 
UIはOSごと 
22
PCLと共有コードの違い 
23 
参照設定
iOSとAndroidでコードに差があるとき 
24 
PCLは「if」で条件分岐 
・実行時に判定 
共有コードは「#if」で条件分岐 
・コンパイル時に判定
PCL vs 共有コード 
PCL方式なら 
OS別ロジックがそもそも入り込まない 
共有コード方式なら 
universal Windows appsは共有コード方式 
実行ファイルにOS別ロジックが入らない 
OS別ロジックに専用クラスが書ける 
25
結論は…PCLオススメ! 
26
理由は… 
27
理由は… 
PCLがVBで作成可能 
PCLにロジックを書く || iOS/AndroidアプリがVBで 
28
Xamarin Formsの幻想 
29
Xamarin Forms -Pages 
30
Xamarin Forms -Layout 
31
Xamarin Forms -Controls 
32
PCLにはクラスを追加 
33
VS側だとFormsテンプレートがない 
Xamarin StudioでOK! 
他の改善要望に比べたら 些細な問題 
34
Xamarin Studioを同時に起動 ContentPageを追加 
ここのテンプレートが明らかに不足 
35 
【Xamarinさんへの提言】 
•PageとLayoutで大きく分けよう! 
•NavigationPageとかも入れて! 
•GridLayoutとかも入れて!
xamlなのにVSでデザインできない→正常 
36
Xamarin Formsでタイトルをだす 
サンプル通りだとタイトルでない 
37 
publicclassApp{ publicstaticPageGetMainPage() { returnnewNavigationPage(newMainPage()); } }
xamlなのにXAMLエディタでデザイン不可 
Xamarinさん的にはあまり重要視してない? 
手書きでいいと思っている? 
忙しく手が回らない? 
実はXAMLしらないんじゃ? 
Blendとか開いたことないんじゃ? 
XAMLのStoryboardで使ったことないんじゃ? 
38
Xamarinが思っている以上に重要な事 
Xamarin利用者ってだれ? 
実はWindowsアプリ開発者じゃない? 
元々、iOS/Androidアプリ開発者? 
39 
いまのままでは、どちらにも受け入れてもらえない 
Windowsアプリ開発者の興味は絶望に変わります! (少なくとも私は、いまのXamarin Formsを使うのはストレス) 
Storyboardやaxmlの参考資料→ある 
Xamarin Formsの参考資料→実質ない 
お前が書けばいいじゃない?→企画会議を通せるだけの魅力が語れない 
Xamarin Formsデザイナ作るテンションがないなら XAML互換性をちゃんととってVisual Studio/Blendのデザイナで!
私はこれでアプリがつくれました 
40
これ→PCLだけのをつくる 
41
ターゲット確認 
42
PCLだけのソリューションに追加 
43
Manifestを整えて 
44
フォルダ名の大文字小文字を整えて 
45
46
MvvmCross 
47
MvvmCross 
48
Android画面はaxmlでつくる 
Androidアプリの参考書が参考になる 
49
iOS画面はStorybardでつくる 
iPhoneアプリの教科書が参考になる 
50
詳しくはMvvmCrossのセッションで 
51
まとめ 
54
まとめ 
疎結合が大事 
Binding 
共有ソースよりPCL (今のところ) 
UIはプラットフォーム依存 
Xamarin FormsのXAMLは… (今のところ) 
Visual BasicでiOS/Andoridアプリを作ろう 
55

Mais conteúdo relacionado

Mais procurados

[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
de:code 2017
 

Mais procurados (7)

[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
[TL08] 50 分で Bot 開発者になれる!~実践的ノウハウと、 Azure や Office 365 を組み合わせたアーキテクチャの伝授~
 
20150423 introduction tovsto
20150423 introduction tovsto20150423 introduction tovsto
20150423 introduction tovsto
 
Basic言語でiOSアプリを作る
Basic言語でiOSアプリを作るBasic言語でiOSアプリを作る
Basic言語でiOSアプリを作る
 
Bot frameworkでbot入門
Bot frameworkでbot入門Bot frameworkでbot入門
Bot frameworkでbot入門
 
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
はてなエンジニアブロガー祭りLT クロスプラットフォーム開発
 
続Xamarinはじめました
続Xamarinはじめました続Xamarinはじめました
続Xamarinはじめました
 
コントロールベンダー視点での Command line interface (CLI)
コントロールベンダー視点での Command line interface (CLI)コントロールベンダー視点での Command line interface (CLI)
コントロールベンダー視点での Command line interface (CLI)
 

Semelhante a Xamarinでアプリを作ったときのエトセトラ

DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
Daiki Kawanuma
 

Semelhante a Xamarinでアプリを作ったときのエトセトラ (20)

Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編Open Fab Night Sensor Special - Android編
Open Fab Night Sensor Special - Android編
 
App005 xamarin と_azure_で、超効率的
App005 xamarin と_azure_で、超効率的App005 xamarin と_azure_で、超効率的
App005 xamarin と_azure_で、超効率的
 
App005 xamarin と_azure_で、超効率的
App005 xamarin と_azure_で、超効率的App005 xamarin と_azure_で、超効率的
App005 xamarin と_azure_で、超効率的
 
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
 
[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001[Japan Tech summit 2017] APP 001
[Japan Tech summit 2017] APP 001
 
Meets IT and PUSH 2015 東京 ハンズオン
Meets IT and PUSH 2015 東京ハンズオンMeets IT and PUSH 2015 東京ハンズオン
Meets IT and PUSH 2015 東京 ハンズオン
 
モバイルが モーションセンサーに 出会ったら
モバイルがモーションセンサーに出会ったらモバイルがモーションセンサーに出会ったら
モバイルが モーションセンサーに 出会ったら
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
アプリケーション・デベロッパー 〜Xamarinによるクロスプラットフォーム開発〜
 
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT appsMAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
MAF2013 Enterprise Windows 8 – Architecture for rapid development of WinRT apps
 
くまあず Nchikita 140628-2
くまあず Nchikita 140628-2くまあず Nchikita 140628-2
くまあず Nchikita 140628-2
 
Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209Introduction to Xamarin - JXUG 20171209
Introduction to Xamarin - JXUG 20171209
 
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォームEdge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
Edge から Cloud, Beginner から Professional までサポートする Azure AI プラットフォーム
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
20010127
2001012720010127
20010127
 
MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性MTDDC 2019 LINE ボットからみた MT Data API の可能性
MTDDC 2019 LINE ボットからみた MT Data API の可能性
 
ADO.NET Entity Framework
ADO.NET Entity Framework ADO.NET Entity Framework
ADO.NET Entity Framework
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 

Xamarinでアプリを作ったときのエトセトラ