Hatena::ブログ(Diary)

hishidaのblog このページをアンテナに追加 RSSフィード

プロフィール

hishida

hishida

EB series support page 管理人 ブログ

2018-02-01

[][] iPhoneX 全画面対応

iPhone Xが発売されて数カ月が立つが、iPhone Xはこれまでと違う独特のアスペクトレシオを持ち、アプリもそれなりの対応が必要になる。

当方の開発環境はMac OS X 10.11 Mavericks および Xcode 8だが、iPhone Xの対応はXcode 9以降となる。さらにXcode9の動作環境はmacos X Sierra以降なので、開発環境をアップグレードしない限り、iPhone Xエミュレータを試せない。

開発環境を更新するのはリスキーなので、VMWare Fusionmacos X Sierra環境を作り、その上でXcode9のiPhone Xエミュレータを動かしてEBPocket for iOSの動作確認を行い、対応できたものと思っていた。

ところがiPhone Xの実機で全画面で動作させるには、Xcode9でビルドおよび提出が必要であり、Xcode8以前でビルドしたアプリiPhone Xで実行すると上下に黒い枠が表示されることがわかった。いずれはXcode9以上でないとアプリの提出が認められなくなるので、重い腰を上げてXcode9対応を行うことにした。

まずMac OS Xを 10.11 Mavericksから10.12 macos X Sierraアップグレードを行う。これ自体は特に問題は無い。

次にXcode9.2をインストールし、Xcode8時代のプロジェクトをコンパイルしてみると、早速コンパイルエラーの山となった。

Command /usr/bin/codesign failed with exit code 1

Code signing fails with error 'resource fork, Finder information, or similar detritus not allowed'

Technical Q&A QA1940: Code signing fails with error ’resource fork, Finder information, or similar detritus not allowed’

上のURLに書かれているように、次のコマンドを実行することで解決

xattr -cr プロジェクトディレクトリ

これで大丈夫と思いきや、iOS11で実行するとUIScrollViewのcontentInsetがずれるという凶悪な問題が発生。

no title

上記URLとは方法が違うが、結局、次の方法でiOS11のcontentInsetの自動調整を抑止し、さらに表示位置をiOSのバージョン毎に調整することで解決

MainWindow.xibのRootViewControllerで下記設定を行なう

Adjust Scroll View Insets : チェックを外す ←勝手なcontentInsetの自動調整を止める

Under Top Bars : チェックをつける←NavigationBarの高さが変わっても潜り込まずにbarの下に表示される

iOS6からiOS7になるときにもNavigationController Barの下にUITableViewが潜り込むという問題が起きたが、その時の対処が不完全であったことがiOS11で表面化したらしい。

no title

ただ今回のやり方が合っているのかどうかはわからない。そのうち「おまえらのiOS11対応は間違っている」と言われるかもしれない。

一時はもうAppStoreに提出できないのではないかと思って悩んだが、最終的には無事Xcode9でiPhone X対応版を提出することができた。

f:id:hishida:20180209081515p:image

最後に、Xcode9でビルドすると、TargetOSの下限がiOS8になってしまう。ただしiOSは大多数のユーザが最新OSを使うので、実際は問題は無いだろう。

iOSはメジャーバージョンアップごとに破壊的修正が入るので開発者にとっては大変。

2018-01-08

[] PHSからiPhone SE機種変

Y!mobile2018年3月31をもってPHS端末の新規の受付や機種変更を終了するという。これまで維持費の安さと通話品質のよいことから、長年PHSを愛用してきたが、後数年で停波になることも覚悟しなければならない(当面既存のユーザへのサービスは提供されるが)。

Y!mobileではPHSからスマートフォンへの機種変更の場合に、

  1. 契約事務手数料無料
  2. 「スーパー誰とでも定額」が次回の機種変まで無料
  3. PHSの下取りキャンペーン

など、色々と優遇があるので、思い切ってiPhone SE 128GBに機種変することにした。

bicカメラの店頭で機種変更したが、強制的に不要なオプションに加入させられるようなトラブルはなかった。

さてY!mobileではiPhone 6SiPhone SEが選べるが、SEを選択したのは4インチのサイズが電話として使いやすいからだ。大きなサイズで動画を見たい場合は、OCNモバイル格安SIMで運用しているZenfone 3 Lazerがあるので、iPhone SEは電話とテザリングぐらいしか使わない。

実際に使ってみると、OCNモバイル格安SIMよりもY!mobileのほうが高速なのでテザリングが快適になった。

Bluetoothテザリングが可能なのも使いやすい(ただしwifiよりも速度は落ちる)。

iPhone のカメラもコンデジがいらないぐらいだという評判なので、そのうちデジカメと比較してみたい。

