初トランポ購入と維持費についてまとめ

トランポ購入してトランポ購入時の注意点、維持するための費用、使用に際してのトラブルなど知見を得たのでまとめます。

  1. トランポ利用の目的
  2. 購入時に併せて用意する備品
  3. 購入時に解決すべき問題
  4. 販売店の選択
  5. 購入時の注意点
  6. あると便利な備品
  7. バイクの積み込み問題
  8. バイリアスタンド難しい問題
  9. 維持するための費用
  10. 使用に際してのトラブルと対処方法
  11. 納車時のトラブル
  12. 納車後のトラブル

トランポ利用の目的

オートバイのスポーツ走行という趣味を継続するのであれば、レベルに関わらず、トランポ利用を検討しても良いと思います。

維持費が捻出でき、スポーツ走行を趣味として5年、10年と継続するのであれば、安全面、快適性の確保などトランポ利用はメリットがあると思います。
また、トランポがあれば、走行前にタイヤウォーマーを使用することができます。
スポーツ走行を考慮したタイヤ製品では、ウォーマー利用が前提とされているものもあり、ミニバン サイズでもヘルメット、ツナギ、バイク、発電機など積み込むことは可能です。

購入時に併せて用意する備品

初めてトランポ購入時には、いくつかの備品を用意する必要があります。
バイクを積み込むための備品と後述するトランポの備品など、中古車を使用する場合には、現時点の社会的背景も考慮し、ドライブレコーダー、ETCなども利用した方がよいでしょう。

  • 輪留め
  • ラダー(270Kg程度に対応したもの)
  • タイダウン ベルト関連
  • 内板
  • ETC
  • ドライブレコーダー
  • セカンドシート撤去

購入時に解決すべき問題

トランポ購入時に考慮すべき問題は、以下の3点ではないでしょうか?

  1. いくつかの備品を同時に用意する必要がある
  2. ミニバンに荷物を積み込めるように内板などを用意した方が利便性が上がる
  3. タイダウンベルトをどのようにバイクに掛けるのか考える必要がある

この点についてはあれこれ考えるより、実際にトランポを利用している方にアドバイスを求めることが一番だと思います。
スポーツ走行参加時などに、購入予定のトランポを利用されている方に話を聞いてみるのも良いと思います。ただ、話を聞く際にはマナーを守らないと有益な話は聞けないかもしれません。
また、販売店の評判についてヒアリングするのも有益かもしれません。

販売店の選択

トランポ利用する車両をどのような店舗で購入するのか?ということも慎重に検討した方がよい事柄です。
求めるサービスは人によって様々でしょうが、求めているサービスを提供することができる販売店であるのか?ということは見極める必要があります。
中古車販売店のサービス品質は、ピンキリということを理解しておく必要があります。
電話の受け答えもままならない店舗で購入することになれば、不愉快な思いをすることは必至です。
(2024年時点でネット、メールなど利用できない店舗は論外だと思われますし、顧客との連絡にショートメッセージ(SMS)を利用している店舗であれば、リテラシーが低いと判断できるかもしれません。)

「車両販売、整備を主としている店舗」と「整備もできますという店舗」では、サービス品質に歴然とした差があると言わざるを得ません。
電話の応対、工場での作業者の仕事ぶりなどを見学すれば、気づく点もあると思います。

私の失敗談なのですが、「中古車販売店の全てが車両の整備、メンテナンスの対応が可能ではない」ということを理解していませんでした。
現実には、「中古車販売のみを主軸としている店舗」も存在します。
購入した車両を使い続ける上で、メンテナンス、車検の対応などが安定して受けられない、もしくは、現実的には行えない店舗もあるということです。
そのような店舗で「メンテナンス、車検などのアドバイスが可能か?」と確認しても意味がありません。業者としても車両を販売したいわけですから、マイナスイメージに繋がる情報は、まず得られないでしょう。
法律に抵触しない範囲で情報が制限されることが一般的だと思うので、消費者も賢くなる必要があります。

定期的なメンテナンス、車検なども考慮するのであれば、長い付き合いになるはずです。
ストレスなく安定したサービスを依頼したいのであれば、特別な理由がない限り、整備は正規販売ディーラー、もしくはそれに準じる店舗に依頼するのが最善です。

