iOS / Android のアプリの署名について調べてみた

最近スマートフォン向けの開発をしているのですが、アプリの配布などを行う際のセキュリティの仕組みがよくわからなくてモヤモヤしていました。特に iOS の方はプロビショニングプロファイルやら証明書やらが大量にあり、何をどう管理すればいいのかがよくわかりにくいです。

というわけで、アプリケーションを配布する際の署名やその他のセキュリティの基本的な仕組みを調べたので、それを整理してみました。原始的な配布方法から複雑な iOS の配布方法までを段階的に書いています。

対策なし

f:id:wm3:20150217030231p:plain

続きを読む

少しでもメンテナンスするならコードの抽象化は行った方が良い

「すべてのソースコードが手元にあるのに不要な抽象化を行うのはよくない」

http://blog.sigbus.info/2014/12/blog-post_29.html

を読んで。良いこと言っていると思ったのですが、どこまで抽象化するべきなのかについての議論がもう少しないと、見方によっては「抽象化を全然しない」言い訳にもなりうるかな、という印象も持ってしまいました。ひと昔前に流行ったコメント不要論に近いものがあるかな、と。

自分は人より抽象化をする方だと思っているので、こういうこと言われたらちゃんと反論できないとな〜、と思ったのが発端なのは秘密…。

なんてことから始まりつらつら考えていたら、抽象化に対する今の個人的な考えが一通りまとまってきたので書いてみます。

そもそも、誤った抽象化とは?

続きを読む

ORM を使わないデータアクセス

最近は、データベースをアクセスする時は以下のようにしています。

  • 属性をメモリ(インスタンス変数)に格納した「レコード」クラスを基本作らない
    • ORM ではなく SQL を抽象化したライブラリを使う
    • データを取得する時は DSL を使ってクエリを構築する
  • 参照用オブジェクトと更新用オブジェクトを分離する

以前は ORM をそのまま使う事が多かったのですが、上のようにスタイルを変えた結果、今の所結構うまく行っているので、紹介してみようと思います。

なお、今回は JavaSQL を使った前提で書いていますが、基本的には言語や DB によらない物だと思っています。

続きを読む

Object design rough talks に参加した

前日の勉強会(記事) に引き続き、 Object design rough talks という会に参加しました。

割と誰でも参加できそうな前日とは違い、オブジェクト指向設計ドメイン駆動設計についてある程度知っている人が対象の集まりです。また、「rough talk」と銘打ったり、イベントのページに「rough」の翻訳が書いてあったりと、やたらとラフである事が強調されていました…。

そんな内容に殺伐とした空気を感じつつ、定時過ぎにこっそりと会社を抜けて参加してきました。

続きを読む

Consumer Service Engineer MeetUp Vol.1 〜iOS編〜に参加した

Consumer Service Engineer MeetUp Vol.1 〜iOS編〜 に参加してみました。

経緯

最近、仕事でスマートフォン向けにネイティブアプリを作る事を検討しています。その一方で、仕事ではずっと Web アプリの開発をしてきたので、アプリ開発に関しては分からない事だらけだったりします。例えば、

続きを読む

Typesafe Config について

この記事は Play framework 2.x Java and 1.x Advent Calendar 2013 の 12 日目です。

Typesafe Config は Play framework でアプリケーションの設定に使われているライブラリです。Typesafe 製ですが、Play や Scala に依存してはいません。使い勝手が良く、Play を使わないような状況でもお勧めできます。

特徴は?

  • JSON 上位互換で .properties ファイル風にも書けるファイル形式 (HOCON形式)
  • 複数の設定情報の組み合わせがしやすい
  • 10s 等の期間および 512MB 等のデータサイズの記法のサポート
  • Typesafe 製だけど Scala 依存ではない
続きを読む