2018-01-07

[][] iPhone X の解像度の問題

「EBPocket が iPhone Xに対応していない」というご意見を頂いたので、Xcode 9 のエミュレータで確認したところ、横画面のときに検索一致リストと本文の横幅がイビツになっていることがわかった。次のスクリーンショットのように、本文の方が幅が狭くなっている。本当は横位置の時は本文の幅を広く取りたい。

f:id:hishida:20180107233012p:image

これはiPhone X だけアスペクトレシオが2:1と縦長であることが原因だ。

デバイス画面サイズ画面解像度アスペクト比
iPhone X5.8 inch2436 x 11252:1
iPhone 8 Plus/ 7 Plus/ 6s Plus/ 6 Plus/ 5.5 inch1920 x 108016:9
iPhone 8 / 7 /6s / 64.7 inch1334 x 75016:9
iPhone5/5S/5c/SE4.0 inch1136 x 64016:9
iPhone4/4S3.5 inch960 x 6403:2
iPhone3G/3GS3.5 inch480 x 3203:2

これまでは短辺側の幅が必ず本文の幅だったが、iPhoneXだと横位置の時は、検索一致リスト側を短辺の幅にしないといけない。修正後はこんな感じ。

f:id:hishida:20180107233006p:image

エミュレータでしか検証していないので不安だが、とりあえず修正版を提出してみた。

P.S.

当方の開発環境は未だにOS X El CapitanおよびXcode8だが、どうやらXcode8でビルドして提出すると、iPhone X の全画面にならず、上下に黒い領域が表示されるらしい。Xcode9 はmacOS Sierra以上の対応なので、Xcode9 で本番用のプログラムビルドして提出するには、メインのMacbook promacOS Sierraか High Sierraアップデートし、Xcode9をインストールしなければならない。環境を完全にバックアップする必要もあるので、たぶん1日がかりの仕事になる。対応にはまだしばらく時間がかかる模様。

2017-12-18

[][] EBStudio リニューアル計画(6) EBStudio2 for Mac

EBStudio2のWindows版は12/1にリリースし、Vectorによる販売、および優待アップグレードも始まっています。

EBStudio2

お待ちかね?のEBStudio2 for Macも、本日より公式HPにて配布を開始。Windows版とライセンスキーは共通なので、Windows版を購入された方はMac版もフル機能が使用できます。

Mac版のEPWING辞書圧縮ユーティティEBShrink for Macも同梱しており、EBMac と組み合わせれば、Mac OS XだけでEPWINGの辞書作成、辞書の圧縮、閲覧まで完結させることができます。

今後の予定では、任意のXMLからの変換を可能にするという作業が残っています。つまりXMLのどの要素を見出しやキーワード、装飾に使用するかというセマンティックを定義できるようにするということ。

ここまでできればEBStudio2のリニューアル計画は終わりになりますが、ちょっと疲れているので、あとは休み休み進めたいと思います。

lingvo辞書の要望について

EBPocket/EBWin4もlingvo辞書の要望をいただいていますが、こちらはちょっと手強そうなので、サポートが可能かどうかは今のところはっきりしません。lingvoはロシアのABBYY社の辞書フォーマットで、ソース形式のDSL形式とコンパイル形式のLSD形式があります。LSD形式は非公開ですが、LSDからDSLへの逆コンパイラが公開されているのと、DSL形式にネイティブ対応しているGoldendictのソースが参照できる(ただしGPLなので流用不可)ので、これらを参考にすれば、原理的には対応は可能。問題は解析と開発にかかる時間コストが妥当かどうかですね。

解析資料を誰かが文書化していて、StarDictやMDictと同程度の開発時間で対応できそうなら脈がありますが、今の所分かっている資料では、解析にかかる時間が大きすぎて、私が個人的に割ける時間が限られていることを考えると、厳しいと言わざるをえません。

妥協案としては、DSL形式だけサポートして、初回起動時にインデックスを自前で作るという手がありますが、ストアで売られているlingvoの辞書はLSDだけなので、ユーザの希望とは違うと思う。

2017-11-26

[][] EBStudio リニューアル計画(5) 今後の予定

すでにHPで告知済みですが、EBStudio2のリリースについて、次のように決めさせていただきました。

無償アップグレードを期待しておられた方には大変申し訳ありませんが、旧ソースからのリファクタリングに多大な時間を要しており、新アプリを開発するぐらいの作業量がかかっているので、ご理解いただければ幸いです。

なお、旧 EBStudioとの互換性に関しては、次の大型辞書での変換で確認しており、各種変換ツールキットで変換したEBStudio用HTMLは、ほぼ変換できると考えています。