購入時の注意点

トランポ購入時には、構造変更、ISOFIXフック対応についての考慮が必要です。

積載量を増やすためにセカンドシートを取り外した場合などは、車検時に構造変更を行う必要があります。
例えば、「定員を8名→5名に変更する」などの対応です。
構造変更などは同様の経験のあるなしがあるので、ディラーでは慎重な対応をとられる担当者もいます。
いずれにせよ車両を車検場に持ち込む必要があるので、追加の費用が必要となります。
(私の場合は、3万円程度でした)

あと、平成24年以降の車両に関しては、「ISOFIXフック対応」についても確認しておく必要があります。
平成24年以降の車種では、車検時にISOFIXフックが必須とされることがあり、そのため取り外したシートを車検のために保管されている方もいるようです。
そのような保管ができない方は事前にどのように対処するのか考慮しておく必要があります。

あると便利な備品

タイヤウォーマーを利用するためには、以下の備品が必要です。

  • タイヤウォーマー
  • 発電機
  • バイクスタンド(前、後)

また、せっかく荷物が積み込めるのですから、以下のようなものもあると便利です。

  • 電動空気入れ
  • 汎用ケース
  • ガソリン携行缶(バイク、発電機用)
  • 踏み台

バイクの積み込み問題

トランポを用意して最初にぶつかる問題は、”積み込みには練習が必要”ということです。
200Kg程度の車両をステップワゴンなどに積み込むには、練習が必要です。
積み下ろしする人の体格にもよりますが、最初は踏み台を用意することをおすすめします。(踏み台はホームセンターなどで1000円程度で購入できます)

慣れた方であれば積載量にも影響するので小型のラダーがベストですが、小柄な方であれば、ラダーを2本用意することも検討した方が良いかもしれません。

積み込みを行ってみると、最新のリッターSSでもアクセル開度が少ない状態ではラダー上でエンストします。スムーズにバイクを積み込むためにはある程度のアクセル開度が必要ということです。そのため、最初は積み込みになれるため数回は練習が必要ということです。

ラダーをどこにかけるのか?バイクの積み込み位置はどうするのか?若干右寄りに積み込んだ方がその他の荷物が積み込みやすいなど、利用者それぞれ工夫しているポイントがあると思います。
また、バイクを降ろす際もブレーキのみ利用する人やギアをローに入れておいてクラッチで調節する人など様々です。
自分なりのやり方というのを見つける必要あります。

バイク リアスタンド難しい問題

タイヤウォーマーを利用するにはバイクスタンドを利用する必要がありますが、意外に最初はリアのスタンドをかけるのが難しいという壁も存在します。
バイク スタンドの柄が長いタイプを利用すれば軽い力でバイクをリフトさせることができますが、トランポの積載量を考慮すると小型のスタンドを利用せざるを得ないという事情もあり、初心者には少し難易度が高めです。
(一度、失敗すれば二度と失敗しなくなるという程度の難易度です。)
リアスタンドをかける際には、必ずハンドルを左に切っておくことの重要性を理解しておく必要があります。

維持するための費用

私の場合は、中古のステップワゴン(約7万キロ)を約110万程度で購入し、約60万程度でトランポ備品購入、仕様変更にかかりました。
その後、後述する部品交換などのメンテナンスを行ったので、約200万+α程度はかかっていると思います。
(詳細な数字は考えると気が重くなるので、ざっくりとしか考えていない…笑)
ちなみに車検は、構造変更の対応などもあり、約20万円でした。

私の購入後のメンテナンス内容(交換部品)、購入グッズを記しておきます。

  • 交換部品
    • バッテリー交換(約3万円)
    • タイヤ交換
    • リアゲートのセンサー不具合に対応(納車された中古車の不具合)
    • エアダクト部品の交換
    • プラグ、コイル交換
    • 半年ごとのオイル交換
  • 購入したグッズ
    • iPhone スタンド
    • シガーソケット充電(USB)
    • FMトランスミッター
    • サンシェード
    • バイク輪留固定用角材、コルクシート
  • その他
    • 税金(約4万円)
    • 車検費用(約20万円)

使用に際してのトラブルと対処方法

