読者です 読者をやめる 読者になる 読者になる

画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

4年前に作ったAndroidアプリの話

この記事はクソアプリ Advent Calendar 2016 5日目の投稿です。

もう4年くらい前の話になりますが、ASpeedLaterというアプリを作ってGoogle Play(当時はAndroid Marketだった気がする)に公開しました。

play.google.com

アプリのカバー画像はどこかに行った時写真で取った風景を設定していますw

どんなアプリなのか?

このアプリは、Webページを共有する時に選択すると、Evernoteあとで読むというタグを勝手につけて保存する直前までやってくれるアプリです。 Androidのintentの仕組を使ってEvernoteに渡しているので、認証とか全然必要ありません。 Webページのタイトルと、URLと、あとで読むというタグをつけるという情報を渡しています。

なぜ作ったのか?

通勤途中にスマホでいろいろ情報収集している時に、このWebページはちょっとスマホで読むには辛いから後でPCで読もうと思ったら、 Evernoteに共有して保存していました。

それだけだと後でどれを見返せばいいのかわからないので、あとで読むというタグを手作業でつけて保存していました。 手順的には以下の流れです。

  1. このページ後で読みたいなと思う
  2. ブラウザの共有でEvernoteを選択
  3. ページのタイトル、URLが入った状態でEvernoteが開く
  4. あとで読むというタグを手作業で入力
  5. 保存する

これが、このアプリを使うと、1ステップ減らす事が出来ます。

  1. このページ後で読みたいなと思う
  2. ブラウザの共有でASpeedLaterを選択
  3. ページのタイトル、URLが入った状態でEvernoteが開く(あとで読むというタグは自動的に設定されている)
  4. 保存する

この1ステップを減らしたいなという気持ちと、 Androidやってみようという気持ちがあって作りました。 たぶん。

久しぶりに使ってみる

当時はたぶん、Android OSのバージョンが2系だったと思いますが、 久しぶりに使ってみようと思って7.0の端末で動かしてみました。

若干怪しい部分はありましたが、一応あとで読むというタグはついてるようで、 ちょっと感動しました。

最後に

なにかクソアプリはないかと思って考えたところ、 ふと昔に作ったアプリを思い出したので書いてみました。

もうソースコードや鍵がどこに行ったか定かではないので、 アップデートも出来ませんが(特にする気もないですが)、 作ってた当時を少し思い出して感慨深い気持ちになった今日この頃でした。

端末の画像一覧を表示して選択して取得するサンプルを作った

こんな感じ

ソースはこちら

github.com

こちらを参考に作った

github.com

UIのライブラリ、みつけても見た目とか細かい動きとかやりたいことと違ったりするので、参考にしながら作る事が多いなぁ。

studioコマンドとpecoとghqでクローンしてきたリポジトリを簡単にAndroid Studioで開く

今までGitHubAndroidリポジトリをみて、ちょっとAndroid Stdioで開いて中身みてみたいな〜。と思う時は、以下の手順を踏む必要があった。

ghq get <repository>
cd $(ghq list -p | peco) # 実際にはaliasを指定してる
pwd | pbcopy
# Android Studio開く
# File Open→ペーストして開く

常々だるいなーと思ってたのだけど、いろいろあって以下のような手順に改善された

ghq get <repository>
studio $(ghq list -p | peco) # 実際にはaliasを指定してる

なんと、たったの2ステップに改善された!!!結構カジュアルに開けるようになったので最高という感じ。 なお、studioコマンドは事前にAndroid Studioから作っておく必要がある。 作り方はこちら。

qiita.com

Thanks

ぶてい(本当は、zipper)先生にアイディアをもらったのはこれで2回目だった

mapyo.hatenablog.com

git-checkout-this-prが動かなくなっていたのでちょっと直した

mapyo.hatenablog.com

以前ちょっと直したのだけど、最近気がついたら動かなくなってたのでちょっと直した。

gist.github.com

2箇所くらいなおした気がする。そんな今日この頃。

kotlinをやっていく上でAndroidアプリのOSSを集めてみた

kotlinやっていこうという気持ちになったので、OSSで参考になりそうなAndroidアプリとして動いているサンプルを探してみました。まだ全部深くソースまでは見ていません。なんか他に良さげなやつがあったら教えてくだせー。

なお、最新のkotlinのバージョンは

blog.jetbrains.com

1.0.5が最近リリースされたばかりです。

  android-mixed-java-kotlin-project

JetBrails社が管理しているのkotlinサンプル集の中の一つ。

github.com

Bandhook-Kotlin

Last.fmという音楽を共有出来るサービスのクライアントアプリ

github.com

MaterialAudiobookPlayer

