SHADOW WIRELESS と コンプライ社製イヤーチップを買ってみました

iPhone のヘッドホンが 3年ほど使用して,へたってきたので,ヘッドホンを新調してみました.

Bluetooth スピーカーの利便性は知っていたのと,次期 iPhone ではイヤホンジャックがなくなるかもしれないとのニュースが出ていたので,Bluetooth ヘッドホンで,価格が比較的安く,試しやすい,以下の製品を購入しました.

SHADOW WIRELESS
【国内正規品】Sol Republic SHADOW カナル型ワイヤレスイヤホン《Bluetooth対応/iOS対応リモコン》/ブラック SOL SHADOW BLK

800x800_shadow_black_packaging

NASAが研究したとかアピールしてますが,重視したのは,「価格」「使い安さ」「Bluetooth 4.0対応」といった点です.
Bluetooth ヘッドホンの購入は初めてだったので,買って失敗しても,まぁこの程度の価格だからいいか...とあきらめがつく価格であること.あと,iPhone6S とのペアリングが簡単であること.とかを気にしたわけです.

音質に関しては,過剰な音質は求めていません.
利用シーンとしては,屋外・電車内など音質を追求するには適さない場所が大半ですし,音質を追求することにかかる費用と利便性を考えた場合,利便性を優先することにしています.

2016/02 現在,価格は,安いところで ¥8,000 程度です.
同じモデルで色(黒,白,黒/赤)によって価格が違いますが,性能は変わらないようだったので一番安い黒を選択しました.

仕様に関しては,以下の通り.

Bluetooth標準規格 Ver.4.0
再生時間:8時間
ワイヤレス範囲:約10メートル
保証期間:1年
対応コーデック:APT-X
重量:約30g

この製品で気になる点は,首回り部品のサイズが許容できるか?どうかです.
私の場合,ヘッドホンの脱落防止に役に立つのでは?と考えることにしました.
他製品と比べてバッテリー容量についても優位だと思います.

ですが,実際に着用した際にシャツなどを着ていると,ちょっと気になることがあります.
Bluetooth ヘッドホンは,製品構成上レシーバをどこに配置するか?といった点はトレードオフであるので,購入前に考えておく点だと思います.

【良かった点】
まぁフツーに使えます.

【悪かった点】
パッケージが最低.演出しようとして失敗している.ただ,製品が取り出しにくいだけ.
説明書が厚すぎ.ユーザにとっては大切なことは紙一枚程度.

たまに音飛びする.
iPhone が胸ポケットにある場合と尻ポケットの場合で,若干音飛びの頻度が違うような?気がする.
やっぱり,iPhone と ヘッドホンの間に障害物がない方がいい?実際のところどうなのだろう?

コンプライ社のイヤーチップ

購入に際しては,数年ぶりに実店舗に出かけたのですが,イヤーチップという商品があったので,併せて買ってみました.

COMPLY (コンプライ) イヤホンチップ Ts-200 ブラック Sサイズ 5ペア (並行輸入品)

コンプライ社の資料によると「200番のイヤーチップが適合」とのこと.
http://www.comply.jp/download/compatibility.pdf

コンプライ社のイヤーチップの商品構成は,わかりにくいなぁーと感じたので,簡単にまとめました.
入門者は,T / Ts シリーズで OK みたいですね.(★)

Sシリーズ	多彩なカラーバリエーション
Tシリーズ	オリジナル(★)
Tsシリーズ	高音域PLUS(★)
Pシリーズ	遮音MAX
Txシリーズ	耳垢ガード
Tsxシリーズ	高音域PLUS

TS200 Sサイズ, Mサイズ
http://www.comply.jp/products/Ts-200/

【良かった点】
お手軽に,フィット感,遮音性,重低音が手に入る.

【悪かった点】
商品構成が把握しづらい.
価格がちょっとする.

商品の種類が多いというのは,ヘビーユーザの様々なニーズに応えているとも言えますが,ライトユーザには嫌がらせですね.
S, T, Ts, P, Tx, Tsx とかいわれても困る.製品構成を把握しないと買えない性格なので,そういう人には地獄.
実際の店舗で,商品の陳列を見たとき,特に説明に関するポップもなく,倒れそうになった.

ですからライトユーザには,これといったおすすめをしても良いのでは?と思います.
もともと,ライトユーザは重視していないヘビーユーザ向けの商品?なのでしょうか?
他社製のスカスカ イヤーチップに比べると,とても品質はいいと思います.
私は多分,また買います.

Swift と Objective-C との連携方法

Objective-C で定義したクラスを Swift で使用する

【ブリッジヘッダーファイルを追加する】

ブリッジヘッダーファイルは,$(TARGET_NAME)-Bridging-Header.h で,プロジェクトに追加する.

Swift で利用する Objective-C クラスをブリッジヘッダーファイルに記載する.