中古車を購入するということは、ある程度の不具合を対処しながら利用する必要があります。この点は最初に理解しておく必要があります。
これが許せないのであれば、新車購入した方が精神衛生上良いと思います。
とりあえず初めてトラブル対処も経験として、安価に楽しむのであれば、中古車を購入することは悪くないと考えています。

そこで得られたノウハウを今後に生かせれば良いとの考えです。
ですが、トラブルはやはりストレスでしかありません。
2つの事例を紹介しておきます。

納車時のトラブル

最初のトラブルは納車当日に経験しました。
納車されたステップワゴンのリアゲートに不具合があり、センサーが誤動作するという問題です。結果、センサーが誤動作するとリモコンキーでロックがかけられないという症状が発生していました。
この問題が厄介だった点は、3回に1回程度しか発生しなかったという点です。
納車時には説明がありませんでしたが、納車整備を行っていた販売店は把握していたはずです。
中古車購入というのはこういうことがあるので、注意が必要です。

ここではトラブル内容のみを記載するだけとしますが、信頼できる販売店と付き合うことの大切さを伝えたいと思います。
納車時の各種登録手続き、書類処理でも様々な問題があり、販売店には対処する能力はないと判断し、保証期間内でしたが、ディーラーでの修理を行うことにしました。
予定外の費用がかかりましたが、精神的な負担はありませんでした。この出来事は、ディーラーを再評価するきっかけになりました。

納車後のトラブル

次のトラブルは納車後3ヶ月で発生しました。
クルマが低速時に、エンジンがガガガッとスムーズに回らないことがあるなという認識はあったのですが、夏の暑い日にとうとう走行中に立ち往生してしまいました。
しばらく駐車後、エンジンがかかってくれたので、無事帰宅することはできましたが、遠出した出先だと大変な思いをしたかもしれません。

トラブルの原因はエア ダクトのジャバラが切れていたため、適切な混合気が作れずにエンジンが不調となっていたというものでした。
エア ダクト部品などは安価な部品ですし、納車時に交換の提案などがあれば良かったと感じますが、これは難しいのでしょうか?
販売店は販売実績が多数あり、ノウハウがあるとのことでしたが、納車時に故障する恐れがある部品の交換等、勧められることは一切ありませんでした。

繰り返しになりますが、SNS、Youtube 等で販促している店舗もあるようですが、信頼の置ける販売店と付き合うことが重要です。
今回は中古車購入を通して、消費者側も賢くなる必要があるし、主体的に判断できる目を持つ必要があると改めて感じました。
トランポ購入を検討されている方の一助になれば幸いです。

Result型、エラーハンドリングのメモ

enum DatabaseError: Error {
    case entryNotFound
    case duplicatedEntry
    case unexpected(reason: String)
}

struct User {
    let id: Int
    let name: String
}

// Result を返すパターン
func findUser() -> Result<User, DatabaseError> {
    // ユーザを検索したが、見つからなかったと仮定する
    return .failure(.entryNotFound)
}

let result = findUser()
switch result {
case .success(_):
    print("success")
case let .failure(error):
    switch error {
    case .entryNotFound:
        print("entry not found")
    case .duplicatedEntry:
        print("duplicated entry")
    case .unexpected(let reason):
        print("unexpected: \(reason)")
    }
}

// throw するパターン
func findUserWithThrowing() throws -> User {
    throw DatabaseError.unexpected(reason: "不適切なユーザ")
//    throw NSError(domain: "error", code: -1, userInfo: nil)
//    return User(id: 1, name: "test user")
}

do {
    let user = try findUserWithThrowing()
} catch DatabaseError.unexpected(let reason) {
    print("unexpected: \(reason)")
}

参考:
Swift エラー処理の種類
【Swift 5.5】詳解 Result

2024年 e-Taxして気づいたこと

数字が全角エラーとなった

入力した項目が全角ではないのに全角エラーとなった箇所があった。(OSX / Safariを使用)
入力した文字種が適切であってもコピペした場合にエラーとなることがあるようです。
数字、空白箇所を再度入力するとエラーを回避することができました。

年に一度しか行わない処理なので、なかなか忘れていることも多いと毎年思うのですが、電子申告の処理手順としては、決算書を作成し、その数字を再度、確定申告書等作成コーナーで入力していることは忘れないようにしておこうと改めて思った。

