2013年4月24日

Androidのアプリ開発にTFSとAzureを使ってみる(3)

今回も長いです

TFSでのプロジェクト管理の軽いお作法的なことを書いてみます。
前回も長かったですが(ちゃちゃっとやれば数分でできることなのに……)、今回も長くなりそうで。
先にごめんなさいします。

ソースのチェックイン

前回、ソースファイルをTFSに登録するところまでやりました。
ここからはルーチンワーク的な作業になります。
まずはファイルのチェックインから。

チェックインは当然のことながら、「ソース管理」の画面で登録したファイルのみ行われます。
ただ、作業をしていると自然とファイルが追加されていきます。
それについては、既に登録されているディレクトリ下に追加したファイルは自動的にソース管理に追加されるようです。

すでにファイルは登録されているとして。
まずは「チームエクスプローラー」ウインドウの上部にある▼のついた部分があります。
(通常なら「ホーム▼」になっているはず)
その▼部分をクリックするとメニューが開くようになっています。
その中で、「保留中の変更」を選んでください。
下記のようになり、変更・追加したファイルが一覧になって表示されます。

050

あとはコメント欄に変更履歴なんかを書いて、「チェックイン」のボタンを押せばファイルがチェックインされます。
VSSとは違って、特にそのままチェックアウトしなおさずに変更を重ねて行っても大丈夫です。
変更のコンフリクトがあればどのファイルがコンフリクトになっているか知らせてくれますし、マージツールも起動できます。

プロジェクトの設定

▼メニュー内から「設定」を選ぶことでプロジェクトの設定を行うことができます。

051

複数人で編集する際にはこの中の「セキュリティ」「グループメンバーシップ」の設定は必須になってきます。
ユーザーはActiveDirectoryで管理されているものや、動かしているサーバー内のユーザーなどを設定することが可能で、メールアドレスが設定されているとそのまま引っ張ってこれたりもするようです。

この「設定」内の「作業項目のイテレーション」を選ぶと、ブラウザウインドウが新しく開き、イテレーションを設定することができます。
「イテレーション」とはTracなどの「マイルストーン」で、大まかな作業区割りになります。

052

項目をダブルクリックすると設定変更できます。
ここで指定できるのはイテレーション名と期日です。

053

タスクを作ってみる

タスクは「作業および見積り」です。
これはできるだけ細かく入力することをお勧めします。
まずはメイン画面作成のタスクを作ってみます。

▼メニューから「作業項目」を選びます。
すると、チームエクスプローラーのウインドウが以下のように変わりますので、「新しい作業項目」をクリックしてください。
メニューが開きますのでその中から「タスク」を選ぶことで新しいタスクを作ることができます。

056

057

このウインドウの項目を埋めていくことで行わなければいけない項目を作成します。
「状態」や「理由」は最初に作った段階では新規しか選べません。
「イテレータ」は先ほど作成したイテレータを選択することができます。
この中で仕事で使うには意外に重要なのが「最初の見積もり」です。
ここにはとりあえず何時間くらいかかりそうかを入力します。

タスクはいくつも作ることができます。
また、タスクの子供としてタスクを作成することができ、上記のウインドウ内の「実装」や「すべてのリンク」から親子関係を作成することができます。

タスクの子供はプロジェクト内に作成できるもの何でも子供として登録できます。
バグ、要望、チェックイン項目などなど。
また、「添付ファイル」でファイルを添付することもできます。
このようにしてリンク関係を作っていきます。

タスクの一覧を表示する

「チームエクスプローラー」ウインドウで「作業項目」を選んでいると、「クエリ」という欄があります。
これが登録されているタスクやバグを一覧表示する機能になります。
たとえばこの中で「担当タスク」をダブルクリックすると自分が担当者になっているタスクを一覧表示することができます。

058

もちろん、クエリはカスタマイズできます。
クエリ内の各項目で右クリックするとメニューが出てきますので、その中から「クエリの編集」を選ぶことで以下のようなウインドウが表示されます。

059