【Build Settings ー Objective-C Bridging Header を設定する】
ブリッジヘッダーファイルが Swift に取り込まれるように、ターゲット – Build Settings 設定に登録する.

Swift Compiler - Code Generation
Objective-C Bridging Header
$(TARGET_NAME)/$(TARGET_NAME)-Bridging-Header.h と指定する.

【Swift で Objective-C クラスの呼び出し方】
Objective-Cのインスタンスメソッドの場合、 “textWithString:” のようなメソッドは “textWithString(str)” と呼び出す.
“textWithString: string:” というメソッドの場合, “textWithString(str1, string:str2)” と呼び出す.

Swift にインポートした Objective-C クラスは、そのまま継承して新しい Swift クラスを定義できる.

Swift で定義したクラスを Objective-C で使用する

【Swift クラスが定義されたヘッダーファイルをインポートする】
Swift で定義したクラスを利用するには、それを使用したい実装ファイル内に、次のように #import 文を記載する.

#import "$(PROJECT_NAME)-Swift.h

このファイルは、プロジェクト自体には登録されていないが、Derived Data の中間ファイルとして “DerivedSources” フォルダーに自動的に生成されている.

iOS アプリ申請時,Archive validation の警告について

Organizer で,Validate 後に出力される警告メッセージ

Organizer で,Validate 後に出力される警告メッセージ

先日,iOS アプリ申請時に Organizer で,Validate… ボタンを押下すると以下のメッセージが表示されるようになった.(2016/2/10 頃)

内容は以下の感じかと思う.

Archive validation coated with warnings:
The archive passed validation with several warnings.
アーカイブは,いくつかの警告がありますが,validation をパスしました.

iTunes Store operation succeeded with a warning.
The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery.
This is just an informational message.
iTunes Storeの操作は警告付きで成功しました.
API解析ファイルが大きすぎます.配信前にAPIの使用状況を検証することができませんでした.
これは単なる情報メッセージです.

使用している開発環境は,Xcode 7.2.1.
7.2.0 での申請時には上記のメッセージは参照したことがなかった.

特に問題があるとも思えなかったので,そのまま Upload to App Store… ボタンを押下し,アップロードした.
iTunes Connect でビルドの追加が「処理中」のままになり,なかなかビルドの追加が行えず心配したが,4日後に承認されて,Ready for Sale になりました.
上記の警告は何が原因なのだろう?

Average App Store Review Times で,iOS App Store 4 days とされていたので,本当かなぁ〜?ちょっと早すぎるんじゃない?と思っていたが,本当に 4 日でReady for Sale とされていたので,最近は審査が早くなっているのかもしれない.

CocoaPods の Podfile にターゲットを指定していないと怒られた際の対処方法

先日,CocoaPods を使用していて,新しいバージョンがあるとメッセージがでていたので,バージョンアップしたところ,Podfile にターゲットを指定していないと怒られた.

しょうが無いので,以下の URL を参考にターゲットを指定したのだが,エレガントな方法が紹介されていたので,メモ.

1
2
3
4
5
6
7
# ターゲットを指定しない記述
pod 'Alamofire', '~> 3.1.4'
 
# ターゲットを指定している記述
target "TargetName" do
    pod 'Alamofire', '~> 3.1.4'
end

参考: エレガントな方法は以下を参照
CocoaPods: The Elegant Solution To Installing The Same Pod In Multiple Targets

3Dタッチ メニューをローカライズする方法

Info.plist に3Dタッチのメニュー構成を定数で行っておき,
InfoPlist.strings でローカライズ文字を定義しておけばよいとのこと.

参考:
How do you localize static UIApplicationShortcutItems?

ちなみにショートカット アイコンは,こんなのが使用できるらしい.
ショートカットアイコンの定義

Info.plist, InfoPlist.strings を作成,削除を繰り返してたら,プロジェクト設定が変更されてしまい,以下の警告が表示されたりするので,注意です.
誤って登録された .plist を設定から削除しましょう.

Warning: The Copy Bundle Resources build phase contains this target’s Info.plist file

iOS9 で [NSLocale preferredLanguages] の返値が,”ja” から “ja-JP” になっている件

日本語の判断を以下のようにやっていて,iOS9 で正しく判断できていなかった.

原因は,掲題の通り.

以前の判定方法

1
2
3
4
5
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
 
if ([currentLanguage isEqual:@"ja"]) {
    :

iOS9 に対応した判定方法

1
2
3
if ([currentLanguage isEqualToString:@"ja"] || 	// iOS8 以前
    [currentLanguage hasPrefix:@"ja-"]) { 	// iOS9 対応
    :

参考:
[iOS] iOS9 日本語環境の判断コードの変更が必要に [NSLocale preferredLanguages]

[iPhoneプログラミング]iPhoneの言語設定関連の情報取得についての解説