ツイート215マイクロソフトテクノロジの方向性と最新情報を紹介するエンジニアのためのイベント「de:code」。2日目のセッションには、3月に日本マイクロソフトに入社したエバンジェリストの千代田まどか(ちょまど)さんが登場した。Xamarin初心者に向けたセッションの概要をレポートする。アプリのビルドまで~」。タイトルからもわかるように、Xamarin初心者のためのセッションだ。Storeアプリはもちろん、iOSアプリやAndroidアプリ、UWPなどが開発できるクロスプラットフォーム開発環境である。Studioに含まれることになった。そんな注目度の高さに加え、de:codeでは珍しい初心者向けセッションということ、さらにちょまどさんがエバンジェリストとして登壇するということもあり、会場は満席。立ち見が出るほどの盛況ぶりだった。このセッションの登壇者はちょまどさんだけではない。Group」の主催者でもある田淵義人さん、さらに日本マイクロソフト・プラットフォームエバンジェリストの高橋忍さんという、豪華な4人によるセッションとなった。まどさんはマイクロソフトに入社する前はプログラマとして、XamarinでiOSおよびAndroid向けのモバイルアプリの開発をしていた。そこで砂金さんが「これまでのモバイルアプリの開発において、Xamarinを使わないとどんな問題があったのか」問いかけ、ちょまどさんによるXamarinを使うメリットなどの説明が始まった。「今までのモバイルアプリ開発はターゲットプラットフォーム特化型が一般的。Studioで開発というように、言語や開発ツールがバラバラで、プラットフォームごとに完全にコードが分離。スキルやコードの再利用ができず、プラットフォームごとの実装差異が生まれやすくなっていたんです。言語やツールの習得コストもかかっていました」そして一呼吸置いて「そこでXamarinなんです」と、Xamarinをアピール。企業での活用実績も豊富に。NHK紅白公式アプリもXamarinで開発Xamarinを使用すればコードはすべてC#で書くことになり、JavaやSwiftを書くことはない。ロジック部分はコードを共通化できるようになる(UI部分はそれぞれの作法にあった書き方をするため、個別に書くが)。「機能的制約があるんじゃないの」という疑問についても、「ご安心ください。Xamarinは各プラットフォームのネイティブUI・APIを100%利用可能でアプリのパフォーマンスもネイティブと同じ。機能的制約は気にしなくていいと思う」とちょまどさんは言い切る。Xamarinの良さはそれだけではない。最新バージョンのC#6.0で開発できることだ。デメリットは「日本語の情報が少ないこと。必要となるスキルの多さ」とちょまどさんは説明する。企業での活用実績もある。Xamarin社のホームページでは、1万5000社の企業がXamarinを活用しているという。日本でも活用実績はすでにある。三井住友銀行の住宅ローン事前審査アプリ「スピードアンサー15」や、「NHK紅白公式アプリ」は、その一例だ。Sakenomy」では、「Xamarinで開発することで約80%コードを共通化している」と砂金さんは語る。ちなみにちょまどさんいわく「SakenomyはXamarin.Formsで作られている」のだそう。アユダンテ社が開発した電気自動車の充電スポット検索アプリ『EVsmart』もXamarin(Xamarinネイティブ)で開発されている。同アプリのバックエンドはAzureを採用しており、クライアント側もサーバサイドもC#で書くことにより大きなコード共通化を計っている。このような「フロントエンドとバックエンドをC#で作るアプリケーション場合は、Xamarinを使う価値はより上がる」と砂金さんは説明。心配になるのは価格だ。「確かにこれまでは、Xamarin.iOS、Xamarin.Androidなどそれぞれのライセンスについて、開発者1人につき年間12万円程度かかり、さらに、それらの両方を開発するクロスプラットフォーム開発したかったら、両方購入する必要があり、結局1人1年24万円程度かかりました。続いて田淵さんによるXamarinの仕組みに関する説明が始まった。Framework互換の環境を実現するためのオープンソースのソフトウェア群だ。「このMonoこそ、iOSやAndroidなどすべての環境で動かせる仕組みの大きなポイントとなっている」(田淵さん)XamarinではiOSやAndroidのAPIに100%対応。iOSであればiOSのAPIを、AndroidであればAndroidのAPIをC#からたたけるようになっている。Xamarinを使用した開発では、iOSやAndroid、Windows向けなど異なるプラットフォームのアプリでもロジック部分は共通化し、UIの部分を個別に作っていくことになる。「UI部分を個別に作るのは、ユーザーエクスペリエンスを大事にするため」と田淵さんは説明する。わかりやすく言うと私たちユーザーは、AndroidはAndroid、iPhoneはiPhoneそれぞれ固有の作法に慣れているため、「UIはネイティブを使った方がユーザーにとって使い勝手が良くなるからだ」(高橋さん)。開発環境は大きく2つに分かれる。Studioを使って開発する。一つはMacだけで開発する。Studioを使うことになる」とちょまどさん。前者の場合、iOSアプリの開発をする場合、Mac(Xcode)が必要になる。Mobileの開発はできない。セットアップまでの難易度についても紹介。表を見ればわかるとおり、「WindowsでiOSアプリをつくるのは、つまずきポイントが満載。できるけど大変です」と明かす。いうのもWindows側でXamarinの開発環境でアプリを作るだけではなく、Mac側でも開発環境を用意し、それをつなげていくことになるからだ。Androidアプリの開発においては、「Windowsですね。Studioからのデプロイがより簡単だったんです」とちょまどさんは言う。XamarinでAndroidアプリとiOSアプリを作るここまで説明したところでXamarinのデモ。デモをするのは田淵さんとちょまどさん。デモに「一番嫌な時間が来た」とちょっと不安げ。Studioを操作していく。プロジェクトの作成から。Studioにインストールすると、複数のプロジェクトテンプレートがインストールされる。Portableを選択してプロジェクトを作成します」と田淵さん。Phoneのプロジェクトが出てくるが、Androidのプロジェクトをそのままビルドする。デプロイ先は実機とエミュレータが選べるが、「実機を使うのが楽」と田淵さんは言う。今回のデモでもちょまどさんのAndroid端末をつないで行っていた。今回のデモではトースト(ぱっと出てフェードアウトするメッセージ)を追加することを行った。Studioからたたけるようになっている。StudioではIntelliSenseも働くので、効率よく開発できるのも良いところだ」(田淵さん)さらにブレークポイントを貼って、実機にデプロイしたアプリのデバッグをする様子も披露した。続いてデモはiOSアプリのデプロイに。Studioではmulti-platformのテンプレートを選択して、プロジェクトを作成。先ほど同様、iOSのアプリが含まれるプロジェクトを作っていくという手順だ。Studioと似た構成。iOSのプロジェクト構成もXcodeとほぼ同じ構成となっている。Controllerというファイルにコードを書いていく。「コードはC#だが、iOSの作法を知り、APIをきちんと使い分けていく必要がある。スキルがたくさん必要なんです」と田淵さんは説明する。iOSシミュレータを使って、簡単に動作をできる様も紹介し、デモは終了。一つのビジネスロジックで、どのターゲットにもデプロイできる世界に話題はXamarinの今後について。「今後Xamarinはどうなっていくのか」という砂金さんの問いに、田淵さんは次の様に回答した。Phone向けアプリの画面の共通化を図るために作られた。これを使えばUIコードは統一されます」ちなみに言語はXAMLを使用する。Xamarin.Formsでは画面構成をページという単位で管理する。ページは5種類用意され、「基本的な構成はサポートされている」と田淵さん。各ページでレイアウトパターンを選んでパーツ(コントロール)を乗せ、画面を構成していくのである。コントールは19個しかないため、ベーシックなアプリを作ることしかできない。(編集部注:iOS/Android/UWPのネイティブコントロールを呼び出し、リッチなアプリも構築できるが、原則ベーシックなアプリに向いていると言えるだろう)ちょまどさんも「凝ったUIを作りたいのであればXamarinネイティブを使うことをお勧めします」と付け加えた。Xamarinがマイクロソフトに買収されたことで、.NETの開発環境は大きく3つ用意されることとなった。このいずれにおいてもマイクロソフトが目指すのは、.NETベースのフレームワークでクラスライブラリを共通化すること。「開発者は1つのビジネスロジックを書いてコンパイルすれば、最終的にどんなターゲットでもデプロイすれば終了というようにするのが理想。それが今回、Xamarinを買収した目的だと思う」と高橋さんは語る。そこで重要になるのが、「皆さんからのフィードバックです」と砂金さん。「こういうふうになればいいなという熱い思いを伝えてほしい」(砂金さん)高橋さんも「ユーザーである皆さんが、声を挙げてほしい。その声を元に、開発項目のプライオリティをつけているので」と付け加えた。最後にちょまどさんが「みんなも頑張って、Xamarinを使って開発しましょう。応援しています」と会場に呼びかけ、セッションは終了。Studioにクロスプラットフォーム開発ツールのXamarinが組み込まれることとなった。これまでXamarinで開発しようとすると、開発者一人に対し年間約12万円が必要だったため、なかなか手がでなかった人も多かった。Studioユーザーであれば無料で使える。この機会にちょまどさんも勧めるXamarinでiOS、AndroidアプリをXamarinで開発してみてはいかがだろう。2まつもとゆきひろ氏がSpeeeで語った、勉強会・英語・プログラミングの話3永江一石さんが語った、WebメディアにおけるSEOと著作権、その利活用例とは?4GMOペパボの新技術「Haconiwa」、新アーキテクチャ「FastContainerアーキテクチャ」とは?5綺麗なコードと汚いコード。#Elixir6本日の調理実習は「スパゲッティコード」です。RSSCodeIQとはCodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。Tech総研ページ上部へリクルートグループサイトへCodeIQとはCodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。Co.,Ltd.リクルートグループサイトへ。