SpriteKitに於いてセーフエリアを見掛け上viewDidLoad内で取得する裏技

iPhone Xが発売[※1]されると共に導入されたノッチは、当初はiPhone Xのみへの対応を考えれば済んだのでしたが、徐々に追加されるノッチ付き端末は、極薄ベゼルが齎らす角丸表示と併せ、iPhoneアプリ作成に於いても充分に考慮せざるを得なくなりました。此れに対応する手法をApple社が開発環境に於いて用意したものがセーフエリアなる概念です。セーフエリアの中にアプリの必要事項を表示させれば、ノッチと角丸の欠け分に掛からずして、アプリ内容が不可視となってユーザーに不便を掛けないようにと配慮された手法です。

セーフエリアの取得

当初はセーフエリア外の余白を零と考えた四角表示領域の従来iPhoneと、iPhone Xのセーフエリア一種類だけと考えれば、iPhone Xか否かで分岐処理をすれば済み、セーフエリアも定数で済んだものが、年毎に追加されるノッチ端末毎にサイズが異なれば、セーフエリア外の余白の値は増えるばかりにて、当然ながら端末毎、其々のセーフエリア数値に対応する必要が出来したのです。此方もApple社が対応するにセーフエリア値取得用に用意したプロパティが「safeAreaInsets」にて以下の如く記述すれば端末から上下左右の余白を取得出来ると言うものでした。

  • self.view.safeAreaInsets.top
  • self.view.safeAreaInsets.right
  • self.view.safeAreaInsets.bottom
  • self.view.safeAreaInsets.left

Apple社の開発者用サイトには「Instance Property」としての当該案内ページ「safeAreaInsets」が用意されています。当該プロパティを用いれば得られた余白の値の余裕分、端末のエッジから離してアプリの内容を表示すれば宜しくなります。また、時計やWi-Fiやバッテリー状況を示すアイコンの乗るステータスバーは、従来のものは従来通り、ノッチ端末に於いてはノッチの左右にiPhoneが自動で良しなに配置してくれます。

ゲーム画面に於けるセーフエリア

WordPressでTwenty Twenty-Twoを親テーマにした時に独自ブロックパターンを子テーマに追加する

WordPressがバージョン5にメジャーアップデートした時、ブロックエディタ「Gutenberg
グーテンベルグ
」には驚かされた向きも多いのではないかと拝察するのは一時、手掛ける案件は殆どが従来の環境に寄せるプラグイン「Classic
クラシックEditor
エディター
」を要請に受けてインストールしたからです。「Gutenberg
グーテンベルグ
」は2018年師走に鳴り物入りで登場したものの従来との異質性から些か嫌われた面も有りましたが、数年を経て徐々に使われ始めている印象が有り、今後の普及は確実なものとなった様に感じられます。本記事も勿論エディターには「Gutenberg
グーテンベルグ
」を利用しています。

しかしメジャーバージョン5の目玉かと思われて来た「Gutenberg
グーテンベルグ
」も序章に過ぎませんでした。WordPress運営のメジャーバージョンアップデートの本来の目的は更に先に有りました。バージョン5.9で導入されたフルサイト編集機能と其れを活かすべく登場したテーマ「Twenty Twenty-Two」を以て明らかとなったのです。

Twenty Twenty-Two

新たに登場したテーマ「Twenty Twenty-Two」のWordPress公式の説明には「数十種類のブロックパターンを搭載し、数クリックでプロがデザインしたさまざまなレイアウトを利用できます。」なる文言が含まれるに従来からの飛躍が詰め込まれています。バージョン5.9で導入されたフルサイト編集機能との合わせ技にてエディター「Gutenberg
グーテンベルグ
」と同様にブロックエディターはサイト全体に拡張され、サイト全体のブロック編集が可能になったのでした。

サイト全体にブロックエディターが拡張されたのは管理画面に明瞭に可視化されています。下の図に於いて左が一つ前のデフォルトテーマ「Twenty Twenty-One」で右がテーマ「Twenty Twenty-Two」の管理画面になりますが、メニューの「外観」が明らかに異なり、「Twenty Twenty-Two」には僅か二つ「テーマ」と「エディター(ベータ)」しか項目が設けられて居らず従来からの異質性を見て取れます。

