画竜点睛を衝く@mapyo

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

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

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の部分を作ってみる試みもやってみたい。

LOGICOOL ワイヤレストラックボール M570tを買った

今までマウスなくてもMacについてあるトラックパッドでやっていけるやろと思ってた。

Android Studioを使ってるとマウスカーソルでぽちぽちする必要が出てきたり、Androidエミュレータをさわってるとそもそもトラックパッド使わないと操作出来なかったりでトラックパッドを使う機会が増えてきた。

トラックパッドも十分使いやすいんだけど、ぽちぽちぽちぽちやってるとどうしても指が痛くなってきてしまう。なので、マウスを買った。

マウスと一口に言っていろいろあって、どれ買おうかなぁというのでいろいろ悩んだ。今まで使ったことのないタイプを買ってみようということで思い切って買った。

LOGICOOL ワイヤレストラックボール M570t

LOGICOOL ワイヤレストラックボール M570t

よかった事

  • ボールをぐりぐりするだけでマウスよりも楽に移動できる
  • 指が痛くならない
  • ボールは思ったより使いやすかった

所感

レシーバでMacの2つしかないUSBポートが1つ埋まってしまって、スマホをケーブルで繋げなくなってしまったのでUSBハブを買った

電源ついてるやつでいい感じ

そんな今日この頃