クエリの中には「マイクエリ」と「共通クエリ」があります。
これらの違いはその上の「お気に入り」と「チームのお気に入り」のどちらに登録できるか、になります。
「マイクエリ」内のクエリは「お気に入り」に、「共通クエリ」はどちらにも登録できるんです。

では、この「お気に入り」と「チームのお気に入り」の違いは、というと、「Web Access」に違いが出てきます。
「チームエクスプローラー」ウインドウ内の▼メニューで「Web Access」を選ぶと、ブラウザが立ち上がってプロジェクトの管理をすることができるんですが、このトップ画面には「チームのお気に入り」に登録されているクエリが表示されます。

「チームのお気に入り」に何も登録されていないときは

060

こんな画面ですが、登録されていると、

061

こんな風に変わります。
これは、開発のメンバーではなく管理のメンバーの場合、開発ツールを入れずにブラウザで進行状況をチェックすることができるようになっているためと思われます。
状況がわかりやすいですね。

バグを登録する

基本的にはタスクの作成と同じですが、こちらは「Web Access」で行ってみましょう。
「チームエクスプローラー」ウインドウの▼メニューから「Web Access」を選びます。
出てきたウインドウの上部、「+バグ」ボタンをクリックするとバグ登録の画面が開きます。

062

「状態」欄は新規しか選べません。
「理由」欄は新規かビルドエラーかを選択することができます。
通常、「ステップの再現」欄に再現方法を、「システム情報」欄に再現したシステムを記入します。

063

ここでの「発見されたビルド」ですが、TFSが行ったビルドが自動的にポップアップされ、入力できるようになっています。
Androidアプリの自動ビルド設定の仕方は次回にでも書こうと思ってるんです。
(というか、本当はそれが書きたかったw)

入力が終わったら、Eclipseに戻って「作業項目」のクエリから「担当のバグ」をダブルクリックして一覧表示してみてください。
下記のような一覧表示のウインドウが開きます。

064

この一覧の各アイテム上で右クリックすればメニューが開きます。
その中から「リンクされた新しい作業項目...」を選ぶことで、このバグにリンクされたタスクなどを新しく作成することができます。

065

ポップアプから「子」を選び、タスクを作成することで、関連づいたタスクを作成することができます。
こうしておくことで「担当のタスク」を見ることでやらなければいけないことの管理ができるようになるわけです。
また、デバッグ担当は開発ツールを入れることなくブラウザでバグを入力することができます。

通知機能

タスクやバグの登録・変更をメールで知らせる機能もあります。
この機能はTFSの管理ツールからメール関連の設定をしておくことが前提になります。

066

左側のツリー項目の「アプリケーション層」をクリックすると、メールの設定を行える部分があります。
ここの「通知の設定」のリンクをクリックするとメールの各種設定を行うウインドウが開きます。

067

ここでメールの送信設定を行っておいて、Eclipseの「チームエクスプローラー」の▼メニューから「設定」を選び、「通知の設定」を行うことでメールでの通知が行われるようになります。

Express版とExpressのつかない版の違い

仕事ではExpressがつかない版のTFSを使用しています。
なので、このBlogを書いてて『あれ?』と思うこともしばしばあって。
とりあえず簡単なところで違いを挙げておきます。

まず、Express版にはグラフを作成してくれる機能がないようです。
下記はExpressが無い版の「Web Access」の画面です。

100

赤いバーで表示されている部分は、予測時間や1日に割り振れる時間などをきっちり入れておくと、時間予測して表示してるのです。
予測時間が想定内であれば緑でバーが描かれるんですが…。
ここでは「予想より実際の時間がかかりすぎや」と怒られているので赤くなっています。
(バグ消化に夢中になって入力忘れてるんですな)

また、その時間予測からバーンダウンチャートを描いてくれます。
これは一定時間ごとにバックグラウンドで計算されているようで、リアルタイムには変わってくれません。
これらの機能のため、予測時間や残存時間の入力が大変重要になってくるのです。