アップル社にMacBook Pro 2016のバッテリー交換を依頼する

いつもの様にファミレスに出掛けオーダーの後、
おもむろ
に開いたMacBook Pro 2016年モデルでしたが、いつもの様には画面が点灯しません。黒い画面の儘静かに佇んでいる様子に、遂に来たか、とTouch IDやエンターキーを連打したり、ディスプレイを閉じたり開いたりして見れば、矢張り思った通りのサインが点滅しました。例の狭い幅の赤の指標を伴う電池の意匠のバッテリー切れのしるしのアイコンです。自宅で充電満タンにして来たにも関わらずの事態です。予ねて予想していたバッテリーの寿命の時がやって来たのでした。

バッテリー切れのサインを表示するMacBook Pro 2016(2022年1月22日撮影)
バッテリー切れのサインを表示するMacBook Pro 2016(2022年1月22日撮影)

バッテリー交換の目安としての充放電回数

予ねて予想、と言うのもMacBook Pro 2016のメニューバーのバッテリーをクリックすると何時の頃からか「修理サービス推奨」と表示がされていたからです。一年に近くなるかも知れません。しかし其の儘にしておいたのは手元に欠かせない端末であるのも一つですがアップルの公式サポートページ[※1] にバッテリーの交換目安としての充放電回数がMacBook Pro 2016については、 1,000回とされているからです。

購入開梱時のMacBook Pro 2016(2016年11月19日撮影)
購入開梱時のMacBook Pro 2016(2016年11月19日撮影)
MacBook Pro 2016のバッテリー情報の「修理サービス推奨」表示
MacBook Pro 2016のバッテリー情報の「修理サービス推奨」表示

バッテリー交換をApple社に依頼するのは初めてではありません。 本ブログの2018年7月31日の記事[※2] に記した通りMacBook Air 2013年モデルも同じく充放電回数の目安は1,000回とされていた処、其の上限を超える1,093回で初めてApple社に依頼しました。 処が、今回MacBook Pro 2016では此の問題が発生した時点で523回としか充放電回数が示されていないのです。「修理サービス推奨」と表示され始めた頃には此れより少ない数値であったのは勿論で、3時間ほどは電源に接続することなく使用が可能でしたので、凡そ修理依頼を思い切る気持ちは生じなかったからです。其の意味では予想はしつつも同時に突然の感も交錯して、想定内と戸惑いの綯い交ぜな些か言い難い心持ちを抱かされたのでした。

因みに本記事執筆時点でのMacBook Air 2013の充放電回数を見れば486回で500に迫る回数ながら「修理サービス推奨」などの表示は出ていません。バッテリーの容量など仕様や端末の使用頻度なども異なりますので単純に比較は出来ませんが、Proモデルとして廉くは無い価格のMacBook Pro 2016のバッテリーの交換時期の早さは如何にも腑に落ちません。更には去年2021年初頭に入手したMacBook Air M1 2020年モデル[※3]に至っては現在充放電回数は3桁にも届かない64回で、決して使用頻度が低いのではなく、発売当初から評判を取っている通り何しろバッテリーの保ちが良く、日に数時間持ち出すだけでは毎日の充電の必要が無い余恵よけいです。勿論Apple社謹製の新CPUが齎す効果であるのは言う迄もなく絶大で、従来市場独占の結果、用いざるを得なかったx86系CPUの製造元のインテル社には現在世間を賑わすエネルギー問題に関して敢えて猛省を促したくもなる出来の良さです。何しろ発売当初からキーボードからタッチバーから何かと物議を醸したMacBook Pro 2016年モデルですから、CPU含め電源管理辺りにも何某か問題が内在しているのではないかと疑義の生じるのも正直否めません。但し2016年モデルとして其の年に購入してから5年と数箇月の期間を経ていますから経年劣化の影響も有るのは承知しており、個体に仍っては破棄の憂き目を見るものもある時期であれば著しく信頼を損ねる程でもありません。

多少釈然としない部分は残しながらも、先ずはバッテリー交換依頼としては経験済みの事態ではありますし、Apple社の対応は 前回[※2] では二日しか掛からず驚かされもした迅速さでしたので、其の日のうちにアップル社へのバッテリー交換の依頼を決めたのでした。

