Hatena::ブログ(Diary)

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

プロフィール

hishida

hishida

EB series support page 管理人 ブログ

2018-04-06 青空文庫のSSL対応 このエントリーを含むブックマーク このエントリーのブックマークコメント

読書尚友で青空文庫の作品一覧の更新ができなくなったので慌てて調べたところ、4/1からSSL対応され、URLが https: に変わったためだった。

そらもよう

すぐに修正したが、メンテナンスされていない青空文庫関連アプリだと脱落するものもありそうだ。多くの青空文庫ビューアで使用されている青空プロバイダもエラーになってしまっている。

青空文庫OPDSも今の所3/31で更新が止まっている。こちらはたぶん対応してくださると思うけど。

2018-02-25

[][][]EBWin4 64bit版

要望を頂いている訳ではないが、EBWin4の64bit版を実験的にビルドしてみた。

WindowsクライアントOSではVistaから64bit版が提供されるようになり、現在ではインストールベースで64bitが32bit版を上回っている。32bitOSでは物理メモリが3GBが上限だが、64bitなら物理メモリの上限まで使用できる。

ちなみにmac OSもHigh Sheirraが32bitアプリが動作する最後のOSと告知されており、iOSもiOS11から32bitはもはや実行できない。Windowsアプリもいずれは64bit対応が必須になるだろう。

EBMacやEBPocketはすでに64bit化が済んでおり、EBWin4もそろそろ64bitネイティブ化する時期だと思う。

既存の32bitアプリを64bit化する手順は、

本当に64bitで動いているかどうかは、タスクマネージャで確認できる。

1日くらいの作業で64bit化できたが、私の通常の使用環境だと32bitとの違いは全然感じない。数十個の辞書をグループ化して検索するような極端なケースでは、多少恩恵があるかもしれない。

次の目標はEBStudio2の64bit化になるが、これは4GB超の巨大辞書を作るときに必要になると思う。

P.S.

EBStudio2の64bit版も2/27にリリースしました。特に問題はないように見えます。

2018-02-01

[][] iPhoneX 全画面対応

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

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

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

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

いずれはXcode9以上でないとアプリの提出が認められなくなるので、重い腰を上げてXcode9対応を行うことにした。

1.まずMac OS Xを 10.11 El Capitanから10.12 macos X Sierraアップグレードする。これ自体は特に問題は無い。

2.次に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 プロジェクトディレクトリ

3.これで大丈夫と思いきや、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は電話とテザリングぐらいしか使わない。

Macbook proiPhoneの組み合わせだと、4G、WifiBluetoothの3通りの方法でテザリングできる。

実際に使ってみると、OCNモバイル格安SIMよりもY!mobileのほうが高速なのでテザリングが快適になった。Bluetoothテザリングwifiよりも速度は落ちるが、wifiをOn/Offしなくても常時接続できるモデムとして使用できるので、非常に使いやすい。

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日がかりの仕事になる。対応にはまだしばらく時間がかかる模様。