Foursquare Android SDK Yak Shaving
その昔 Rustica という単純な Android アプリをつくったことがあった。 Foursquare の venue に単にチェックインするだけの機能をもつもの。 Foursquare のチェックインアプリ (Swarm)) は、ステッカーをつけたりいっしょにいる誰かをタグしたりと多機能なのだが、ただチェックインするだけにしてはタップ数が2つあり面倒だった。 Rustica はそこを1タップにしようとしたものだった。
5年くらい放置していた、というか忘れていたら @miyagawa から質問が来ていた:
@mootoh クライアント側ではどうにもならないのかもですが、ここ数日 Rustica で出てくるリストのレベルがだいぶ落ちてます。近くのベニューがほとんどでない。APIのレスポンスが変わったんすかね
— Tatsuhiko Miyagawa (@miyagawa) January 29, 2020
少し時間ができ、またモバイルアプリの勘を鈍らせたくないという気持ちもあり、見てみることにした。そこから広がる 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