Apple社サポートへの連絡方法と前回との相違点

投稿日:
カテゴリー: Mac

MacBook Air2013のmacOSをMojaveからCatalinaを素っ飛ばしてBig Surにアップグレードしてみた

長らく手元のノートPCであるMacBook Air 2013のOSをアップデートしない儘で来ました。前回のメジャーアップデートでmacOS High Sierraハイ・シエラからmacOS Mojaveモハベ 10.14(18A391)としたのが2018年10月24日、macOS Mojave 10.14.6(18G84)としたのが2019年8月1日ですから、2021年10月現在2年以上もの間、等閑なおざりにしていた勘定になります。其の間にも追加アップデート10.14.6(18G87)が2019年8月19日、追加アップデート10.14.6(18G95)が2019年9月6日とメジャーアップデートならぬMojaveの追加アップデートを重ねたのでしたが、時は2019年10月8日より既にバージョンナンバー10.15のmacOS Catalinaカタリナへの時代へと移って行きました。

macOSアップグレードを阻んでいた事情

システム環境設定からアップデート通知を、もうずっと、端末を広げる度に目にしながらも、最新OSへの入れ替えを忌避していたかと言えば然に非ず、出来得るものなら最新OSの享受を欲していたにも拘らず、そうは問屋が卸さない事情がありました。ストレージの容量不足です。手元のMacBook Air 2013の内蔵SSDの容量は128GB、2013年師走の購入当時は勿論、最後のメジャーアップデート迄にも不足はなかったものの、2019年10月のmacOS Catalinaへのアップデートの際には容量不足の警告と言う引導を渡されていたのでした。

MacBook Air 2013に表示される macOS Big Surのデスクトップ画面
MacBook Air 2013に表示される macOS Big Surのデスクトップ画面

手元の端末のMacBook Air 2013に、正確を期して記せば、11-inch, Mid 2013とされる様に画面サイズは11の2013年中旬発売のモデルで、CPUは1.3GHzのIntel Core i5、メモリは1600MHzのDDR3、4GBを搭載しており、此のストレージ、内蔵SSD容量が128GBであるのでした。此の端末にはiPhoneとの連携を含めて充分満足していましたので、2016年10月にMacBook Pro 2016年モデル、2020年12月にMacBook Air M1を購入してからも最前線で現役として活躍させていました。そして今尚現役として健在であるからこそ最新OSへのアップグレードを望むのでしたが、ストレージ不足に阻まれていると言う状態であったのです。

MacBook Air 2013のOS遍歴

MacBook Air 2013の当初のOSはバージョン10.9のOS X Mavericksマーベリックスでした。翌年2014年11月にはバージョン10.10のOS X Yosemiteヨセミテ、其の翌年2015年9月にはバージョン10.11のOS X El Capitanエル・キャピタン、其の翌年2016年10月にはバージョン10.12のmacOS Sierraシエラ、其の翌年2017年9月にはバージョン10.13のmacOS High Sierra、そして2018年10月にバージョン10.14のmacOS Mojaveと、OSのアップグレードを代々重ねて来ましたが、Mojaveにて最新OSへの更新は停滞していたのでした。此の状況から今回、本記事ではバージョン11となるmacOS Big Surビッグ・サーへのアップグレードを目論見、実行に移した様子を出来得れば活写したく思うものです。

投稿日:
カテゴリー: Mac

Google Chromeの検索ページのみライトモードにする

頃日気付けば、少々遅きに失しているのかも知れませんが、 少し前迄は此の様な仕様ではなかった気がしています。 MacでブラウザにGoogle Chromeを用いた時、 検索結果の背景が真っ黒となり、 其の上に文字が青色という実に醜い仕様になってしまっているのです。

背景が黒くリンク文字が青くなったGoogle Chrome検索結果画面

Macの設定確認

此れがダークモードであるのは凡そ察しが付きますので、 先ずはMacの設定を、 以下の如くメニューを辿り確認します。

システム環境設定 » 一般 » 外観モード » ダーク

