5 回も作り直すと正直萎えるが、復習になって良い面もある

Xcode 9 のバグのせいで、具体的には InterfaceBuilder で stack view を積み重ねると複雑になってしまい処理がおかしくなって結局 storyboard が開けなくなってしまう現象があり、結局 5 回目の作り直し。

萎えてしまいますが、実は、Apple に申請したら、レイアウトを見直せ、他のデバイスで画面がおかしくなるぞと言われていたので、Auto Layout 仕様に作り直す必要性があり、良い機会なのだと思うことにして、しぶしぶ取り組んでいるのですが、作り直している都合、内部に設定している各種 method もコピペしながら実装中です。

改めてコピペしていると思うように動かないところがある。この部分はこうやればいいよね、と思い込んでいるところがあり、あぁそういえばこうやるんだった、この method も必要だったと、良い復習になります。

もうぶっ壊れてても大丈夫のように、local git に commit しまくりで備えていますが、また壊れるかもしれないので、どうか早めに Xcode のアップデートが出ますようにとお祈りします。

Xcode 9 のバグがひどいので、Beta をインストール

Xcode 9 のバグがひどい。これ、まともに開発できないレベルだと思う。致命的なのは次の点。

・include するファイルの頭文字を打っても、候補が出てこなくなる

 ...再起動すると解消。

・Stack View 内に text view を入れると、とんでもないレイアウトに仕上がる。

 ... 根本的な解決方法今のところなし。

・Stack View を積み重ねると動きが途方もなく遅くなる

というわけで developer サイトに行ったら beta 版が置いてあったので入れてみました。これでバグが解消されているとよいのですが・・・

Xcode 9 storyboard から h ファイルに drag して connect したら error...

Xcode 9 で ViewController を新設し、Class 化した m と h ファイルを作成。storyboard から h ファイルに object を drag して connect したら error...

Xcode 9 storyboard から h ファイルに drag して connect したら error...

Could not insert new outlet connection: Could not find any information for the class and not showing any class named hoge

なんじゃこりゃ? この操作はずっと昔から何度も繰り返しているので、いつまでたっても慣れない Xcode とは言え、間違えるはずがない。よく分からないので Xcode を再起動すると、さきほど追加したはずの hoge class ファイル m, h 共に無い。もう一度追加してみると、表示されていないのにファイルが存在しますがどうしますかみたいな警告が出る。上書き指定すると、追加したファイルが表示されるようになった。

その後、storyboard から h ファイルに object を drag してみると、error が出なくなった。これ、bug ですよね。しかも、Interface Builder 由来の伝統的な操作部分で error になるなんて、基礎がないがしろになっている感じがしてすごく印象が悪い。

Xcode 9 は便利になったんだけど、どうにも、bug が結構あるようで、早くアップデートしてほしいものです。

Xcode 9 と git と gitlab

Xcode では以前から git を使った source 管理が出来ます。github にソースを置くこともできるのですが、licence の都合、source を public にしないと無料では使えません。private はお金がかかるということで、git の clone はないかと色々探していたら、gitlab というサーバがあり、Xcode 6 辺りでは問題なく同期できていたので重宝していたのですが、Xcode 7 辺りから通信が通らなくなり困っていました。

そうしたところ、Xcode  9 で気付いたのですが、git 機能が随分と進化しており local git でも command line からのイミフな操作に頼らずとも、XcodeGUI である程度必要機能が充たせるところまできています。

今困っているのは、Xcode 9 の Interface builder で、機能がかなり充実してきてすごく良くなったんですが、stack view の中に text label を 2 つ配置したところで必ず固まってしまい、もう、開けなくなってしまうのが困って困ってしょうがないところ。どれくらい困っているかというと、もう開けなくなったら、しょうがないので、作り直すのですが、5 回も作り直すハメになってしまい、いくらなんでもこれは bug だろうと思い、いい加減直して欲しいところなんですが、それは御本尊のみ知る神の世界で、末端の開発者は祈るぐらいしか出来ないのが悲しいところ。自衛の意味で、git で昨日の source に戻りたい!それでもダメならもう一つ前の version にというのが、果たしてどうやるのかよく分からなかった、あるいは、従来の Xcode では出来なかったのですが、前述の通り Xcode 9 では可能になっていました。

