Xcode: Base SDK と Deployment Target の違い

はじめてまとも(仕事として)に iOS アプリの引き継ぎ開発をするにあたり、後方互換を意識しなければならず、Xcode プロジェクトのビルド設定にある Base SDKDeployment Target の理解が曖昧だったので、公式ドキュメントを漁って調べてみました。

下記、公式ドキュメントをオレオレ和訳したものになります。

ご参考まで。


Xcode プロジェクトで特定の SDK を使うには、プロジェクトのビルド設定で 2 つの選択をおこないます。 これらの選択はプロジェクトで使う OS 機能を決定します。

  • Deployment Target はお使いのソフトウェアを実行できる最も古い OS バージョンを識別する設定です。デフォルトは Base SDK のバージョン以降に対応する OS のバージョンと同じです。 この設定のための Xcode ビルド変数名は MACOSX_DEPLOYMENT_TARGET (OS X Deployment Target) と IPHONEOS_DEPLOYMENT_TARGET (iOS Deployment Target) です。 Deployment Target 以前の OS に組み込まれている機能は無条件に利用できます。
  • Base SDKBase SDK に対応するバージョン以前の OS に組み込まれている機能が利用できます。 この設定のための Xcode ビルド設定名は SDKROOT (Base SDK) です。 Deployment Target のバージョン以降、Base SDK に対応する OS バージョンまでの機能は、開発したアプリで利用できます。 ただし、新しい機能が使えるかどうかチェックする必要があります(「iOS 弱リンククラスの使い方」、「弱リンクメソッド、関数、シンボルの使い方」を参照)

以下、原文。

つづきをみる

竹下通りの出口付近で工事中の「神宮前計画」

ある日の会社からの帰り道、竹下通りと明治通りの交差点で、何かの工事が始まっていることに気付きました。
いつもは、ただ白い壁に覆われていたエリアに、重機が入り、工事が進んでいるようでした。

神宮前計画工事中

思えばだいぶ長いこと、白い、如何にも工事中という感じの壁に覆われていたのですが、一体何ができるのか気になったので調べてみたら、何やら色々あった「案件」のようで、ちょっと記録しておこうと思います。

まず、検索エンジンで「竹下通り 工事」を検索してみると、ちらほら「神宮前計画」というキーワードが出てきました。

工事現場の「建築計画のお知らせ」にも「神宮前計画」と記載があったので間違いないでしょう。

ちなみに下記がそのお知らせ内容です。

つづきをみる

Bot: AhrefsBot/3.0

このユーザーエージェントも、自分の管理するサービスでちょくちょく見かけるものです。

Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://ahrefs.com/robot/)

Ahrefs(エーエイチレフス?)は SEO のチェックツールを提供している会社という認識ですが、念のため調べてみる。

Ahrefsは2011年に発足。
シンガポールとウクライナの多国籍企業が運営するSEO分析ツールです。
世界7か国語に対応し、facebook、Twitter、Google+などのソーシャルシグナルにも対応した世界で約12万人のサイト運営管理者が様にご利用いただいています。
使い勝手・実績・性能いずれも最高峰のSEO分析ツールです。

引用:https://www.affiliate-b.com/web/ahrefs/

Ahrefs を見てみても分かる通り、有償にて SEO ツール類を提供しているサービスのようです。
(最初に知ったときは無料で使えたような気がしたけど)

次にユーザーエージェント上でも示されている URL( http://ahrefs.com/robot/ )にアクセスしてみます。
とても新設なページで、robots.txt の記述の仕方が分かりやすく載っています。

全体的に拒否したい場合、

User-agent: AhrefsBot
Disallow: /

クロール頻度を調整したい場合、

User-agent: AhrefsBot 
Crawl-Delay: 2

のように載っています。

紳士的なクローラーのように見受けられます。

iOS: Universal Links でクライアントが apple-app-site-association を参照するときの User Agent

Universal Links でクライアントが apple-app-site-association を参照するときのユーザーエージェント

swcd (unknown version) CFNetwork/758.0.2 Darwin/15.0.0

swcd ってのは Shared Web Credentials Daemon の略らしい。

Shared Web Credentials は Web サービスとアプリ間で認証情報を共有できる技術らしい。

参考 URL

iOS

PHP: ビットマスク(ビット演算)で複数フラグ管理

少し前に会社で「複数のフラグを管理する良い方法」的な話が持ち上がりました。
自分としてはビット演算を使うことを提案したのですが、うまく伝えることができなかったので、ちょっと練習。

本記事の流れをザックリ。

  1. まえおき
  2. 管理するフラグの定義
  3. コードに落としこむ
  4. データベース(MySQL)とからめる
  5. まとめ

1. まえおき

さて、プログラミングしている上で、所謂「データ」に対して複数のフラグ管理が必要になるとき、皆さんはどうしていますか?

class Data {
    ...
    $flag_1 = 0;
    $flag_2 = 0;
    $flag_3 = 0;
    $flag_x = 0;
}

こんなクラスを作って、これを更にデータベースで管理するとき、こんな具合になりますかね。

CREATE TABLE data (
    ...
    flag_1 TINYINT UNSIGNED DEFAULT 0,
    flag_2 TINYINT UNSIGNED DEFAULT 0,
    flag_3 TINYINT UNSIGNED DEFAULT 0,
    flag_x TINYINT UNSIGNED DEFAULT 0
);

でも、このまま開発を進めていくとフラグが追加・削除されるときとか結構面倒ですよね。
フラグが追加になる度に新しいカラムが増えることにもなります。

そんなときビット演算が役立ちます。

何がどう役立つのか、サンプルとしてロールプレイングゲームでよくあるプレイヤーの状態異常の管理をフラグでおこなって理解を深めたいと思います。

つづきをみる

PHP