すると案の定、 Macの設定はダークモードになっており、 此の設定が検索結果画面に影響を及ぼしているであろうのは見当が付きますが、 しかしつい此間迄は其の様な色合いにはなく、 であれば、其の異様さと使い難さに間違いなく大きな違和感を抱いていた筈です。

MacBook Air M1 2020のTime Machine導入記

Apple社が自社製PC Mac の心臓部をIntel社から調達していたものを、iPhone由来の独自プロセッサー M1 に切り替えると2020年6月の開発者会議で発表し、 実際年末に発売した3機種の内の1機種が、今回主役の MacBook Air にて、其の筋のネットメディアや、ガジェット好きユーチューバー及び新し物好き抔が、 発表と同時に入手して発信する情報を見るに、其の手に有り勝ちな、提灯や的外れ、 曖昧さを差し引いても、どうにも此れはゲームチェンジャーであるとしか思えず、 師走に発注して年を跨いで落掌したのが2021年1月24日、 以来、メイン機として使用していたMacBook Pro 2016から徐々に妥当な業務から移行させ、今は其の使用頻度が半々となる中、Apple社の発表、前評判からそう遠くない実感の得られ、頗る満足の行く使い心地を満喫しています。

MacBook Air M1 2020

如何なる満足を得られたるかと問われれば、先ず挙げられるのはバッテリーの持ちの良さです。Intel Macと同時利用ですので其の差は歴然で、やはり中央プロセッサーの寄与するところが大きいのでしょう。最早、社会全体のエネルギー消費に思いを致すくらいで、CPUの寡占は忌むべき事態であるとの感慨さえ抱かせられるほどです。加えて内製プロセッサーであれば基本ソフトウェアとの整合性も取るべく設計され、基本ソフトウェアからも歩み寄れば、それも省電力に与って力のあるのは疑うべくもありません。少し早く、去年2020年末に入手したiPhone 12 Pro Maxのバッテリーの持ちの良さと合わせて、毎晩充電すると言う馬鹿らしくも煩わしいルーチンワークから免れられたのが、先ず挙げられるご利益の一つでしょう。

次に挙げられるのが、処理速度です。事前情報を齎らしてくれて有難いとは言え、情報鮮度が求められるガジェット系ユーチューバーの情報は些か出鱈目な部分も目立ちますし、処理能力を言うに動画編集ばかりなのも困りものではあります。知りたいのは Macならでは、Xcodeの性能で、当然先ずインストールしたのもXcodeです。さて、其れに抱いた印象ですが、顕著に速度差の現れるのはiOSシミュレーターです。本ブログにある通り、手元ではゲーム開発が主たりますので、特にアクションゲームで反応が鈍ければ開発速度も比例して鈍まるのが道理、コンパイルも其の速さを体感出来、其の上 Mac内で動くiPhoneが実機に遜色ないと迄は言いませんが、問題無いレベルに収まるのは嬉しくも、本来此れこそあるべき状況なのだとは思います。此れには矢張り中央プロセッサーが内製で、此れも内製のiPhoneのAシリーズと連携が密接に取れているのが大きく寄与していると考えるのが自然でしょう。また、手元の環境では其れ程大きなプログラムは扱わないためiOSシミュレーター程顕著ではありませんが、コンパイルの速度も体感的に向上しているのは、前述通りはっきりと感じられます。処理速度は全面的に向上しているとは言え、特に此の開発環境の面の発展が著しいのは、Apple社の発表のみからでも容易に予想可能で、思っていた通りに的中、我が意を得たりとほくそ笑んだところでもあります。

以上、バッテリーの持ちの良さ、特に Mac特有の開発環境の処理速度の向上、の2点がMacBook Air M1 2020の得られた特筆すべき恩恵です。2021年4月21日のAppleイベント「Spring Loaded」で発表され予約受付の開始された新型iMacと新型iPad ProもM1プロセッサーを心臓部に擁すれば、此の点に於いては期待に違わぬ性能を発揮すると思われ、其の如き世評の浸透も有ってか受付状況も上々で半導体不足も有るにしろ、既に数ヶ月待ちの様相を呈していると漏れ聞きます。

投稿日:
カテゴリー: Mac

iPhone XR発売直前なので一年前ドコモでiPhone Xを発売当日入手した経緯を記し置く