また、電子申告等データ(拡張子 .xtx)の取得については以下のサイトが参考になった。

参考: 確定申告書を作成コーナーで提出したときの「控えデータ」の取り出しかた

メッセージボックスからダウンロードしたデータ(拡張子 .xtx)から取得する方法もあるようです。

マイナンバー関連のサービスについて

毎年マイナンバー関連のサービスは、増えている印象ですが、控除証明を電子で取得するサービスも拡充されつつあるようです。
ですが、Webからの登録なのに登録可能時間が設定されているサービスもあるなど、まだまだこれからとの印象です。

e-私書箱では、控除証明書等の発行企業と連携することで、マイナポータル経由でデータを一括取得し、申告書の該当項目に自動入力が可能とのこと。

電子証明の有効期限について

備忘録的に電子証明に有効期限があることもメモしておく。

参考: 電子証明の有効期限について

マイナンバーに書き込まれた電子証明書は、5年の有効期限があるとのこと。
忘れないようにしないと思ったのですが、事前に有効期限通知書が送付されるとのこと。

参考: マイナンバーカード 更新手続きについて

うーん。複雑だ。メモっておいても来年には忘れていること必死だな。(笑)


リアにDIABLO SUPERCORSA SC – V4を履いてみた

先日、今年初のサーキット走行に行ってきた。

今回はシーズンオフの間に、前後タイヤ交換、オイル交換、ドライブ スプロケットを1丁落としたので、メンテナンスの変化がどのように感じられるか?数日前から楽しみにしていた。

実際に走行した感想だが、新品タイヤの変化は初級者でも感じられ、単純に安心感が増えて嬉しかった。

ドライブ スプロケットの変更は、久しぶりの走行時には毎度のことだが、ライダーが体を慣らすことが最優先される状態だったので、よくわからなかった。
一度、慣れたら、メーター周りを撮影して、以前との違いを確認したい。

スプロケ変更の結果、フロントが浮く傾向がより強くならないか?心配していたが、あまりその傾向は感じられなかったので、いったんは、安心できた。
80Kg程度のライダーがR1000を袖ケ浦FRWで走らせると、フロントが少し浮く箇所が数カ所あるので、初級者には少し怖い。

昨シーズン通して調整した結果、現在ではフロント、リアともにサスペンションは、MAXまで堅くなってしまった。
フロントはストロークセンサーを確認すると、ストレートエンドでフルボトムしている。
こんなもんなんだろうか?

今回リアのみ V4 にしたのだが、諸経費込みで ¥51,000ー程度だった
ショップの話ではピレリ タイヤは2024年春にまた値上げになるらしい。
1シーズンで消費するタイヤは、フロント1本、リア2本程度なのだが、年間の走行費用を考えると怖くなるので、考えないようにしている。
50歳を過ぎて心配事を増やしている場合ではない。

フロントにV3 SC2を履いているのだが、タイヤ管理なんかしなくても全然減らないので、次回はSC1を試してみようかと考えている。
積極的にタイヤを使えないユーザーでもグリップの恩恵が得られるのであれば、是非試してみたい。

液晶モニタをアームにマウントした件

テレワークとなり、自宅のデスク周りも使い勝手を改善しないとダメだなと思いながら、数年が経ってしまった。

自宅では iMac 27インチを使用していたのだが、テレワークとなり、Macbook 13インチも併用することになった。

これがどうしても使いづらい。

Macbook 13インチを開発目的で利用する際は、外部モニタを利用していたのだが、所有している iMac は外部ディスプレイとして利用することができない。

結果、iMac 27インチ、Macbook 13インチ、液晶モニタ 28インチを机に並べることとなり、一日の作業が終了した際に、液晶モニタを移動させなくてはならないという窮屈なデスク周りとなっていた。

先日、8年間使用していた iMac を引退させて新たに Mac mini(M2)を購入したので、これを機にデスク周りを改善することにした。

キーボードは昨年改善していたので、今回は安物液晶モニター スタンドをモニターアームに変更することとした。

調べてみると液晶モニタを1枚利用するだけであれば、2万円弱のモニターアームで十分のようだ。

早速、エルゴトロン LX デスクマウント モニターアームを注文し、設置の段階になって一つ問題が発覚した