上記のようなアバウトなグラフではなく、もっとキッチリとした画像も生成してくれます。

101

まあ、こんなチャート見せるのは恥ずかしいのですが。
終わりきってませんし(笑)

また、チーム内のタスクやバグを見やすい「ボード」という機能があります。

102

左端がバグやバックログ(Expressに無さそう!)項目で、その右の青い四角が各々タスクになっています。
青い四角の中には残存時間やタスク名、担当者の名前などが表示されていて、誰にどんな作業が残っているか、どの作業中なのか、どれを終わらせているか、どれくらいの時間がかかりそうなのか、等が一目瞭然です。

また、Webインターフェイスにもかかわらず、ドラッグ&ドロップで項目移動やクリックでの入力開始などができたりして。
そこだけでしばらく遊んでしまえるようになってたりします。

最後に

とりあえず、タスクとバグの登録関連をざっと見てみました。
基本的にはこの辺り、ルーチンワークになると思われますので、簡単に登録などができるようになっているのがうれしいです。
また、一覧も比較的簡単にクエリが書けたりしますので、いろいろ凝ったリストも表示することが可能です。

しかし、長くてすみません。
はしょりまくりで書いたつもりなんですが…。
次回はAndroidの自動ビルドをばさっくりと書きたいです。

2013年4月23日

Androidのアプリ開発にTFSとAzureを使ってみる(2)

プロジェクトとコレクション

TFSをAndroidのプロジェクトで使う前にTFSの基本的な考え方を書いておきます。
TFSではソースやタスク(Redmineでいうチケット)、バグなどを束ねているのは「プロジェクト」になるんですが、そのプロジェクトの上位に複数のプロジェクトを束ねる「コレクション」という存在があります。
つまりはこんな感じ。

  • コレクション
    • プロジェクト
      • タスク
      • タスク
      • バグ
    • プロジェクト
      • タスク
      • バグ
    • プロジェクト
  • コレクション
    • プロジェクト

この「コレクション」は「管理コンソール」アプリからしか操作出来ません。
コレクションを作成すると、内部的にはデータベースが作成され、それぞれが別管理になります。
また、Webインターフェイスでも別URLが付加されます。

「プロジェクト」下の各オブジェクト(ソース・タスク・バグ等)はそれぞれが親になったり子になったりのリンク状態を作成することができます。
そして、これらはWebインターフェイスでもEclipseのプラグインでも操作できます。

コレクションを作る

TFSをインストールをすると、DefaultCollectionというコレクションが標準で作成されています。
この下に複数のプロジェクトを作成できるので、個人で使う分には特に新しくコレクションを作成する必要はないんですが、チーム別でコレクションを分けたりしておくと便利になったりします。

まずは「管理コンソール」を立ち上げます。
すると以下の画面っぽくなってるはずなんですね。

020

右上に「コレクションの作成」のリンクがあるのでそれをクリックします。
すると、以下のようにコレクション名と説明の入力を促されるので、最低限コレクション名を入力します。
ここでこのコレクション名ですが、英数字のみで作っておくことを強くお勧めします。

021

あとはもう「次へ」と「検証」「作成」を選んでいけば、最終的に「成功!」とか言われてコレクションの作成が終了します。

028

プロジェクトの作成

さて、主に使うことになるプロジェクト、なんですが。
Eclipseから使っているとここで問題になります。

実は、Eclipse+Team explorer everywhereのみではプロジェクトを作成することができない様なのです。
TFSのWeb解説の「プロジェクトの作成」には以下のように書いてあります。

チーム エクスプローラーのみからチーム プロジェクトを作成できます。

というわけなのですが、Eclipseからは空のコレクションにプロジェクトを追加すること、ができません。
これは、以下の理由のためです。

Eclipseだとプロジェクトを作成するコレクションを選ぶ際に以下のダイアログが表示されます。

030.ng

そして、VisualStudio2012シリーズから同じコレクションを選ぶ画面を出すと、以下の画面が出てきます。

031