アップル社が去る2018年9月13日午前3時(日本時間)に発表したiPhoneは3種類でした。 その内既に iPhone Xテン の後継機種たる iPhone Xs 及び大画面の iPhone Xs Max は発売されましたが、 iPhone XR のみは発売時期が一月先延べされました。 中にもヒットの予想される其のXR発売日の10月26日を間近に控えた今、 一年前にiPhone Xを当日入手した経緯などを書き残し置こうと思う本記事です

発売日当日入手困難な状況出来と事前予約の存在

Mac開発環境の中では既に現役のiPhone XR
Mac開発環境の中では既に現役のiPhone XR

慣例とも言える発売日当日の行列は、 アップル直営店である Apple表参道店 にも去年2017年11月3日になされ、 ケータイWatch の当日に記事[※1] には、8時の段階で約550人の人々が並んだものと報告されています。 先頭は一週間前の10月28日の夕方から並んだともされており、 当日入手の競争の凄まじさを物語っているかの様です。 此の記事にはアップルのWebサイトで事前予約した場合も記録されており、 当日には長くても20人程度の行列でiPhone Xを受け取れた様子が伺えます。

此の 事前予約 と言うのは発売日の数日前、 2017年10月27日16時1分 から受付が開始されたもので、 当日の受け取りが可能になるものから、 競って予約申請をした様子は アスキー の2017年10月27日の記事[※2] に詳しくあります。 此の記事では予約開始から5分後にはもう お届け予定日 が発売日から遅れる旨の表示がされ、 編集部にも明暗の別れては、準備の重要性が面白おかしく説かれています。 若しかしたら、アップル表参道店に先頭に並んだ人物は 此の事前予約競争に破れた翌日に意を決して店頭に陣取ったのかも知れません。

発売日当日入手の方法

此の記事には、何故アップルのサイトにアクセスしたのか、 其の理由として過去、iPhoneの発売日は、 大手3キャリアのサイトは数十分ほど繋がりにくい状態になることが経験上知られていたからだともされています。 すると、iPhoneを発売当日入手するには以下の三種類が考えられる様です。

  • 大手3キャリアサイトで繋がり難いのを覚悟で数日前に事前予約
  • アップルサイトで数分間で終了する数日前の事前予約競争を勝ち抜く
  • 発売日当日以前から余裕を保ってアップル直営店に並ぶ

処で、本当に此れしか方法は考えられないのでしょうか。 実は手元のiPhone Xは上のどれにも依らない方法で去年発売日当日に入手出来たものです。 アップル直営店に長時間並ぶ迄もなく、事前予約に成功したものですが、 上の事前予約方法二種類にない方法を用いたものです。 知る人ぞ知る、と言う程でもありませんし、 裏技にもなく堂々たる表技ですので、 iPhone XRの発売日当日入手を目論んで本記事を読んでだ向きに、 若しかしたら有用となるかも知れぬ情報を提供したく、 iPhone X発売日当日入手から、ちょうど此処に一年を経て記す処です。

投稿日:
カテゴリー: iPhone

アップル社にMacBook Air 2013のバッテリー交換を依頼する

遅蒔きながら2018年7月5日に macOSSierra から High Sierra にアップデートしてなお意気軒昂、 ストレージなどは何故か余裕が出て、 五年選手となってもまだまだ第一線で活躍してくれるアップル社のMacBook Air 2013には唯一弱点がありました。 バッテリーです。 頃日頓に弱り出したバッテリーは様々な不具合を惹起します。 勿論、絶対的充電容量が減るために外出時に駆動時間も比例して減ります。 起動時には電源アダプタを繋いでいないと其の儘落ちてしまうのも屡々で、外では大いに弱らされます。 一度は起動時の不安定さにデータが飛んだと勘違いしてタイムマシンからの復旧を図ってしまったりもしました。 また残り僅かな充電量では作業中まま急に落ちてしまうのも困りものです。

バッテリーの状態の確認

メニューバーから確認したMacBook Air 2013のバッテリーの状態

