2016 年 5 月 4 日

Docker1.11でLaravel5.2アプリをコンテナ化

Docker1.11でLaravel5.2アプリをコンテナ化

Laravelのウェブアプリ開発時も、できるだけプロダクション環境に近い環境がある方が、安心ですよね。
Webサーバもapacheだけでなく、nginx+php-fpmで、データベースもMySQLではなく、PostgreSQLでも動作させてみたいと思うこともあります。
特にミドルウェアが指定されていない開発の場合、ベストな組み合わせを探りたいという気持ちも湧きます。

Dockerを使えば、開発マシンにソフトウェアをインストールしなくても、色々な組み合わせが試せそうですね。

続きを読む »

2016 年 4 月 28 日

Laravel5.2のスタートアッププラクティス

laravel5.2のスタートアッププラクティス

Laravel5で開発を始める前に行っていることをまとめました。各設定ファイルのディレクトリ構成のカスタマイズや、Laravelを拡張するためのコードの配置場所を設定しています。

この方法がスタンダードということはありませんが、開発チームで予め標準化しておくと、保守性も向上するのではないでしょうか。
データベースのマイグレーションやカスタムミドルウェアの設定、Javascript/CSSのビルドなどは割愛しています。

続きを読む »

2015 年 9 月 1 日

アンドロイドアプリのログ出力にTimber+Log4Jを使う

アンドロイドアプリのログ出力にTimber+Log4Jを使う

アンドロイドでログ出力するにはLogクラスを利用します。ログはAndroidロギングシステムへ出力され、logcatコマンドで内容を見ることができます。

ほとんどの場合、このLogクラスで十分なのですが、業務アプリでは操作ログをファイルで保存することが必要な場合もあります。

また、Logクラスではメッセージをフォーマットする機能がないので、詳細な操作ログを出力するには適していません。

続きを読む »

2015 年 1 月 3 日

Backbone.Marionette.Moduleとbrowserifyでモジュール管理 第1回

Backbone.Marionette.Moduleと、browserifyでモジュール管理 第1回

久々にBackboneを使う機会があり、それならとMarionetteでダンスさせることにしました。

MarionetteはBackboneの冗長になりがちなBoilerPlate部分を吸収してくれるフレームワークです。
Backboneを使ったことがある人は、アプリケーションの構造として、どうあるべきか悩んだことはないでしょうか。

Marionetteには、アプリケーションクラス、モジュールクラスというアプリケーションの構造を表現するクラスがあります。

続きを読む »

2015 年 1 月 2 日

Ansibleを使ってウェブアプリ開発環境を構築する

Ansibleを使ってウェブアプリ開発環境を構築する

今までChef Soloを使ってプロビジョニングしていましたが、Chef Solo(Chef Zeroへ移行)も廃止となるようなので、この機会にAnsibleも試してみることにしました。

AnsibleはゲストOSへクライアントをインストールする必要もなく、yamlで記述したPlaybook(Chefのrecipeに相当)を元にプロビジョニングします。

ChefのRecipeはRubyのDSLやERBで記述するので、一緒に使うVagrantやCapistranoと同じ形式で統一的に記述できていましたが、Ansibleを使うと、YAML,jinja2テンプレートによる記述を混在させることになります。

続きを読む »

2014 年 12 月 5 日

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)第2版

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第1回)第2版

Google Cloud Messagingを利用するには、サーバキーとSenderIDが必要です。

これらの情報は以前はGoogle API consoleへログインして、生成していましたが、現在ではGoogle Developers Consoleという名前でGoogleの様々なサービスの設定ができるようになりました。

いつまでサポートされるかわかりませんが、古いGoogle API consoleのインタフェースも利用できるようになっています。

続きを読む »

2014 年 12 月 1 日

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第2回)第2版

アンドロイドアプリからGoogle Cloud Messagingを使う方法(第2回)第2版

com.google.android.gcmパッケージがdeprecatedされて、現在、Google Cloud Messagingを利用するには、com.google.android.gms.gcmパッケージを利用する必要があります。
旧APIも当面は運用され続けているようですが、今後の開発はcom.google.android.gms.gcmパッケージを利用した方がよいでしょう。

このパッケージを利用するには、Google Play Services SDKが必要です。

続きを読む »

2014 年 11 月 22 日

アンドロイドアプリのHandlerがリークするとき

アンドロイドアプリのHandlerがリークするとき

前回は、スレッドがリークする様子をMAT(Memory Analyzer Tool)を使って説明しました。今回は、スレッドとともによく利用されるハンドラがどのようにリークするかを調べてみます。

ハンドラは異なるスレッドから受け取ったメッセージを処理するものです。たとえば、GUIスレッドとは別のスレッドから表示データを受け取って、そのデータを表示するといった使い方をします。

続きを読む »

2014 年 11 月 16 日

アンドロイドアプリのThreadがリークするとき

アンドロイドアプリのThreadがリークするとき

スマホアプリは、ユーザーの操作反応をよくするために非同期の処理が多く必要です。アンドロイドでもメインスレッドで時間が掛かる処理をシリアルに行うことは避けなければいけません。

アンドロイドOSには、非同期処理を扱うクラスやメソッドが多く存在しますし、Javaのスレッドを扱うなら、Executorsフレームワーク(SE5以上)の利用を検討すべきでしょう。

続きを読む »

2014 年 11 月 4 日

Swiftを使ってGoogleMapsを利用する

Swiftを使ってGoogleMapsを利用する

ようやくXcode6に乗り換えて、少しずつSwiftでプログラミングするようになってきました。
Swiftならこのように書くといったサンプルソースコードも多くあるので、改めてiOSのアプリケーション開発を勉強し直す機会にもなっています。

Playgroundを使うと、インタプリタでSwiftの小さなコードを試すことができます。Objective-Cより簡素に書けるので、少し使い出すと誰もがSwiftを使いたいと感じるのではないでしょうか。

続きを読む »