具体的には、git のアイコンを叩いて表示される commit 一覧から、戻したい version を選び、CTRL + click で、checkout を選ぶと戻せます、戻せるようになりました。やや横道に逸れると、git の checkout の意味がやや分かりにくいのですが、ホテルに泊まって chekcout = もう清算、あるいは、出る、とういうような感覚でいると、真逆なので注意が必要です。この分かりにくさを git user  がよく我慢できるなと思うのですが、例示の表現では、checkout = checkin の意味合いが強いと考えると合点の行くところなんです。checkout すると、その時点の source に戻れますという感じでしょうか。

これで、任意の時点に戻れるようになったので、今後 Interface builder の bug のせいで、Main.storyboard が開けなくなっても、一つ前に戻ることで被害は最小限に留める見通しが立ちます。

それでもなお、やや困ったのが、今使えているのが local git なので、仕事でやりとりする source  はどうしたものかと。他の企業とやりとりすることもあるので、どうやって source をやりとりすればよいか。

git clone で free で、Xcode からの通信が通るのが出てくると嬉しいのですが・・・

バッテリーの交換修理 と出ている:MacBook 12in

MacBook 12in を使っています。

最近、なんとなくバッテリーが持たないと思っていたのですが、バッテリーメニューをみると、「バッテリーの交換修理」と出る。うぉ・・・これは痛い。よくわからなかったので調べてみたら、MacBook 12 in でも、バッテリー交換可能なんですね、かなり高価で 2 万円ほどするそうですが・・・

そんなに日が経っていないのになぁ・・・もうちょっと盛ってもいいと思うんだけどなぁ・・・買い替えるお金はもちろんないし、かといって交換するお金もないしなぁ・・・と悩ましかったのですが、再起動して、100% まで充電したところで電源を抜いて使ってみると表示がなくなりました。

ちなみに、りんごメニュー>この Mac について>システムレポートを押すと、詳細が表示されますが、バッテリーについての記述もあります。

わかりにくいのですが、ハードウエア>電源 のところを見ると、色々書いてあります。多分、放充電回数、アンペア数あたりが重要そうなんですが、見方がよく分かりません。

出なくなったとは言え、バッテリーがへたっていることは確かなんでしょうね。今度は、MacBookPro 13 in かなぁ。先立つものがありませんが・・・

 

シャグを試す:サーフサイドピニャコラーダ、チョイスアロマティック

通勤途中のたばこ屋さんに手巻きのシャグが置いてある。Herbstick Relax でコルツクリアメンソールを吸っているのですが、他の銘柄も試してみたいのでサーフサイドピニャコラーダ、チョイスアロマティックを買ってみました。

サーフサイドピニャコラーダは、25g で買いやすいグラム数。ピニャコラーダの意味はパイナップルとのことで、果たしてどんな味かドキドキ。試した結果、うーん、合わない。ココナッツの香りがきつすぎる。パイナップル感は少ない。

チョイスアロマティックも試してみました。正直、サーフサイドピニャコラーダと似ている。ココナッツの香りに、なんとも言えないスパイスの香りが足された感じですが、ココナッツの香りが勝り、どうにも自分には合わない。

結局のところ、ココナッツの香りがそんなに好きではないのだろうとの結論で、消費が終わったらまた別の銘柄を買ってみよう。

自分的には、今のところコルツクリアメンソールが一番合っているのですが、タバコ感が薄く感じることがあるので、もう少しキツイと嬉しいのですが、銘柄探しの旅はもう少し続きそうです。

Interface Builder: Text View を配置すると、制約エラー

Main.storyboard でレイアウトしていて、Scroll View は一つの鬼門というか、一般原則が通用しないことがあるので注意が必要。

今日遭遇したのは、Scroll View > View > Text View と配置し、『よくわかる Auto Layout』に倣い、text view の上と左右に制約を与えたところで引っかかってしまった。エラーの内容は、

text view need constraints for: Y position height

とある。わからない。何度かレイアウトし直してみてもうまくいかない。散々いじった末、やっと解決。

Show the Attribute Inspector > Scroll View > Scrolling > Scrolling Enabled

このチェックを外すとエラーが消える。

解決してみて初めてエラーの意図するところがわかったんですが、スクロール可能にするなら object の高さを決めなさい、不可にするなら可変だよ、ということなんですね・・・ふぅ。

それにしても、Xcode は進化しますね。今日、?になってしまったのは、レイアウトしていたら、Safe Area というのが勝手に追加されてしまい、消そうとしても消せない、選んでみると配置できる場所が青くなる。便利そうなんで君悪いけど置いておくことに(というか、消せないし)して、この object を指定した位置調整とかできるようになるんですかね。