MacBookではメニューバーのバッテリーアイコンからバッテリーの状態を確認出来ますから実行すれば、 間もなく交換 と表示されています。 またアップル社のサポートページには Mac ノートブックのバッテリーの充放電回数を調べる なる情報が有り、此れに従って バッテリーの充放電回数を調べる と手元のMacBook Air 2013の充放電回数は 1,093回で、同サポートページに掲載される 充放電回数の上限 表を見れば MacBook Air (11-inch, Mid 2013):1,000 と有る、1,000回を既に超えており、 バッテリー交換は既に必須の状態と考えた方が良い様です。 因みに同サポートページには MacBook Air のモデルを識別する 方法の掲載されたページへのリンクも貼られており、 以下の方法でシリアル番号、機種 ID、部品番号を確認出来るので、 アップル社へバッテリー交換を依頼するにしても、 自力でバッテリーを購入し交換するにしても事前に調べておいた方が良いでしょう。

  • 「この Mac について」ウインドウ
    大半のバージョンの macOS では、コンピュータのシリアル番号とモデル情報を「この Mac について」ウインドウで確認できます。
  • MacBook Air 本体の表面
    MacBook Air の蓋を閉じて裏返します。シリアル番号は、本体底面の規格マークの近くに印字されています。
  • 購入当初の製品パッケージやレシート
    MacBook Air ご購入時の製品パッケージがお手元にある場合は、パッケージのバーコードラベルにシリアル番号が記載されています。
投稿日:
カテゴリー: Mac

HTTPS化したGitHubページのドメイン設定に於けるCNAME運用をCloudFlareで実施する

バージョン管理のクラウドサービスとして台頭し、 先日マイクロソフト社に買収されて話題になった GitHub では、リポジトリをホームページとして公開出来、 頃日にはHTTPS化もワンクリックで可能となったのを受け、 本ブログに記事をものしたのは2018年6月30日でした。

独自ドメインのgithubページをHTTPS化する

さて、此のホームページは GitHub のリポジトリですから Git に依るバージョン管理が可能なのは勿論にて、 むしろ其れでこそ此のサービスを利用する旨味があるのでした。 ローカルでホームページを編集し、 add して commit した上でリモートの GitHubリポジトリに push すればホームページはバージョン管理されながら更新される訳です。

GitHubからの警告メール

処で2018年6月30日の記事の如き設定では問題が惹起されます、 と言うのも GitHubに pushする度に GitHubから Page build warning と題目された警告メールが届くのでした。 其の内容は以下のようなものです。

The page build completed successfully, but returned the following warning for the `gh-pages` branch:

Your site's DNS settings are using a custom subdomain, fuga.hoge.com, that's set up as an A record. We recommend you change this to a CNAME record pointing at [YOUR USERNAME].github.io. For more information, see
Using a custom domain with GitHub Pages
.

大約、 ホームページのビルドには成功しているが、 独自ドメインの設定にAレコードを使っているから、 CNAMEレコードに設定変更してもらえまいか、と言う内容です。 詳細は以下参照との警告メールのリンク先の User Documentation を閲すれば項目名が並びなかなか要領を得難くもあるようですが、 兎にも角にも警告メールには custom subdomain なる文字列が見られますから、 項目の一つを開いてみます。

投稿日:
カテゴリー: git

Swiftでタプル要素で構成される配列から特定のタプルを削除する

データの保ち方については常に頭を悩ませ、試行錯誤する処です。 今回は手元のプログラムの進捗上、異なる型を一まとめにしたデータ単位を配列にして保たせようと試みました。 異なる型を一まとめにするとなると開発環境はiPhoneアプリを拵える為のプログラム言語 Swift では Tupleタプル が適当と考え採用しました。 クラスから生成した一つ一つのインスタンスのデータを其々タプルにまとめ、 其れ等タプルをまとめて配列で扱おう、と言う目論見です。

Swiftのタプル型

あちこち食堂(仮題)開発途中画面
あちこち食堂(仮題)開発途中画面

動的なデータの保たせ方としてタプルのみで構成された配列を採用したのには、 タプルと言うデータはな不可変長ではありますが、 要素に型を混在させられるので、 型の異なる要素をひとまとめにしたい時は便利である、と言う理由です。 Swiftのタプル型については はじはじアプリ体験記 の以下のリンク先ページが役立つかも知れません。

【Swift】タプルの使い方。タプルの宣言と値の格納、取得方法