Scribble at 2022-10-31 13:01:07 Last modified: 2022-10-31 22:58:55

添付画像

Material design Hacker News client for Android, uses official HackerNews/API, Dagger for dependency injection and Robolectric for unit testing.

Materialistic for Hacker News

Materialistic is an application for Android to manage posted entries at Hacker News of famous social bookmark service on technology related topics by YCombinator. Unfortunately, the update for this application was terminated and you cannot get it at Google Play, but I love and still use it. There is few shorcoming of this application, but I don't know (or forget) where the exported file of saved entries in an Android smartphone. And no one writes about the path of exported file, so I have to explore the source code of Materialistic at GitHub. Saved entries will be exported as a CSV file they say, but I cannot find a keyword "csv" in its source code...

ということで、困っている。そもそも、「Saved entries at Hacker News (at April 25th, 2022)」という記事を制作したときにエクスポートされた CSV ファイルを使ってリストにコンバートしたはずなのに、どこへファイルが出力されたのか、皆目わからなくなっている。Download にも Document にもないし、/data ディレクトリは、そもそも Android 12 だとファイル・マネージャがアクセスできないようになっている。よって、よく /data/app の下にアプリケーションごとのディレクトリがあるなどと言われたりするが、現在はそんなパスにアクセスなどできないし、無理にアクセスするのはよくない。そもそも、そんな jailbreak でもしなければアクセスできないパスにしか CSV ファイルをエクスポートしていない時点で仕様として破綻しているであろう。それこそ捨ててしまってもいいアプリケーションという断定の根拠になってしまう。だが、上記で書いたように、確かに何らかの方法でエクスポートされた CSV をスマートフォンから取り出したのだ。なんでどこかへ(とりわけ、上記の記事へ)書き留めておかなかったのだろう。そもそも、当サイトで公開している記事の多くは、実は僕自身が忘備録のために書いているようなものなのに。

Materialistic のソース・コードを見ると、

/app/src/main/java/io/github/hidroh/materialistic/data/FavoriteManager.kt

というコードにエクスポートの処理がコーディングしてある。ただし、具体的なパスは他の import されているファイルとの依存関係でしかわからず、はっきり言ってトレースするのが面倒臭くてどうしようもない。かような、複雑すぎる依存関係ゆえに、僕はあまりオブジェクト指向のプログラミングというものを(自分でクラスの定義を使ったりはするものの、インターフェイスや拡張を多用する過度のオブジェクト指向プログラミングは)業務でも好まない。無暗に複雑な依存関係を作っても、却って取り回しが面倒になってミスが増えるだけだからだ。われわれのようなプログラマは一人ですべてを統御するのが効率的であり、オブジェクト指向なんて発想は(発想を借りただけのナウい哲学もそのようだが)しょせんは無能に最適化されただけの道具にすぎない。「メッセージング」と言えば聞こえはいいが、こまごまと処理を分けて、無能がお互いに責任逃れするためのトリックなのだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook