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

念願の夢だったクソアプリ EasterEgg Neko Atsume Launcherをリリースしました🐱

Android Android N

こ、これで俺も...ついに...個人アプリ開発者...だぜ?

そうです、ついに!念願の夢だったクソアプリをリリースできました

EasterEgg Neko Atsume Launcher です!

play.google.com

だいたいこんな感じのアプリです

なんだそれ?

Android NのEasterEggである ねこあつめもどきの一覧画面をランチャーアイコンで簡単に起動できるアプリだよー

詳しい説明は以下の記事とか読むとわかるよ

www.dream-seed.com

とにかく説明は省くけど、集めたの一覧画面が簡単に起動できるんだよー

アプリのサイズなんと 34KB!?

めっちゃアプリのサイズ軽い

すごいぞ

minSdkVersion 24の世界!?

そしてこのアプリ minSdkVersion 24ですよ

最新のAPI使いたい放題ですよ (誰もアプリの中で使ってるとは言ってない

あ、そう minSdkVersion 24なのでAndroid N以上しかインストールできないアプリです

Githubにコード置いてあるよ

Githubにアプリのコード置いてあります

github.com

まとめ

Android Nはいいぞ

フルスクラッチ(写経)でRadioGroupとRadioButtonを実装してみた

Android

コード読むの大好きなので、Android 標準で用意されているViewをフルスクラッチで作ってみる(写経)試みをしてみた。

んで、今回はRadioGroupとRadioButtonをフルスクラッチで実装してみた。

フルスクラッチと言っても、「動機、実装前に気になったこと」の部分をカバーできる範囲の最低限の実装をしました。

そこら辺の理由やそもそもどんな手順で作業したのかみたいなのは、別途まとめたいと思ってます。

とりあえず成果はGithubに置いてあります。本記事に書いてあることもだいたいREADMEにまとめてます。

github.com

動機、実装前に気になったこと

以下に書いてあることへの回答的なことはGithubのREADMEにまとまってるので、そちらの参照してください。

  • RadioGroupとRadioButtonみたいにRadioButtonにClickListenerみたいなの設定しなくても、親のListenerに通知が来るって実装はどうやってるのか気になった
  • RadioButtonにidを振ってなくても各Buttonがそれぞれ別々のButtonとして認識されているのはどうやってるのか気になった

実装してみてわかったこと

  • 動的にViewのidを生成するならView.generateViewIdを使うのが良さそう
  • ViewGroup側で子Viewのクリックイベント等をハンドリングしたい場合に、ListenerをセットしてもいいがListenerが上書きされる危険性はある
  • なので子ViewもCustom Viewにして別口のListenerを作る or setじゃなくてadd Listener的なものがあればそっちにセットするほうがいい
  • 特にRadioGroupとRadioButtonみたいに親と子が密接に関連してるものは
  • RadioGroupとRadioButtonは親と子が密接?に関連しているViewを作る場合のノウハウを学ぶのに最適だった
  • ViewGroup.OnHierarchyChangeListener使えばCustom GroupView作って色々できそう

まとめ

コードリーディング + 実装という最強の2要素が詰まった作業なのでやってみて良かった。

いつも自分が何がなく使っているViewがどう実装されているかを理解できるし、さらに自分が実装する時にも役立ちそうな知識が満載なので面白い。

UXという言葉を使うべきではない。具体的に言ってくれ

特に難しい話をするつもりはない。

「ここのUXが悪い」とか「UX大事、うん」とか...そもそもUXという言葉でまとめるべきではないことに気をつけたい。

UX、UX!!とか連呼してる人はそもそも脇に置いておいて...たまにUXとか言っちゃうそこのあなた。

私もだけど。

具体的な表現で会話をしよう

UXという抽象的な言葉よりももっと具体的な言葉で言ってみる努力をするべき。

極端な例だが例えば

「ここのボタンは小さいとUXが悪いよね」

ではなく

「ここのボタンは小さいと押しにくいよね」

みたいな感じ。

「UX」という部分を具体的に何を指しているのか明確にするべき。

いやまあ、UXとか言っても通じる時はあるんだけどね...

JSON1 Extensionを有効にしたSQLiteをbuildする

sqlite

SQLite 3.9から導入されたJSON1 Extensionを有効にしたSQLiteをbuildする方法を書いておく。

brewからinstallしたSQLiteだと有効になっていないっぽいので、sourceからbuildして有効にしてみた。

JSON1 Extensionの使い方は、公式のDocumentや他のQiitaの記事を見るといい。

JSON1 Extensionを有効にしたSQLiteをbuildする

SQLiteのversionはversion 3.13.0を使用し、Macでbuildすることを前提としてます。

以下のコマンドを実行すれば、JSON1 Extensionが有効になったsqlite3が生成される。

wget https://www.sqlite.org/2016/sqlite-autoconf-3130000.tar.gz
tar zxvf sqlite-autoconf-3130000.tar.gz
cd sqlite-autoconf-3130000
./configure --enable-json1 # JSON1 Extensionを有効にする
make

ソースコードwgetで取得してますが、以下からダウンロードもできます。

https://www.sqlite.org/download.html

「黒帯エンジニアが教えるプロの技術 Android開発の教科書」を読んだので雑に感想

Android

最近出版された「黒帯エンジニアが教えるプロの技術 Android開発の教科書」を読んだので雑に感想とかなんか書いておく。

黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)

