2015年10月7日水曜日

iOS9のATS絡みの審査とリジェクトについて

Zメンです。iOSの開発に関するあれこれを書いていきます。 ■iOS9で出てきたATSってなに? iOS9が出てから(っていうか出る前から)開発者の間でATS絡みの話題が結構出てますね。 ATS自体はいまさら感がありますが、結局審査の時どうなるの?というところが意外と触れられてないです。 ちなみにATSはAppTransportSecurityの略ですね。 簡単に言うと 「今後アプリでの通信は全てHTTPSが推奨ですから!」 「HTTPで通信しようとしたらHTTPSに強制変換しますから!!」 な話です。 これが結構曲者な感じで、 HTTPSといっても『あれね、SSLね』ではなくて、具体的には  ○TLS バージョン 1.2 以上  ○接続時に使用できる暗号スイートに制限がある  ○サーバ証明書に制限がある    ・SHA256 以上のフィンガープリント    ・2048 ビット以上の...

wgetでサイト内のリンク切れチェック(いろいろ実験)

以前、wgetでサイト内のリンク切れチェックの記事でwgetのspiderオプションを紹介しましたが、実施するにあたって 「-recursive -level 1」とすると指定ページだけチェックして終わり?もしくは指定したページからリンクされたページまで辿る? 同一URLのリンクが複数貼られていた場合、毎回チェックしにいくのか リダイレクトされるURLの場合、リダイレクト先まで追ってくれるのか 一斉に大量のリクエストを送ってサーバに負荷をかけ過ぎないか のような疑問が浮かんだので、実際に実験してみました。 準備 以下の様なリンク構造を持ったサイトを用意しました。 やかましい矢印は他ページへのリンクを表しています。/detail/4.htmlからはトップページ(index.html)へ302リダイレクトするようにしています。 結果 -recursive...

wgetでサイト内のリンク切れチェック

主にリソースのダウンロードに多用するwgetコマンドですが、オプションの指定の仕方によってリンク切れチェッカーとして使えることがわかりました。 社内サーバやベーシック認証がかかっている環境にも適用可能で、cron等のタスクスケジューラにも登録しやすいので、 開発の最終フェーズから、日々のサイト内リンクの死活監視まで幅広く重宝すると思います。 ■コマンド 色々なオプションがありますが、実際に使ったコマンド例をご紹介します。 $ wget --spider --no-directories --background -o {YOUR_LOG_PATH} \ --recursive --level 3 --no-verbose --execute robots=off \ --user={YOUR_ACCOUNT} --password={YOUR_PASSWORD} \ --user-agent="Mozilla/5.0...

Java初心者がはまったこと2(ラッパークラス)

こんにちは。Java初心者のWebエンジニアKです。 PHPのノリでJavaを書いていたらはまったこと第二弾として、今回はラッパークラスについて書きたいと思います。 ■intとIntegerではまる Javaのソースコードを見ていると、例えば数値を扱う変数を作るとき、以下の2通りの宣言があることに気付きました。 int num = 100; Integer num2 = 100; 両者の違いを正しく理解せずに、その日の気分で使い分けていたら見事にはまりました。 ■intとIntegerの違い intはプリミティブ型のひとつで、値(intの場合は特に数値)のみを扱うための型です。 初期値は0です。 一方Integerはラッパークラスと呼ばれる参照型のひとつで、intを値だけでなく「振る舞い」も合わせて扱えるように定義した型となります。 「振る舞い」は平たく言うとクラスメソッド(toStringやvalueOf)のことですね。...

Java初心者がはまったこと(文字列比較)

はじめまして。WebエンジニアのKと申します。 これまでサーバサイドはほぼPHPで実装してきましたが、最近ではJavaへの挑戦も始めました。 慣れたPHPの感覚でJavaを書き始めると、思わぬところではまってしまうことがあり、 ここでは自戒の念を込めてはまったポイントを記しておこうと思います。 ■文字列比較ではまる こんなif文を書いて、判定がtrueとならず、頭を悩ませていました。 ※str = “hoge”だと、この単純な例の場合たまたま判定がtrueになってしまうので、わかりにくいですが”hog”と”e”にわけて宣言しています。【参考】 String str = "hog"; str += "e"; if (str == "hoge") { // false... // do something } PHPだと文字列はプリミティブ型なので、上記のような文字列が格納された変数(str)と文字列リテラル(“hoge”)の比較でうまくいくのですが、...