GROUPエンジニアブログです。2012年08月2012年08月29日14:56カテゴリprogrammingスマートフォンお手軽Androidプログラミング入門はじめまして、2012年新入社員のPeX菅谷です。エンジニアブログなので技術的なお話メインで、ということらしいのですが・・・いかんせん経験・技術力の無い僕は書ける内容が少なくて困りますねorzとりあえず今回は、僕がお遊びでAndroidアプリを作るときどのようにしているかをお話したいと思います。内容的には入門の入門くらいの初歩的なものになりますので、Android書けるよ・書いてるよという方々には益の無いお話になるかもしれません。プログラミングを始めようとするとき、みなさんはまず何をしますか?僕はサンプルコードを探します(笑)。趣味で書く場合にはとりあえず早く動かしてみたくてサンプルコードを探します。そこでサンプルコードの探し方なのですが、普通だったらきっと皆さんググりますよね。よさげなものがあったらそれを読んで、使えそうな部分を参考に書いたりするんじゃないかなと思います。SDKディレクトリの中に大量のサンプルコードが何気なくダウンロードされているのです。これが結構充実していて、こういう機能使いたいなーと簡単に思いつくようなことは、およそ網羅してくれています。AndroidアプリはIDEで開発するのが一般的なためsdkディレクトリ内を見ることが少なく、見落としている方もいるんじゃないかと思います。Windowsならばデフォルトではおそらく、C:\Users\ユーザー名\AppData\Local\Android\android-sdk\samples\android-○○に存在すると思われますので、是非使ってみてほしいと思います。APIの利用例を集めた『ApiDemos』というアプリです。画像ビューアペイントツールなどのように凝ったものまで、大小様々なサンプルが200個弱ほど存在します。これらを見てみることで、何ができるのか、どうすれば良いのかがある程度把握出来ると思います。SDKのバージョンにもよりますが、ApiDemosの他にもう少し複雑なものや完成度の高いものが数十個ほど用意されています。USB,BlueTooth,Wi-fiなどの通信のサンプルやゲームのサンプルなどがあります。これらを参考に機能を組み合わせ、足りない部分はIDEの補完機能にお願いしてしまうだけでわりと簡単に色々なものができます。複雑なものを作るには不足している部分は多々あるでしょうが・・・。「よくわかんないけどAndroid触ってみたい!」とか「なんかちょこっとスマホで作ってみたい!」という方々には、是非お試しいただきたいなと思います。技術的なお話にならなかったので、代わりと言ってはなんですが実際にちょこっと開発をしてみました。ApiDemos中のTouchRotateというサンプルをチラ見しつつ、我らがアイドル「ナビック」くんと戯れるアプリ『なびっくいじり』をさくっと作ってみました。「遊んでみたい!」という好奇心旺盛な方がいらっしゃいましたら「なびっくいじり」で調べてみてください。4.0.4)のみ動作確認済みです。皆さんも、意外と簡単なAndroidアプリ開発に挑戦してみてはいかがでしょうか?ご清覧ありがとうございました!voyagegroup_tech2012年08月16日16:38カテゴリイベント育成もの創り実践プログラム「Treasure2012」始まりました!こんにちは。人事の佐々木寛(@339)と申します。夏のインターンシップ「もの創り実践プログラム【Treasure】」が8/13(月)スタートしました!今年の【Treasure】は「チーム開発」、「ユーザ視点」という二つのテーマで開催しています。昨年までのゼロからプログラミングを学ぼうという内容からリニューアルして、三週間でエンジニアとして圧倒的に成長してもらいます。今年のテーマ「チーム開発」と「ユーザ視点」について。授業や趣味で一人では作ったことがある。グループで課題をこなしたことがある。そんな学生に仲間と共にアイデアを出しながらサービスを創ってもらいます。仲間と話しながら一人では考えもつかなかったようなアイデアを出したり、一人では創りきれないような大きなサービスをチームで創り上げることにより、私達が大事にしている「仲間と事を成す。」ということを体感してもらいます。自分や友人が使うだけのシステム、課題で言われて作ったシステムではなく、"どんなユーザにどんな風に使ってもらうのか?"を考えながらサービスを創る。そのための考え方や経験を積んでもらいます。誰のために、何のためにそのサービスを創るのか。本気で考え抜くなかで「本質を追い求める。」力を身に付けてもらおうと考えています。その【Treasure】ですが、本日で開始してから3日目、前半の講義も中日となりました。・プロジェクトマネジメントとなっています。初日は比較的余裕そうだったTreasure生達も、二日目、三日目と講義・課題の内容もどんどん濃く、難しくなっていく中で目の色を変えて真剣に取り組んでいます。越えなければならない壁は高く見えますが、この壁を乗り越えた後に見える景色はきっと素敵なものとなっているでしょう。:インターンvoyagegroup_tech2012年08月03日14:42カテゴリPHPprogrammingBehatでケータイサイトの受け入れテストはじめまして、株式会社Flesselの田中と申します。私は長いことケータイサイトを作る仕事に関わってきました。縮小傾向にあるフィーチャーフォンですが、まだまだ現役です。このエントリーではPHPのストーリーテストツールBehatを利用して、ケータイサイトの受け入れテストを行う方法をご紹介します。インストール今回は対象となるプロジェクトにcomposerを使ってBehatを組み込む方法をとります。composerをインストールします。php※CentOS環境だと証明書の関係で動かないことがあります。次にcomposerの設定ファイルであるcomposer.jsonをプロジェクト直下に作成します。今回はBehatともにMinkというブラウザテストの抽象化ライブラリを使うので、これも一緒に設定します。"bin/"}}composer.jsonが用意できたら、インストールコマンドを叩いて依存するライブラリをインストールします。installこれでvendorディレクトリの中にbehatがインストールされ、binディレクトリにbehatコマンドができます。(※2012年8月3日現在、依存関係が解決できずにインストールが失敗するようです)プロジェクトの初期化behatがインストールされたのでbehatが利用するファイルを初期化します。--initこれでプロジェクト直下に下記のファイルが作成されます。features/bootstrap/FeatureContext.phpこのファイルにテストコードを記述することになります。フィーチャー定義を用意するフィーチャーとはアプリケーションが持つ個別の機能のことです。Behatでは各フィーチャーごとにテストシナリオが書かれたファイルを用意します。このファイルは拡張子をfeatureとしてfeaturesディレクトリに配置します。各ファイルは自然言語に近い記述で書きます。今回は次の定義をsearch.featureとして作成しました。ボタンをクリックするならば"ご指定の検索条件に該当する商品はありませんでした。表示されていること日本語で書かれていてとてもわかりやすいと思います。各シナリオの「前提」からはじまる行以降はステップと呼ばれ、テストはこのステップごとに実行されていきます。ステップ中のダブルウォーテーションで囲われた文字列が変数として扱われます。ここで一度テストを実行してみます。黄色くなっているところがテストが未実装なステップです。下の方にテストを実装する際のスニペットも表示されています。通常はこのスニペットをコピペしてテストを実装していく流れになります。MinkContextを利用する単純なブラウザをつかったテストであれば、今回一緒にインストールしたMinkExtensionが提供するMinkContextを用いると自分でステップを実装せずにテストすることができます。-diコマンドで参照できます。https://github.com/Behat/MinkExtension/blob/master/i18n/ja.xliffで確認できます。便利なMinkContextを利用するにはFeatureContext.phpに次の修正を加えます。context.また、次の内容のbehat.ymlをプロジェクトルートに作成します。~base_urlにはテスト時にアクセスするサーバーのベースURLを設定します。ここでテストを実行すると次のようになります。「au端末で接続する」というステップ以外は青になりテスト実装が加わったことがわかります。独自のステップを実装する「au端末で接続する」はケータイサイト特有のステップですから当然提供されていません。今回はau端末での接続をau端末のUser-AgentとEz番号をHTTPヘッダにもつという条件として定義します。これのステップの実装は次のようになります。今回ブラウザの実装として利用しているGoutteがsetRequestHeaderを通したユーザーエージェントの書き変えに対応していないためこのような形になっています。実行するそれではすべてのステップの実装ができたのでbehatコマンドを叩いてテストを実行してみます。簡単ですね!まとめBehatでは自然言語に近いフィーチャー定義を利用するので、エンジニア以外でもテストの概要を把握することができます。MinkExtensionと組み合わせることで容易にブラウザテストをできるのは大変魅力的です。皆さんもぜひ使ってみてください。