ここで違うのは、「チームプロジェクト」の欄がEclipseだと空であるのに対し、VisualStudioからは(選べませんが)「すべて選択」のアイテムがあるのです。
そのため、EclipseだとFinishのボタンが押せません!!VisualStudioからは「接続」のボタンが押せるのです!!
そのため、Eclipseでは空のコレクションに接続できない、ゆえにプロジェクトを作成することができない、という状態になってしまうのでした。
ここはぜひとも直してほしいです>MS

プロジェクトを作成する

仕方ありませんので、とりあえずVisualStudio2012からプロジェクトを作ることにします。
今のところ、無料のVisualStudioシリーズでもプロジェクトは作成できるようですので、そちらから作成します。

「ファイル」メニューの「新しいチームプロジェクト...」を選ぶと、以下のようなダイアログが出ます。
とりあえずプロジェクト名だけつけて「完了」を押せば、いろいろ動いて完了の画面になります。

040

041

これでプロジェクトが作成できました。
Eclipseに戻ってプロジェクトに接続します。

EclipseからTFSのプロジェクトに接続する

Eclipseから「Team foundation serverエクスプローラー」パースペクティブを開くと、以下のようなウインドウが開きます。

042

このなかの「Team Foundation Serverへの接続」を選ぶと、以下のようなウインドウが出ます。
今度はプロジェクトを選択できるようになっていて、「Finish」のボタンも押せるようになっています!

043

接続したいプロジェクトにチェックを入れて「Finish」のボタンを押せば接続し、ソースのチェックインやタスクの作成などが行えるようになります。

ソースディレクトリを指定する

プロジェクトとの接続ができれば、ソースの登録やイテレーション(マイルストーン)の登録ができるようになります。
プロジェクト進行の部分は次回に書くとして(相変わらず画像だけで長くなってしまいましたので…)。
まずは、ソースの登録をば。

接続できれば、チームエクスプローラーのウインドウの中身が以下のように切り替わります。

044

まずはここで「ソース管理エクスプローラー」のリンクを選んでください。
すると、以下のようなウインドウが開きます。

045

ここではまず、「マップされていません」というリンクをクリックしてください。
すると、どのディレクトリと関連付けるか入力するウインドウが開きます。

046

「参照」のボタンを押せばGUIでの選択ができます。
GUIで指定した場合、指定したディレクトリ内のプロジェクト名のディレクトリをマップすることになるようです。
気になるのであれば、テキスト欄の修正は可能なのでworkspaceを指定しなおしましょう。
普通にEclipseからAndroidのApplicationを作成するとworkspace下にソースが作成されるので、そのまま管理することができるようになります。

さっそくAndroidのApplicationを作成しましょう。
…とまあ、その辺の知識はあること前提として(笑)
もうすでにソースコードが上記でマップしたディレクトリ下にあること前提にします。

ソースを登録する

マップが済めばソースを登録します。
「ソース管理」ウインドウに表示されているプロジェクト名を右クリックするとメニューが出てくるので、「項目をフォルダーに追加...」を選びます。
ウインドウが出てディレクトリやファイルを追加できますので、チェックインしたいファイルやディレクトリを追加してください。

048

問題は除外設定でディレクトリの設定ができません。
なので、binやgenを取り除きたい場合は、除外の欄に「*.class;R.java;BuildConfig.java」と設定しておけばほとんどのファイルは除外できます。

とりあえず今回はここまで

な、長いです……。
すみません。
なんか毎回こう書いているような。

次回はプロジェクト管理の基本を書いてみます。

2013年4月20日

Androidのアプリ開発にTFSとAzureを使ってみる(1)

TFSについて

自分の中で今一番のトレンドといえばTFSです。
これは、Visual Studio Team Foundation Serverと言って、MicrosoftにおけるTrac+Subversionのような、ソース管理+プロジェクト管理用のツールです。
5人までならExpressバージョンもあって無料で使えたりします。

