スマートフォン を ドリル で破壊する

電源が入らなくなったスマートフォンたち。

バッテリー交換したり、してもらったり、保証期限内交換とかしてましたが、もうめんどくさい。

👉 スマホのバッテリーが膨張し始めたときどうするか。 hatena-bookmark

👉 Android端末のバッテリーが膨らんできた場合 hatena-bookmark

今回は、セキュアに破壊して捨てます。

 

🔥 新規購入アイテム

ドリルドライバーです。めっためたにやってやります。

 

🔥 電動ドリルドライバー到着

到着しました。

同梱物。

と説明書でした。

いざ。

「+」のビットでは無理ですね。

ホームセンターに行ってきます。

 

🔥 ドリルビット

種類が多すぎてわからん。

初心者はここらへんかな?

こんな記事。

電動ドリルは、金属を貫通する必要があるので5N・m以上のトルクがあるものが望ましく、ドリルビット(替芯)は鉄工用が必要です。筆者はカインズのACドリルドライバー「KT-01」(3280円)と、直径6mmの鉄工用ドリルビット(2本で578円)を使用しました。

👉 ASCII.jp:定番のHDD破壊方法 これであなたもドリル◯◯ hatena-bookmark

 

🔥 ガラスは強い

18V のドリルドライバーでこの感じ。




ガラスをズボズボっと穴を開けていくには厳しい感じがします。

ガラス部分を貫通させることはやめておくことにします。

カバーを開いてから基盤部分をドリルすることにします。

ヘラ的なものをメルカリや100均で手に入れます。

あとはマイナスドライバーなどをつかってカバーやガラスを含む表面部分をめくっていきます。

 

🔥 内蔵バッテリーは危険

破壊するの危険。

一般ごみと一緒に捨てるのも危険です。




破壊する前にすべて取り外します。

まとめて自治体の指示にしたがって捨てることにします。

 

🔥 ドリルビット到着

これ買いました。

むむ。

硬え。各部品、穴あけに対して強くね ?

 

🔥 新アイテム購入

ロックチェーンも南京錠もガンガン切っちゃうこれ。

チップを狙ってガンガン切断していきます。

これが一番良いですわ。

 

🔥 まとめ

ドリルはスマホやパソコンを破壊するのには適してない。

バッテリーの液漏れや巻き込みなど取り扱いは素人には危ないし、

メモリチップやディスクを確実に貫通できないので

データを救出できる可能性はあると思う。

最後に、スマホ破壊に役立った工具 のみを。

メガネ大事。

ケガをしないように気をつけてください。



【SwiftUI + SwiftData】List のアイテムの Preview

List や LazyVStack などの、

一つの要素の View の #Preview を

簡単に表示するというだけの件。

よくある List 的な View。

その一つの Item の View。


struct ItemView: View {
  var item: Item

  var body: some View {
    HStack {
      Spacer()
      Text("\(item.i)")
      Spacer()
      Text("\(item.s)")
    }
    .font(.largeTitle)
    .monospaced()
    .background()
  }
}

この一つの View だけを #Preview で簡単に表示したい。

 

🤔 #Preview 用の View

Container のセットはより上位の View でセットするのが定石。

 

🤔 使い方

一つ入れ子でクロージャ。


#Preview {
  PreviewOneModelView { item in
    ItemView(item: item)
  }
  .modelContainer(for: Item.self, inMemory: false)
}

 

🤔 参考

Apple 公式サンプルより簡易化して抜粋しました。


public struct ModelPreview<Model: PersistentModel, Content: View>: View {
    var content: (Model) -> Content
    
    public init(@ViewBuilder content: @escaping (Model) -> Content) {
        self.content = content
    }
    
    public var body: some View {
        ZStack {
            PreviewContentView(content: content)
        }
        .backyardBirdsDataContainer(inMemory: true) // * inMemory
    }
    
    struct PreviewContentView: View {
        var content: (Model) -> Content
        
        @Query private var models: [Model]
        @State private var waitedToShowIssue = false
        
        var body: some View {
            if let model = models.first { // * first
                content(model)
            } else {
                ContentUnavailableView {  // * could not get first item
                    Label {
                        Text(verbatim: "Could not load model for previews")
                    } icon: {
                        Image(systemName: "xmark")
                    }
                }
                .opacity(waitedToShowIssue ? 1 : 0)
                .task {
                    Task {
                        try await Task.sleep(for: .seconds(1))
                        waitedToShowIssue = true
                    }
                }
            }
        }
    }
}

👉 sample-backyard-birds/BackyardBirdsData/General/ModelPreview.swift · apple/sample-backyard-birds hatena-bookmark



【SwiftUI】TextField サンプルコード

自在に書けそうで書けない TextField

カスタムスタイルを使うより、

そのまま View メソッドのチェインと入れ子で

記述したほうが自在でわかりやすように思います。




SwiftUI を使う限り常に使うコードですので、

気に入った記述があれば、

Gist と共にメモとして更新していきたいです。