isseium's blog

田舎に住むWebエンジニアのブログ

「データサイエンティスト養成読本」を読んだ

データサイエンティスト養成読本を読んだので読書感想文を書きます.

次のような章立てになっている.それぞれに3〜5章くらいの小さい章がある構成です.

  • データサイエンティストの仕事術
  • データ分析実践入門
  • マーケティング分析本格入門
  • Fluentd 入門
  • データ分析のためにこれだけは覚えておきたい基礎知識

データサイエンティストの概要をつかむにはよいと思うが,複数人の内容をまとめているということもあって,内容が重複したり,粒度にばらつきがある.

Rや各種ライブラリ,統計技法を用いた実践例もあるが,この本だけでは理解は厳しい.

個人的におもしろいと思ったのは,次の3つ.

データサイエンティストの仕事術の第1章「データサイエンティストに必要なスキル」

まずは,データ分析・解析の歴史を振り返り,1960年代からマーケティングやビジネス面もまじえて紹介されている. 次に,データマイニングのプロセスである「CRISP-DM」「SEMMA」「KDD」を紹介している. データマイニングの世界のプロセスを知らなかったのでためになった. 大学の研究もこのプロセスを取り入れつつすすめていきたいと思った.

データ分析実践入門 第5章「データマイニングに必要な10のアルゴリズム」

タイトルのとおり,10のアルゴリズムが紹介されています. データマイニングで使われている技術キーワードを知るにはとてもいいと思いました. 当然ですが,この本では概要の概要しか触れられていないので,使いこなすのは無理です. 紹介されているアルゴリズムは次の通り

  • C 4.5: 集合を特徴をもとに分割して決定木を作るためのアルゴリズム
  • k-means: クラスタリングでもっとも有名なアルゴリズム
  • SVM: 画像の特徴点などの説明変数がが膨大なデータでも高速計算できるアルゴリズム
  • アプリオリアルゴリズム: アソシエーションルール分析のために使われるアルゴリズム
  • EMアルゴリズム: 複雑な対象において最適解を求めるアルゴリズム
  • ページランク: Google のやつ
  • アダブースト: アンサンブル学習のひとつ.(よくわからなかった)
  • k-近傍分類: まる暗記型の分類機
  • ナイーブベイズ: クラスを予測するための手法.軽量で性能もよいため,よく使われる.
  • CART: 2分木によってクラス,連続地,生存期間などを予測できる手法.

マーケティング分析本格入門 第1章 「Rによるマーケティング分析」

統計をマーケティングにどう活かしているかがわかるいい例でした. 対象集団を分類するために,消費行動アンケートをとり,主成分分析を用いたあとに,クラスタリングし,セグメントを洗い出し,セグメントに突き刺さるように戦略を立て,さらには分析・評価するところまで書かれていて,ひととおりの流れがわかりました. 定性的研究や実践よりの研究にも役立つと思いました.

番外: マーケティング分析本格入門 第2章 「mixiにおける大規模データマイニング事例」

データサイエンティストの養成という意味では広告領域に焦点をあてていて,内容も少し技術よりでしたが,mixiのインタレスト広告の裏側が知れて,インタレスト系広告に関わっていたエンジニアとしては非常におもしろかったです. hiveやmahoutを使ってるんですね!

前職のところもどんどんこういう記事を書いていけば,エンジニアから魅力的な現場だと思われると思うんですけどね!

まとめ

データサイエンスの概要をつかむにはいい内容だと思いました. 深い知識が必要なく,数式やソースコードもほとんどでてこないのでスラスラ読めます(理解しているかは別です)ので,グループでの勉強会の導入にはいいのではないでしょうか.

ホワイトボードシートを買ってみた

ホワイトボードって議論には必須のアイテムですよね!

研究室にもう少しホワイトボードを増やしたいたかったのですが,意外と場所をとりますし,値段もそこそこするのであきらめていました.

  • 壁に穴をあけずにかけられる(マグネットじゃないやつ)
  • あまり高くない

こんなものがないかなーと思っていたところ,こんな記事が!!

「壁面に貼ってホワイトボードとして使えるシートが発売」

日立マクセルは、壁面に貼ってホワイトボードとして使用できるシート「このシート ホワイトボード?」を発売する。発売日は6月25日。価格はオープン。