黒帯エンジニアが教えるプロの技術 Android開発の教科書 (ヤフー黒帯シリーズ)

これに合わせて昔に書いたAndroidの書籍について書いた記事も軽くだが書き直した。

hack-it-iron.hatenablog.com

書いてある中身的な評価

雑にいくぞー

  • 中級者向けって感じで書いているだろうからActivityとは?とかそこら辺の基礎は短くし、もっと大事なことに注力してる感あって良かった
  • ある程度Androidアプリを一から数回書いたことがある人ならパラパラ読みできる感じ
  • 著者たちが日々開発している中で学んだ知識やTips、便利なクラス等の紹介がちょこちょこ入っててそれはめっちゃ勉強になった

書籍内に載っているSample CodeがGithubに置いてあることの幸せ

書籍内に載っているSample CodeがGithubに置いてあることの幸せにハンパない。

github.com

せっかくGithub上に公開してあるのだから、フィードバックやSample Codeの中であまりよくなさそうな部分の修正等をPull Requestで受け付けて欲しい!という身勝手な要望をボソボソ言ってたら、READMEとかにフィードバックする際の例を書いてくれたりしてくれてとても嬉しかった!

いやまあ私が言ったから書いたかどうかはあれですけど...

Androidを学ぶ上で開発のキモは何なのか

Androidを学ぶ上で開発のキモは何なのか、みたいな私が感じてる悩ましい課題へのアプローチも良かった。

ただAndroidだけの技術を解説するのではなく、いいLibraryやトレンド的なRxJava、設計(MVVM、MVP)等についてもさっくり触れているのは良かった。

AndroidSDKの仕組みだけを理解すれば開発は確かにできるかもしれないが、チーム開発となると環境によってAndroid開発と言っても本当に様々な状態になってる。

Rxバリバリ、Data BindingでMVVMやー、Kotlinで行くぞい!等々。みんなちがって、みんないい なのです。

難しいとは思うけどAndroidのこともおさえつつ、最近の開発トレンド的なこともおさえられる書籍が増えてくれると嬉しいかなー。

書いている人が勉強会とかで会える人達なので感謝しやすい

全員かどうかはわからないけど書いている著者の皆さんに、東京周辺で行われるAndroidの勉強会なら会える気がするので感謝の気持ちが伝えやすい!

いやまあまだ感謝の気持ちを伝えてないので、どこかでお会いしたらしますよー

まとめ

私は文章書くのが苦手なので絶対これ書くの無理だなーとか思いながら読んでました。

学んだ知識を文字に起こして世に出すことはけして簡単なことではないので、とても素晴らしいものが出版されたと思う。

感謝感謝😊