仮面ライダードライブとゴーストで学ぶDI

この記事は、DI(Dependency Injection)を、仮面ライダードライブとゴーストを使って説明してみようというコーナーです。よろしくお願いします。

まず、DIについて。
ソフトウェアにおけるデザインパターンの1つであるDIは「依存性の注入」と訳されることが多いですが、Dependency は Wikipedia によると以下のように記載されています。

A dependency is an object that can be used (a service).

「Dependency はサービスオブジェクトである」と。ですから Dependency Injection は「オブジェクト(サービス)の注入」としたほうが日本語としてもわかりやすいのではと思います。

次に、仮面ライダードライブとゴーストについて。
昨年9月まで放送されていた仮面ライダードライブは、主人公泊進ノ介が人工知能(ベルトさん)を持ったベルト(ドライブドライバー)と、

Continue Reading...

Google Playのアプリ情報を取得するAPIを作りました

AppStore や GooglePlay で公開されているアプリの情報をプログラム等を使って自動取得するといったことをしたい場合、iOS アプリについては Apple が公開している SearchAPI を使って取得することが可能です。こんな感じで。

https://itunes.apple.com/lookup?country=JP&id=422689480  

しかし Android アプリの方はどうも見当たりません(少し前までは AndroidQuery というサイト内で提供される API を使うことができたのですが、最近動かなくなってしまいました)。ということで、GooglePlay のアプリページをスクレイピングして、必要な情報を JSON で返却する API を作りました。

Google Play App Info API
http://googleplay.songs-inside.com

詳しい使い方は上記ページを見てください。ページをスクレイピングしているだけなので、GooglePlay

Continue Reading...

Androidアプリの月次レポートのCSVフォーマットが変わった

Androidアプリについたユーザーからのレビューは、Google Cloud Storageに保存されていて、gsutilコマンド等でダウンロードすることができます。
詳しくはこのページを見ていただくとして、数日前からレビューのCSVフォーマットが変更になりました。

2016年1月31日現在のカラムは以下の通りです。

  1. パッケージ名
  2. アプリバージョンコード
  3. アプリバージョン名(★これが追加)
  4. レビューアの言語
  5. 投稿された端末名
  6. レビュー送信(日付と時刻)
  7. レビュー送信(エポックからのミリ秒数)
  8. レビュー最終更新(日付と時刻)
  9. レビュー最終更新(エポックからのミリ秒数)
  10. 星による評価
  11. レビューのタイトル
  12. レビューテキスト
  13. デベロッパーの返信(日付と時刻)
  14. デベロッパーの返信(エポックからのミリ秒数)
  15. デベロッパーの返信(テキスト)
  16. レビューへのリンク

今まではアプリのバージョンコード(バイナリの更新とともにインクリメントされる番号)のみ付与されていましたが、3番目のカラムに「アプリのバージョン名(開発者が任意に付与できるバージョン番号。1.0.0 など。)」カラムが追加されています。これにともない、以降の項目が1つずつずれていますので、CSVをプログラム解析して集計したりしている方はご注意くださいね。

Continue Reading...

[書評] Laravelリファレンス

日本で2冊目となる紙のLaravel本、「Laravelリファレンス」が1月8日に発売になりました。株式会社インプレス様から見本誌を頂戴しました。ありがとうございます。

 目次
 1. Laravelの概要
 2. Laravelの基本
 3. データベース
 4. フレームワークの機能
 5. フレームワークの拡張
 6. テスト
 7. 実践的なアプリケーション構築
 8. Laravelの実践

この本はPHPの基礎について一通りの理解を持ち、インターネット上の情報を見ながらLaravelをインストールして動かすところまではできる方が主に対象になろうかと思います。Laravelを使ったアプリケーション開発を本格的に行う際、その助けとなるような内容になっています。

もしLaravelに興味を持ってこの本を手に取られたなら、まずは公式サイトのチュートリアルと一緒にChapter1とChapter2から読まれることをおすすめしたいです。Chapter1ではLaravelの概要と環境構築について、Chapter2ではLaravelを使った簡単なアプリケーションの構築例をいわゆるMVCの概念をベースに説明しています。

Chapter3から7まではLaravelが持つ機能の解説になっていますので、キーボードの横に置きながら必要に応じて参照するといった使い方ができるかと思います。
Chapter3ではデータベースを使ったデータ登録および参照の方法(ORMであるEloquentの説明もここで出てきます)、Chapter4では認証やメール送信、セッションやキャッシュ、エラーハンドリングやロギングといった、よく使う機能をLaravelで実現する方法について説明されていますし、Chapter6ではPHPUnitやMockeryを使ったユニットテストや、そこから一歩踏み込んでテストを行いやすくするためのリファクタリングのやり方、ファンクショナルテストの実践方法についても記載されています。
この本の全体的な特徴でもありますが、いずれの章も機能の説明だけに留まらず、実際にソース上ではこう使う、或いはこういった使い方をするとより良くなる、というふうに実際の開発の現場で応用しやすいよう工夫されていると思います。

Chapter8はサンプルコードの解説になっていますが、前章までの内容を反映したサンプルコードですので読み進めた内容をしっかりと理解として定着させるために最適な内容です(Repositryデザインパターンを取り入れた設計になっています)。Laravelに関して既に一通りの理解をしている方は、

Continue Reading...

子どもとデジタルの関わりについて(ing)

子育てプログラマ・ITエンジニア・Webデザイナー Advent Calendar 2015」の24日目です。

この記事では子どもとスマートデバイスとの関わりについて書いてみようと思います。 (いろいろ試行錯誤しながら現在進行形なので「ing」をつけてます)

我が家は妻と息子(6歳)と私の3人家族です。 まだ子どもだけで外で遊ぶという年齢でもないので、平日は特に妻と息子だけの時間がどうしても長くなります。食事や風呂の支度でずっと子どもの相手をしているわけにもいかず、子どもをひとりで遊ばせておくツールの1つとしてiPadを使わせています。

幼いときからこういったガジェットに触れさせることについては、多少の躊躇いが無かったと言えば嘘になりますが、今の時点では以下のように考えています。

  • 「百科事典+動画」が入っているようなもので、何かを学ぶときに理解をしやすくするツールとして使える
  • すでにデジタルなモノは日常のいろいろところに使われていて、今後さらに生活の中に浸透していくこと
  • そのようなものは子どもから遠ざけるのではなく体験させながら、どう使うか、どう関わればいいかを学ばせる方がいい

といっても、普段子どもが良く使っているのは「ディズニー ツムツム」だったり、Youtubeのレオンチャンネルだったりするみたいですが、最近は「知育アプリ」が充実しているので私も妻もそれを見ながら「こんなアプリがあるよ」と子どもと一緒に楽しみながらやってみる、ということを心がけています。

最近いいなぁと思っていて、子どももハマってくれたアプリをいくつか挙げてみます。

  1. Scratch Jr
    子ども向けのヴィジュアルプログラミングアプリ。コードを書かなくても、あらかじめ用意されたブロックを組み合わせるだけで、
Continue Reading...