(中略)
接着剤を用いることなくガラス、コンクリート、木、鉄などの平らな壁面に貼ったり、はがしたりすることができる。

(後略)



http://news.mynavi.jp/news/2013/05/02/104/index.html

ぐぐったら yodobashi.com で売ってました.

値段が高いのかなーと思っていたら,80cm * 60cm が 12枚 はいって 2280円 ! 25枚入りならさらにお得に 3580円!ホワイトだけじゃなくてクリアもある!

さっそくホワイトだけポチりました.

yodobashi.com はじめて使いました.2日で届きました!送料無料!ポイントもつく!お得ですね!

使用方法はこんな感じで記載されてます

さっそく研究室の壁に使ってみました この壁が...

こんな感じに!

当然,書ける!

まだ使い始めなので,デメリットは思い浮かばないですが,結構よさそうです! 追加で買ってしまおうかなー!と思っちゃいました.

使っているうちにデメリットがわかってくると思うので,追記していきたいと思います!

最後に,この商品,まだ出始めたばかりか,情報が少なすぎるんですよね. マクセルさんの公式Webサイトも写真も小さいし,ハメコミっぽいし,なんだか利用イメージが浮かばない. もう少し宣伝にお金かけても... と思いました.

※1... このブログがきっかけに売りあげあがったら,2,3本贈ってくれるとうれしいなぁー(ぉ

※2... 買ってから見つけたけど文房具のセーラーさんから先にでてた!売上3万個! http://sailorshop.jp/SHOP/31-3800-000.html

開発コンテスト24で,毎朝がちょっと楽しみになる「まごコール」を作りました

クックパッドさんの第4回 開発コンテスト24にて「まごコール」をつくりました.

今回のコンテストのテーマは,「年をとった自分が使うサービス」ということで,自分が年をとったらなにが課題かなーと考えたところ,

孫の声が聞けないなんて嫌だ!

と考え,孫の声が聞けるサービスを作りました.

まごコールとは?

通信手段が発達した現代において,孫と祖父母は,いつでもやりとりができるのですが,時間が合わなかったり,いつでもできると思うとなかなか連絡はしないものですよね.

また,子供である孫や恒例である祖父母は,パソコンやスマホを自由に使えないことが多いです.

そこで,我々は,シンプルで普及率の高いデバイス「電話」をインタフェースにした音声メッセージングサービス「まごコール」を開発いたしました.

使い方

お孫さんは,まごコールに電話をかけます.するとメッセージを録音できます.

翌日8時に,祖父母の電話番号にメッセージが届けられます!

プレゼン資料

※資料に,お手元の端末で実行できる方法を記載しておりますが,一定の時間をすぎると使えなくなる仕組みになっており,このブログを閲覧時点ではすでに使えない可能性があります.ご了承下さい.

技術的な話

電話(IVR・録音など)関連は,Twilio を利用しています.

初めて使ったのですが,APIやライブラリが揃っていて使いやすいですね!そして,課金しなくてもある程度試せるがいいですね!最終的には2000円課金しました!

学部時代に,Asteriskを利用したうんぬんということを研究室のサーバにボードを設置して〜インストールして〜などとしていましたが,Twilioはそういう部分をすべて雲の上の世界として使えるのでいいですね!

その他,プログラマブルな部分は,PHP を利用しました.

誰と作ったの?

大学の後輩である @endlessbaum くんと,某盛岡市内の大型書店内にある喫茶店で作りました.

順を追って話すので,少し長くなりますが,当初はこの開発コンテスト24にて,「岩手にもクリエイターがたくさんいるぞ!」とPRしたくて,岩手非公式会場を運営しようと思っていました.今月初頭に,岩手県立大学に利用許可申請をしたのですが,開催日である6/15は「大学編入試験」で立入禁止日で,許可が下りませんでした.

先月,同大学で行われたハッカソンイベント「たきざワッカソン」の参加状況をふまえると,20〜30名規模で開発コンテスト24に挑める絶好の機会だったのに... と落胆し,モチベーションが低くなっていました.

そのまま,15日を迎えたのですが,前日夜にhuluでフリンジにはまってしまい 起床時間が10時で,うぉおおおっと.

Facebook 上を見ると, @endlessbaum くんがまだテーマも決まらず悩んでいるようだったので,近くの喫茶店でやろう!とお声がけしまして,一緒にやりました.

開発を一緒にしたこともなく,研究室も違いますし,なかなかコンテキストが違って大変だったのですが,徐々にすりあわせをして開発を完了しました!

コンテストを終えて

残念ながら賞はいただけませんでしたが,楽しかったです.

今年で3回目の参加で,毎回作る楽しみを味わえていいと思います. 当日までテーマがわからないのがいいですね!

サーバログをみると,クックパッドさんが審査のためにきちんと使っていただいていました.多くの作品を審査をしていただいた運営の皆様,大変ありがとうございました.

来年は,ぜひ岩手非公式会場を運営してカレーを配給したいと思います!

Fitbit Flex 開封の儀

半年くらい前に @spesnova が持ってた fuel band と,その他の活動量計について教えてもらい,とても興味を持ちました. 調べてみると,fitbit がどうやら新しい物をだすということでずっと待っていました.

4月下旬に,Amazon.com にて注文できるようになったのですぐにポチッっと. しかし,fitbit本家サイトでの予約者を優先するとのことでなかなか発送されず...

先輩である @otukutun は Jawbone UP 購入し,うらやましく見ていました.

また,5月上旬頃には,ソフトバンクが夏から Fitbit Flex を月額490円で日本独占提供するとの報道があったり,Gizmode が 米ギズFitbit Flex 使用レビュー、これは微妙かもしれない... という記事があったり,悩みましたがこのまま購入することを決めました.

とまぁ,そこそこ待った結果,本日6月8日にアメリカから到着しました.

f:id:isseium:20130608095642j:plain

腕につけるとこんな感じ

f:id:isseium:20130608100344j:plain

主なパーツはこんな感じです. fitbit 本体(写真下部の小さいやつ),リストバンド2本,充電器,BluetoothUSBアダプタ

リストバンドは,注文時にもサイズを選んだような気がしますが,大小の2種類のサイズが含まれています.日本人男性なら小さい方でも十分つけられると思います.

f:id:isseium:20130608103250j:plain

説明書は一切ありません.まずはWebサイト見に行けということです.

f:id:isseium:20130608095939j:plain

Webサイトに行くと,アプリをインストールしろと言われます.

f:id:isseium:20130608111031p:plain

評価が若干低いのが気になりますが,ダウンロードします.

f:id:isseium:20130608111116p:plain

アカウントがないので,「Get started」を選択します.

f:id:isseium:20130608111131p:plain

いろいろと情報を入力します(email, パスワードも入力します.スクショ忘れました)

f:id:isseium:20130608111212p:plain

ホーム画面です.Fitbit Flex と連携するために,「Set up now」を選択します.

f:id:isseium:20130608111247p:plain

製品選択画面です.Fitbit Flex を選択します.

f:id:isseium:20130608111258p:plain

ここから Fitbit Flex のセットアップと取扱説明がはじまります. 説明書がなくても,ここで充電の仕方やLEDの表示の意味などが自然な形で理解できてとてもよいと感じました.

f:id:isseium:20130608111315p:plain

Fitbit 本体をリストバンドから取り出せと言われます.

f:id:isseium:20130608111318p:plain

ごめんなさい.スクリーンショット撮るのわすれたのですが,まずは充電しましょうと促され,充電ケーブルへの接続の仕方と,充電中のLEDの意味を説明されます.

充電中のLEDは,チャージ量に応じてLEDランプ(5つ)の数が増えていくそうです. 公式サイトによると3時間くらいでフルチャージできるとのこと. 使った感じだと,充電量1から充電量4までは1時間足らずでした.

f:id:isseium:20130608114028j:plain

サイズあるから選んでねーと書いてます.

f:id:isseium:20130608111415p:plain

リストバンドに fitbit を入れてねーと書いてます.

f:id:isseium:20130608111441p:plain

リストバンドを腕につけてねーと書いてます.

f:id:isseium:20130608111453p:plain

ここでなにやらBluetooth通信がはじまり,アプリに連携設定されます.

f:id:isseium:20130608111459p:plain

で,最後に "2回タップすると 1万歩 への達成状況みられるよ" という説明があります.

f:id:isseium:20130608111510p:plain

実際にタップした様子

ということで,今日から運動したいですね. 使用していく上でおもしろい体験や機能があれば,またブログにまとめられればと思いますー.

追記(7/5)

iPhoneを日本語設定していると,Fitbitのアプリ一覧に「Flex」がでてこないそうです.(takaさんコメントありがとうございました!)

「設定」-> 「一般」 -> 「言語」 で,「英語」を選択してからセットアップしてください. 設定後であれば,言語を日本語に戻しても使えます!

岩手のオススメ飲食店を掲載した「いわて食巡り」をリリースしました

岩手のオススメ飲食店を掲載した「いわて食巡り」をリリースしました.

ダウンロードはこちら http://bit.ly/10Sk7lh

岩手のソウルフードを食べるならこのアプリ! 岩手をよく知る岩手県立大学生にアンケート調査をして,トップ10に選ばれた飲食店を掲載しています!

Features

Find dinner as soon as possible!

  • 岩手に観光しに来た.地域の住民が食べるソウルフードを食べたい!
  • 岩手に住んでいるけど夕食を決めるのに悩んでしまう・・・

そんなあなたにピッタリです! 厳選した10店舗だけを掲載しています!

f:id:isseium:20130606170747p:plain f:id:isseium:20130606173342p:plain

Checkin!

店舗に近づくとチェックインすることができます! チェックインしたスポットは,マークが変わります.すべてのスポットを制覇しよう!

f:id:isseium:20130606165452p:plain f:id:isseium:20130606165500p:plain

Take a picture!

写真をとってチェックインすると,あなたの写真が店舗の紹介写真になるかも!?

撮った写真が...

スポットの写真に!!

アンケートについて

岩手をよく知る人が多い,Facebook の「岩手県立大学グループ」に,次のような質問をしました.(対象人数 約400名,有効回答数 約130票)

この結果を 5月中旬 に集計を行い,掲載スポットを決定しています!

2年前にも類似した調査 をしたのですが,若干順位の入れ違いがあって興味深いですね!

誰と作ったの?

http://cheekit.com/

地域をITでちょっと幸せにしたい、そんな志をもった開発チーム Cheekit (チイキット)で開発を行いました。 今回は,「東京学食巡り」のプラットフォームをベースに,@ と制作いたしました.

復興の歩みを学べるアプリ「復興すてっぷ」をリリースしました

4月上旬にあった突発的な12時間ハッカソンで @n0bisuke と作りました。 細かな部分は荒削りにはなってしまいまいましたが,動くものができたのでリリースしました。

震災復興はまだまだこれからですが、少しずつ着々と進んでいます。 その歩みを広く知ってもらいたいと考え、iPhoneアプリ「復興すてっぷ」を開発しました.

https://itunes.apple.com/jp/app/dong-jing-xue-shi-xunri/id624075183

復興の歩みをクイズ形式で学び、知ることができる iPhone アプリです。

「復興」という大きなテーマに対して、クイズという娯楽寄りなアプリをリリースすることに戸惑いがありましたが、それ以上に復興の取り組みを広く知ってもらえる機会が必要ではないかと考えリリースすることにしました。

震災についての問題よりも、復興の歩みや東北地方のPR問題を中心に作成しています。

どんなアプリなの?

復興に関する問題が四者択一形式で出題されます。

f:id:isseium:20130430182737p:plain

正解だと思われる選択肢をタップして回答してください。 タップすると正解・不正解かと、その問題の解説が表示されます。

f:id:isseium:20130430182831p:plain

地域制覇マップ

問題は市町村ごとに数個ずつ作成しています。 市町村ごとの問題にすべて正解すると、地図上でその市町村の領域が塗りつぶされます。

f:id:isseium:20130430182804p:plain

たくさん塗りつぶしていきましょう!

バッジ

クイズに正解すると、ある特定の条件のときにバッジがもらえます。 すべてのバッジをGETできるようにがんばりましょう!

誰とつくったの?

大学の学部時代の研究室の後輩であり、いまは大学院の先輩でもある @n0bisuke とつくりました。

私ごとですが、今月から大学院(修士)に入学しました。 初日の 4/1 に研究室にいた修士2年の n0bisuke とハッカソンをしようという話しになり、

4/2 にアイディアソン(約4時間) 4/3 にハッカソン(12時間)

というスケジュールが組まれました。4/2 は、たまたま研究室にいた学部2年生の T 君にも手伝ってもらいました。

結果として、4/3 では作れなかったのですが、空いている時間を利用して 4/7 にリリースできる状態になりました。 (このあと,こちらの不備で2回ほどリジェクトされまして,4/30 のリリースとなりました)

技術的な話

開発の役割は、設計は2人でおこない、コーディングは、クライアントは私、サーバはn0bisukeが行いました。

n0bisuke は、はじめてのAPI設計・開発、はじめてのgithub、はじめてのAppFog だったようですが、好奇心旺盛ということもあって、どんどん吸収して開発していました。

  • クライアント(iPhone
    • Titanium 3.0
    • Yahoo! スタティックマップ API
  • サーバ(API

ハッカソン的な話

大学院に進学する理由の1つが、「現役学生とともに開発を行って、私の経験を少しでも伝えること」でした。

たかだか十数時間なので完璧とはいえませんが、その第一歩がすすめた気がします。

一方で、現役学生から受ける刺激もありました。いろんなひとと組んでやっていきたいですね!

もしこれを見ている学生さんいらっしゃいましたら、いつでもお声がけください!

今後の展望

復興の現場にいるかたからのレビューを受けて、アプリの修正や問題を作成したりしたいです。 あとは、UI・UXをリッチしにたいですね。問題に画像を表示させたり。

コマンドライン上での Titanium (Alloy) 開発入門 〜プロジェクト作成からリリースまで〜

東京の学食巡りを支援するiPhoneアプリ東京学食巡り」は Titanium 3.0 で作成しました。 そのときコマンドラインだけで開発からリリースビルドまでを行う方法を調べたので、備忘録がてらまとめました。

https://itunes.apple.com/jp/app/dong-jing-xue-shi-xunri/id624075183

Titanium での開発のために Titanium Studio という Eclipse ベースの統合開発環境が提供されています。 ビルドやデバッグツールなどがそろっていて使いやすいです。 が、エンジニアによっては、Titanium Studio ではなくて、普段使い慣れたエディタで開発したいという人もいるのではないでしょうか。

というわけで、Titanium 3.0 から大幅に強化された(らしい) titanium コマンドを利用した Titanium Studio を使わない開発方法を紹介したいと思います。

なお、このエントリでは、Titanium がすでにインストールされていることを前提にお話いたします。 Titanium 自体のインストールについては、他の方のエントリをご参照下さい。

Titanium の確認


$ titanium --version
3.0.24

最新化と初期設定

初回のみTitaniumにログインする必要があります


$ titanium login
# 対話形式でユーザ名とパスワードが聞かれます

Titanium SDK 最新化

毎回する必要はありません。


# Titanium を最新化(3.0.x系)し、デフォルトに設定する
$ titanium sdk update --branch 3_0_X --default
Titanium Command-Line Interface, CLI version 3.0.24, Titanium SDK version 3.0.2.GA
Copyright (c) 2012-2013, Appcelerator, Inc.  All Rights Reserved.

Please report bugs to http://jira.appcelerator.org/

Downloading http://builds.appcelerator.com.s3.amazonaws.com/mobile/3_0_X/mobilesdk-3.0.3.v20130318143059-osx.zip
  100% [========================================] 0.2s

Extracting SDK...
  100% [========================================] 0.0s
Saving SDK 3.0.3.v20130318143059 as the default.
Titanium SDK 3.0.3.v20130318143059 successfully installed!

Titanium プロジェクトを作成する

ここからが本題ですね。まずはプロジェクトを作成しましょう。


$ titanium create -p android,ios -n hellotitanium --id net.ikmz.hello -d ./
Titanium Command-Line Interface, CLI version 3.0.24, Titanium SDK version 3.0.3.v20130318143059
Copyright (c) 2012-2013, Appcelerator, Inc.  All Rights Reserved.

Please report bugs to http://jira.appcelerator.org/

[INFO]  Creating Titanium Mobile application project
[INFO]  Copying "android" platform resources
[INFO]  Copying "iphone" platform resources
[INFO]  Project 'hellotitanium' created successfully in 68ms

$ ls
hellotitanium/

Alloy フレームワークを適用する


$ cd hellotitanium/
$ ls
LICENSE         README          Resources/      manifest        tiapp.xml
$ alloy new
       .__  .__
_____  |  | |  |   ____ ___.__.
\__  \ |  | |  |  /  _ <   |  |
 / __ \|  |_|  |_(  <_> )___  |
(____  /____/____/\____// ____|
     \/                 \/
Alloy by Appcelerator. The MVC app framework for Titanium.

[INFO] Deployed ti.alloy plugin to plugins/ti.alloy/plugin.py
[INFO] Deployed ti.alloy hook to plugins/ti.alloy/hooks/alloy.js
[INFO] Installed "ti.alloy" plugin to tiapp.xml
[INFO] Generated new project at: app

コントローラを作ってみる

デフォルトで index コントローラが作られますが、せっかくなので alloy コマンドを用いて、iwate コントローラを作ってみましょう。


$ alloy generate controller iwate
       .__  .__
_____  |  | |  |   ____ ___.__.
\__  \ |  | |  |  /  _ <   |  |
 / __ \|  |_|  |_(  <_> )___  |
(____  /____/____/\____// ____|
     \/                 \/
Alloy by Appcelerator. The MVC app framework for Titanium.

[INFO] Generated view named iwate
[INFO] Generated style named iwate
[INFO] Generated view-style-controller named iwate

index から iwate への画面遷移を設定したいので、index.js のコントローラと iwate の View を少し変えたいと思います。

app/controllers/index.js

ラベルをクリックしたときに、iwate 画面に遷移するようにします。


function doClick(e) { // Label をクリックしたときの挙動
     var controller = Alloy.createController('iwate'); // iwate コントローラを作成し
     controller.getView().open(); // 表示!
}

$.index.open();

app/views/iwate.xml

View を Window に変えて、ImageView を中にいれてみましょう。 ImageView の image 属性に url を指定すると画像が表示されます。岩手の画像を表示させましょう。


<Alloy>
   <Window class="container">
      <ImageView image="http://cdn-ak.f.st-hatena.com/images/fotolife/i/isseium/20130201/20130201092448.jpg" />
   </Window>
</Alloy>

シミュレータ/エミュレータでのビルド方法

コマンドラインからビルドをしてエミュレータ/シミュレータで起動します。 注意点ですが、tmux や screen 上ではうまく動きません。(解決策探し中)

(7/10 追記)

@laiso さんから次のようにご教示いただきました.ありがとうございます!!!!!!

reattach-to-user-namespace 自体はMacとtmux 間のコピペのために使っていたのですが,次のような設定をするとtmux上でもシミュレータを起動できるようになりました.


$ brew install reattach-to-user-namespace
$ vi ~/.tmux.conf
# 下記1行を追加(bash の部分は各自変更)
set-option -g default-command "reattach-to-user-namespace -l bash"

上記に変更した後,tmux を再起動すると 「$ ti build -p ios」 などでシミュレータが起動できるようになります.

(追記ここまで)

iOS


$ titanium build -p iphone
Titanium Command-Line Interface, CLI version 3.0.24, Titanium SDK version 3.0.3.v20130318143059
Copyright (c) 2012-2013, Appcelerator, Inc.  All Rights Reserved.

Please report bugs to http://jira.appcelerator.org/

[INFO]  Build type: development
[INFO]  Building for target: simulator
[INFO]  Building using iOS SDK: 6.1
[INFO]  Building for iOS iPhone Simulator: 6.1
[INFO]  Building for device family: universal
[INFO]  Building for iOS 6.1; using 4.3 as minimum iOS version
[INFO]  Minimum iOS version: 4.3
[INFO]  Debugging disabled
[INFO]  Initiating prepare phase
[INFO]  Found Alloy app in /Users/issei/tmp/alloy_cli/hellotitanium/app
[INFO]  Executing Alloy compile: /usr/local/bin/node /usr/local/bin/alloy compile /Users/issei/tmp/alloy_cli/hellotitanium/app --config platform=ios,version=0,simtype=none,devicefamily=universal,deploytype=development
[INFO]  Compiling alloy to /Users/issei/tmp/alloy_cli/hellotitanium/Resources/app.js
[INFO]  Alloy compiler completed successfully
[INFO]  No Titanium Modules required, continuing
[INFO]  Creating symlinks for simulator build
[INFO]  No module resources to copy
[INFO]  No CommonJS modules to copy
[INFO]  Skipping xcodebuild
[INFO]  Finished building the application in 2s 863ms
[INFO]  Running application in iOS Simulator
[INFO]  Launching application in iOS Simulator

f:id:isseium:20130409132943p:plain

「Hello, world」をタップすると、画面遷移します

f:id:isseium:20130409132950p:plain

Android

同様に Android でもビルドしてみます。 ビルド方法は、p オプションを android に変更するだけです。


$ titanium build -p android
(表示されるログ省略)

f:id:isseium:20130409120530p:plain

「Hello, World」をタップすると

f:id:isseium:20130409120535p:plain

実機ビルド方法

iOS

まずは、開発用プロビジョニングファイルなどを Developer Center で設定してください。


$ titanium build -T device  --platform iphone -V "Issei KOMATSU" -P "XXXXXXXXXX-XXXXXX"

V とか P になにいれればいいかわからない!!という方、 titanium さんは親切なので、候補を出してくれます。ためしに V と P を指定せずに実行します。


$ titanium build -T device  --platform iphone 
Titanium Command-Line Interface, CLI version 3.0.24, Titanium SDK version 3.0.3.v20130318143059
Copyright (c) 2012-2013, Appcelerator, Inc.  All Rights Reserved.

Please report bugs to http://jira.appcelerator.org/

Name of the iOS Developer Certificate to use: # ここで聞いてくるけど、空のまま Enter
[ERROR] Select an iOS Developer Certificate:
Available names: # すると候補が表示される!
    Issei KOMATSU (XXXXXXX)        Ito Takayuki (XXXXXXX) 
Name of the iOS Developer Certificate to use: Issei KOMATSU # 上記の候補を入力する
Provisioning Profile UUID: # 今度は、UUID を求められるが、例に倣って 空のまま Enter
[ERROR] Please specify a Provisioning Profile UUID 
Available Development UUIDs: # 候補が表示される!
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  * (iOS Team Provisioning Profile: Xcode iOS Wildcard App ID)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  net.ikmz.hello (hellotitanium)
Provisioning Profile UUID: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # 上記の候補を入力

これでオプションがわかったので、次回ビルド時は対話的じゃなくても実機転送できますね!

Android

Android は実機転送の認証がないので、楽です。


$ titanium build -T device  --platform android

リリースビルド方法

最後にリリース時のビルド方法です。

iOS

まずは、プロビジョニングファイル等を本番のものを用意し、アプリ情報を入力して Waiting For Upload の状態にしておきましょう。 下記コマンドを実行すると Xcode の Organizer が起動して、アップロードできるようになります。


$ titanium build -R "Issei KOMATSU" -T dist-appstore  -p ios -V "Issei KOMATSU" -P  XXXXXXXXXXXXXX

Android

androidのアプリ署名やkeystoreなどをすでに知っている前提でお話します。


$ titanium build --platform android -T dist-playstore -K   "keystoreのパス"  -L "keystoreのalias" -O "appの出力先ディレクトリ"
Titanium Command-Line Interface, CLI version 3.0.24, Titanium SDK version 3.0.3.v20130318143059
Copyright (c) 2012-2013, Appcelerator, Inc.  All Rights Reserved.

Please report bugs to http://jira.appcelerator.org/

Keystore password: # keystoreのパスワードを聞かれるので答える

以上で、 O で指定したパスに署名付きapkファイルが配置されますので、Google Play Developer Console にてアップロードしてください。

チラ裏

あとで思いましたが、コマンドのオプションは 1文字だけのオプションじゃないほうがわかりやすいですね。。。 「-P」 よりも 「--pp-uuid 」のほうが説明不要ですし、、、次回から気をつけようと思います。

参考文献