所有している液晶モニタが、VESAマウントという規格に対応していることは確認していたのだが、モニターアーム付属のM4ネジが、所有しているモニタのネジ穴には長すぎるのである

所有しているモニタは、JN-T2888UHDR 28型ワイド UHD液晶ディスプレイ(JAPANNEXT製)なのだが、公開されている仕様には、マウント用ネジの長さについての記載が見当たらない。

液晶ディスプレイ背面のネジ位置

ネジ規格、配置に関しては規格通りということなのだろうが、ネジの長さが合わない。
多分、モニターアームに付属されている 10mm が一般的なのだろうが、所有している液晶モニタには、明らかに長すぎるのである。
しょうがないので、M4 6mm のネジを購入することにした。

M4ネジ 長さ6mm

結果、無事液晶モニタをモニターアームにマウントすることができた。

SwiftUIのサンプルで気づいた点をメモ

新しい技術については、必要に迫れられることがない限り、体系立てた知識の整理ができていません。あまり利用しない技術についてはすぐ忘れてしまうのです。(笑)
SwiftUIについても数年前から、調べては忘れてを繰り返しているのですが、再度、調べる際にメモがあると早く思い出せるようなので、今回もメモしておきます。

【PropertyWrapperの内部変数にアクセス】

PropertyWrapperを定義したプロパティに「_」をつけることで、PropertyWrapperの内部変数にアクセスする。
(ObjCのメンバ変数の表記に似ているので抵抗がありますが、間違いみたいではないのでメモしておきます。)

@Binding var isPresented: Bool

init(isPresented: Binding) {
    self._isPresented = isPresented
}

【$ と projectedValue】

「$」をつけると射影プロパティにアクセスできる。また、内部変数(_をつけた変数)から projectedValue というプロパティへアクセスするのと等価になる。

_isPresented.projectedValue

$isPresented

【SwiftUI Non-constant range 警告】

Non-constant range: argument must be an integer literal」という warning が出力される場合は、以下の様に対処できる。

ForEach(0 ..< myArray.count) { index in
    ...
}
	↓
ForEach(0 ..< myArray.count, id: \.self) { index in
    ...
}

参考:SwiftUI ForEachのNon-constant range警告

【KeyPath の利用】

List など作成する場合に表示データを以下の様な DataModel で表現した場合、初期化パラメータに KeyPath を利用した記述ができる。