音楽再生アプリ

github.com

tachiyomi

フリーでオープンソースな漫画リーダー

github.com

monotweety

シンプルなTwitterクライアント

github.com

サンプル的なやつ

github.com

所感

https://github.com/trending/kotlin?since=monthly

木曜日の夜のテンションで雑にGitHubを検索して探しました。この辺のサンプルを見ながら勉強していこうかなぁという気持ち。たぶん。。。

RecyclerViewでドラッグ&ドロップして入れ替えるサンプル作ってみる

RecyclerViewで、GridLayoutManagerを使って、画像をドラッグ&ドロップして入れ替えるサンプルを作ってみた。こんな感じ。

https://cloud.githubusercontent.com/assets/1322515/19758879/60cca048-9c65-11e6-9e64-4a9135425100.gif

ソースはこちら。

github.com

ItemTouchHelperを使ってる。また、細かいところだけど、長押しした時に画像がちょっと大きくなるアニメーションを入れたり、RecyclerViewからはみ出た時にもちゃんとそのViewが表示されるようにしたりしている。 地味にRecyclerViewの下に表示されているTextViewの上側に表示されている事がわかるだろうか。

clipChildren, clipToPadding, bringToFrontなどが主なキーワード。

これからもちょこちょこサンプルを作っていきたい。

参考にしたサイト

qiita.com

qiita.com

qiita.com

Androidアプリが存在しないサービスのAndroidアプリを作ってみるという試み

こういうの作ってみた。 f:id:mapyo:20161024012907g:plain

ソースはこちらにアップしてある

github.com

タップしても何も起きなくて、単純に一覧を表示するだけ。

いろいろ考えた事

データをどう用意するか?

存在しないアプリを作るので当然、APIなども存在していない。 最初はアプリ側でwebページにアクセスしてスクレイピングしてそれを表示させよう。と考えていた。

mk.hatenablog.com

こんな感じで書くとテストも書けるしめっちゃいいじゃんと思ってた。 けども、冷静に考えると結構だるいなーという気持ちになり、やらなかった。

アプリからスクレイピングをしないとなると、手作業でJSON作るか。という気持ちになってたけど、結構だるいなーという気持ちになり、やめた。

次に、

nelog.jp

URLを入力してくれるだけでデータを作ってくれるやつを見つけて、よさそう。と思ってちょっと使ってみたのだが、JSONの形式が自由に決められなそうだったので、結構だるいなーという気持ちになり、やめた。ちゃんとは調べてない。

次に、

data.gunosy.io

Scrapyというスクレイピング用のフレームワークを発見して、若干使おうとしてみたけど、結構だるいなーという気持ちになり、やめた。しっかりスクレイピングするんだったらこういうのを使った方がよさそう。Rubyでやるんだったら、nokogiriとmechanizeなのかな?

いろいろやろうとして、最終的にだるいなー。という気持ちが高まりつつあったのだけど、以前Node.jsのcheerio-httpcliというやつを使った事を思い出して、使ってみた

mapyo.hatenablog.com

jQueryっぽい感じでデータ取得出来るので結構楽じゃんという事を思い出して、無事JSONを何パターンか作る事が出来た。

スクレイピングする時に作ったソースはこの辺。

https://github.com/mapyo/FindTravel/tree/master/scraping

どういう見た目にするか?

iOSアプリは存在していたので、それを参考にしてAndroidっぽい感じにした。あとは、なるべく実装しやすそうなUIを選んで作ってみた。2パターン作っただけだけど。

期間

GitHubのコミットログを見てると、大体1週間かからないくらいで作ってた。

この後

スクレイピングの部分をAPI作って動くようにして、アプリでそれを受け取るようにして、タップするとChrome Custom Tabsとか使って開くようにすれば動くものが出来そうな気がしなくもない。気分が高まればやってみたい。

出来れば作ったからにはGoogle Playに公開したいなぁという気持ちがあったんだけど、いろいろとまずそうなので、一旦保留。Androidユーザでアプリでとりあえず使いたいという人には需要があるかもしれないけども。。

まとめ

  • 作る時はAPIが公開されていなければスクレイピングが一番だるい
  • iOSアプリが存在しているとそれを参考に出来るのでちょっとはやりやすそう
  • Google Playに公開は出来なさそう
  • いろいろ作る事自体はおもしろい!!
  • アプリのデモの動画をとるのがかなりめんどくさかった

次何かを作るときは、Kotlinを使って作ってみたい気持ち。

Androidアプリが存在しないサービスのAndroidアプリを作ってみる試みとは別に、既にAndroidアプリが存在しているサービスのUIの部分を作ってみる試みもやってみたい。