で。
自分も最近まで知らなかったのですが、MicrosoftのVisualStudioのバージョン管理、ということでVSSを思い出す方も多いと思いますが。
実はこれは大きな間違いでありまして。
TFSはVSSのバージョンアップ版でもなんでもなく、別プロダクトのようで。

VisualStudioからだけでなく、Eclipseからも接続できたりするんですね。
プロジェクト管理もMS Projectからだけでなくブラウザから使えたりして。
しかも、最近のバージョンアップでGitにも対応したりして。
かなり便利だったりします。

Eclipseからつなげられる、ということで。
実はAndroidのソース管理にも使えたりします。
(Gitも使えるようになっているので、そちら方面から攻めても大丈夫です)
Macからでも大丈夫なようです。
では早速使ってみることにします。

TFSをインストールする

実はTFS Express、2013/04/20現在、先のTFS Expressのリンクからダウンロードすることができません。(謎)
なので、VisualStudioのダウンロードページからダウンロードします。

この真ん中らへんにVisual Studio Team Foundation Server Express 2012という項目がありますので、そこの中のリンクからインストールをします。
ここに書いてあるUpdate 2というバージョンからGitが使えるようになっているようです。
インストールするとSQL Server Expressも同時にインストールされるようです。
(管理のバックエンドにSQL Serverを使用しているらしい。バックアップとかもそちらをバックアップする)

…とここまで書いておいてなんですが、個人ではこのExpressとVisualStudio使って作業するんですが、Eclipseからは仕事場で使っていて、サーバーはExpressじゃないほうのTFSなんですねぇ。
後で書く(予定)のビルド設定とかがちゃんとExpressで使えるかどうかは実はよくわからなかったりします。ゴメンナサイ orz

EclipseにTeam explorer Everywhereをインストールする

さて。
TFSとEclipseで検索すると、MSのエバンジェリストの長沢さんのBlogに行きつきます。
TFSといえば長沢さん、ということで、ここは素直に長沢さんのBlogに従います。

が。
上記の記事は少々古いので。
Eclipseのプラグインの入手先をTeam Explorer Everywhere for Team Foundation Server 2012 with Update 2こっちにします。
(実はこっちにも手順は詳しく書いてあります)

あとのインストールは長沢さんのBlogの通りなので…。
重複して書いても面白くないのでとりあえず今日はこの辺で。
また次回にでも。

2013年4月18日

Android実機でのデバッグ。

久しぶりの更新です。

ある時期極端に忙しくなると、Blogなどほっぽり出してしまいます。
悪い癖です。
その後、時間が空いてもそのままほっておいてしまいます。
いかんです。

Androidの開発中

今はAndroidアプリの開発をやっています。
ホストマシンはWindowsで。
これがまた厄介で、USBドライバなどというものが必要になります。
MacやらLinuxやらがホストならそんなもの要らないのに…。

というわけで、せっかくなのでドライバの設定でも晒しておきます。
対象機種は、

  • REGZA TABLET AT830
  • Sony XPERIA Tablet Z SGP312
  • Kindle Fire
  • docomo dtab

です。

;REGZA AT830
%SingleAdbInterface% = USB_Install, USB\VID_0930&PID_0963
%CompositeAdbInterface% = USB_Install, USB\VID_0930&PID_0963&MI_01

;sony SGP312
%SingleAdbInterface% = USB_Install, USB\VID_0fce&PID_5194
%CompositeAdbInterface% = USB_Install, USB\VID_0fce&PID_5194&MI_01

;kindle fire
%SingleAdbInterface% = USB_Install, USB\VID_1949&PID_0007
%CompositeAdbInterface% = USB_Install, USB\VID_1949&PID_0007&MI_01

;dtab
%SingleAdbInterface% = USB_Install, USB\VID_12D1&PID_360E
%CompositeAdbInterface% = USB_Install, USB\VID_12D1&PID_360E&MI_01

よく見たら


前のエントリーが去年の8月なので…。
毎度のことながら、よく開けるもんだ、と。
すみません。(多分、だれも着いて来てないだろうとは思うが)