struct DataModel: Identifiable {
    let id = UUID()
    let name: String
    var subItems: [DataModel]?
}

  init(
    data: Data,
    children: KeyPath<Data.Element, Data?>
	:
	省略
	:

// パラメータ指定時には以下の様に KeyPath を用いて記述できる
children: \.subItems

マキタ 充電空気入れ 商品選定で混乱した件

以前より「電動空気入れ」というものの存在は知っていましたが、まだまだ一般的ではないのだろうと勝手に解釈していました。
ですが、信頼されているメーカ マキタにも製品があり、価格もこなれているようだったので、購入を検討してみました。
その際、初心者には製品構成が理解できず、商品選定にとても時間を要したので、商品選びのポイントをメモしておきます。

私が購入を検討した2022年時点で、マキタの充電式空気入れは、新機種2モデルと従来機種2モデルの合計4機種があるようでした。
そこで型番を基にネットで平均価格を調べてみたのですが、値段にばらつきがあること、製品型番の意味が分からず、比較検討に時間がかかってしまいました。
例えば、今回購入したのは、「MP100DSH」という充電空気入れなのですが、同じ製品で「MP100DZ」という型番も存在しています。
なぜ同じ製品で商品型番が異なるのか?
これが混乱した点なのですが、要は本体のみの商品と本体と付属品のセット商品かの違いです。

MP100DSH バッテリ、充電器、ケース
MP100DZ 本体のみ

もう一つ商品選定時にとても困った点として、充電空気入れがなぜ4機種も存在するのか?という点です。この点についてメーカの商品情報から、明確な理由が簡単には見つけられず、商品選定にとても時間がかかりました。

いろいろ調べてみると、マキタの商品はバッテリーが数種類あり、それぞれに対応するモデルがあり、複数の機種が存在しているようでした。
今回はバイクのトランポに積むことを考慮し、サイズが一番小さいモデルを選んだのですが、納得して商品を選ぼうとすると、とても苦労しました。
(その他のモデルは、大型バッテリーを利用しており性能は高いが、2.8Kgあり、サイズが大きい。)

商品自体は、値段、性能を考えると大変満足して愛用しています。
ですが、マーケティング的にはどうかと感じます。
こういったプロ向け商品の業界では、一般にはサポートが行われないということも多々感じるので、本来、一般消費者向けへの販売はあまり考慮されていないのかもしれません。

使用して一点気になる点としては、バルブ部分に英式バルブ用のアダプタが取り外せないチェーンで取り付けられている点です。
これではバイク用途には向いていないと思います。
最近のオートバイの前輪部分には、大型のブレーキディスク、サスペンション部品などがあり、タイヤのバルブ周りにはあまりスペースがないため、空気入れ本体のバルブをセットするのに少し苦労を要します。
そのため、英式バルブがチェーンでついていると作業に際しては邪魔になるので、チェーンを取り外して使用しています。

■ MP100DSH [充電式空気入れ 充電器・バッテリー付]
10.8Vリチウムイオンスライドバッテリー対応モデル
最高圧力は830kPa(121PSI、8.3bar)
吐出量は10L/分(200kPa時)
1.1Kg

Mac 起動用USBを作成する方法

iMac 27K (Late 2014) を売却するため、ストレージをディスクユーティリティで初期化しようとして、以前は選択することができたデータの完全削除を行う「セキュリティーオプション」がなくなっていることに気がつきました。

詳細は分かりかねますが、SSDの特性からセキュリティーオプションの提供が行われないように変更されたのかもしれません。SSDについては寿命があるようなので、セキュリティーオプションのような処理を行った場合、SSDの寿命を縮めることになり、そのため、セキュリティーオプションが用意されていないのかもしれません。

SSDの寿命はどれくらい?寿命を縮める原因と対策方法をご紹介

SSDストレージの初期化について調べたところ、以下のポイントが分かりました。

【SSD初期化の問題点】
1) APFSでは、完全削除ができない
2) ディスクユーティリティのセキュリティーオプションがなくなっている

上記の問題に対する対処としては、以下の方法があることが分かりました。

1) HFS+にすることで対処
2) 起動用USBで起動し、ターミナルからコマンドで対処

まず、起動USBを作成し、SSDのフォーマット、セキュリティーオプション相当のコマンド処理を行うことにしました。

対処に際して、いくつか問題があったため、メモしておきます。

【USBの準備】

USBフラッシュドライブは、以下の条件を満たす必要があるようです。

Mac OS 拡張でフォーマットされ、空き容量が 14 GB 以上あるものを用意してください。

私の場合、手持ちのUSBメモリの容量が小さく、上記の条件を満たさなかったので、新しいUSBメモリを買いました。
ノジマでUSBメモリ 16GBを約800円程度でした。

【起動用USB作成手順】

起動用USBを作成するには、まず、macOSをダウンロードし、インストーラーをUSBにコピーします。
今回は、High Sierraをダウンロードし、作業を進めました。

macOS をダウンロードする方法
macOS の起動可能なインストーラを作成する

【問題1: 空白のエスケープ指定】

最初、ダウンロードしたmacOSの createinstallmedia コマンドでUSBにファイルをコピーを試みましたが、参照した例が、空白のエスケープをダブルクォーテションで行っており、認識できていないようだったので、バックスラッシュでエスケープし、対処しました。

(High Sierra で、USBボリューム名が、MyVolumeの場合)

$ sudo /Applications/Install\ macOS\ High\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume --applicationpath /Applications/Install\ macOS\ High\ Sierra.app --nointeraction

【問題2: USBフォーマット問題】

パラメータが適切に認識され、コマンドを発行したところ、以下のエラーが出力されたので、USBをMacOSのファイルフォーマットでフォーマットすることで対処しました。

「このボリュームのフォーマットには大きすぎるため、コピーできません」

対処法:「このボリュームのフォーマットには大きすぎるため、コピーできません」

【問題3: Info.plistのバージョン指定問題】

パラメータ指定、USBのフォーマットに対処しましたが、次は以下のエラーが出力されました。
Info.plistの情報に不適切な指定があるようなので、訂正します。

