Foursquare Android SDK Yak Shaving

その昔 Rustica という単純な Android アプリをつくったことがあった。 Foursquare の venue に単にチェックインするだけの機能をもつもの。 Foursquare のチェックインアプリ (Swarm)) は、ステッカーをつけたりいっしょにいる誰かをタグしたりと多機能なのだが、ただチェックインするだけにしてはタップ数が2つあり面倒だった。 Rustica はそこを1タップにしようとしたものだった。

5年くらい放置していた、というか忘れていたら @miyagawa から質問が来ていた:

少し時間ができ、またモバイルアプリの勘を鈍らせたくないという気持ちもあり、見てみることにした。そこから広がる Yak shaving..

調査

そもそも コード が古すぎて、いまの Android Studio ではまともにビルドできないところから始まる

1. Unable to build

いろいろ試したところ、どうやら https://github.com/foursquare/foursquare-android-oauth の中で参照しているリソースとアプリのリソースが競合する。あとで GitHub Issue を書く… Workaround としては以下のリンクを参考にした (TODO: あとで書く)。

2. HTTP 通信

さいきんの Android OS では、暗号化されていない HTTP で通信すると通信が通らない。どうやら https://github.com/foursquare/foursquare-android-oauth 内の WebView では HTTP で通信しているようで、そこが原因だった。

現状

ビルドは通り、起動するようになった。で、ようやく venue のリストの精度が悪い問題を調査できる、というところまできて一旦休憩… 🍵 ついでだから Jetpack Compose で書き直すかという気にもなった。あと Kotlin