「USBメモリ is not a valid volume mount point.」

macOS Sierraのインストール 用 USBメモリ作成方法の落とし穴

$ sudo plutil -replace CFBundleShortVersionString -string "12.6.03" /Applications/Install\ macOS\ Sierra.app/Contents/Info.plist

【問題4: disk error number (-69888, 0)問題】

上記の対処を行い、再度コマンドを入力したところ以下のエラーメッセージが出力されました。
このエラーは、Macを再起動し、再度コマンドを入力することで対処できました。

「Error erasing disk error number (-69888, 0)」

【SSDの初期化】

ようやく起動用USBが作成できたので、USB起動し、ターミナルからコマンドでSSDを初期化します。

起動用USBをスロットに差したまま電源を入れれば、USB起動できます。
マウント状態を確認し、必要であればHPS+フォーマットを行い、ストレージを初期化します。

$ diskutil list # マウントされているディスク一覧を表示

Macにマウントされているディスクの状態を確認し、APFSフォーマットされたディスクがあればHPS+にフォーマットします。
その後、diskutil secureErase コマンドでSSDを初期化すれば作業終了です。

1) Apple_APFS を削除、HPS+(Hierarchical File System Plus) にフォーマット

diskutil apfs deleteContainer /dev/disk0s2 # disk0s2 など指定は環境により異なることに注意
diskutil eraseDisk JHFS+ "Untitled" /dev/disk0

2) SSDを初期化

diskutil secureErase 2 /dev/disk0 # 2: 米国国防総省標準の7回の上書き

OSX El Capitan でのHDD完全消去方法

初期化処理は、消去方法によっては数時間を要します。
処理中にMacがスリープすることで処理が停止しているようであれば、以下のコマンドでスリープを抑止します。

$ sudo pmset -a disablesleep 1

【参考】
Mac を売却、譲渡、下取りに出す前にやっておくべきこと

SwiftUI、UIKit の相互利用について

現行のアプリにSwiftUIを用いる場合、UIKitとの相互利用について考慮する必要があるため、調べてみました。

【UIKit → SwiftUI】

UIHostingController クラス

【SwiftUI → UIKit】

UIViewRepresentable プロトコル
UIViewControllerRepresentable プロトコル

SwiftUIでUIKitのUIButtonを利用するサンプルは以下の通り

import SwiftUI

struct CounterView: View {
    @State var text: String = "Button_title"
    
    var body: some View {
        VStack(alignment: .leading) {
            CustomButton(text: $text)
        }
    }
}

struct CustomButton: UIViewRepresentable {
    @Binding var text: String

    func makeUIView(context: Context) -> UIButton {
        let button = UIButton(frame: CGRect(x: 0, y: 0, width: 200, height: 44))
        button.setTitle(self.text, for: .normal)
        button.setTitleColor(.black, for: .normal)
        button.addTarget(context.coordinator, action: #selector(Coordinator.didTapCustomButton(sender:)), for: .touchUpInside)
        return button
    }

    // SwiftUI → UIkit
    // ビューの状態が更新されるたび呼び出される
    func updateUIView(_ uiView: UIButton, context: Context) {
        print("\(#function)")
    }

    static func dismantleUIView(_ uiView: UIButton, coordinator: ()) {
        print("\(#function)")
    }
    
    // UIKit → SwiftUI
    func makeCoordinator() -> Coordinator {
        return Coordinator(button: self)
    }

    class Coordinator {
        var button: CustomButton

        init(button: CustomButton) {
            self.button = button
        }

        @objc func didTapCustomButton(sender: UIButton) {
            print("\(#function)")
        }
    }
}

【参考】

一部の画面だけSwiftUIを使いたいとき
UIViewRepresentable を理解して SwiftUI の足りないところを UIKit で補う

Gutenbergで画像のリンクを削除する方法

WordPressで投稿記事に画像を用いた場合、デフォルトではリンクが作成されますが、リンク情報の削除が分からず、調べたのでメモしておきます。

Gutenberg(バージョン 15.5.1)では、以下の場所に「リンクの削除」があるようです。
リンクの削除を押下し、投稿を更新すれば、リンク情報が削除できます。