2019-01-01から1年間の記事一覧

Android UIの実装において意識してほしいこと

概要 今回はUIを実装するにあたって常に意識してほしいことをまとめました。 ここでいうUIとは主にレイアウト(xml)のことを指しています。 UIといってもユーザーエクスペリエンスの話がどうという話をするわけではないです。あくまでデザイナーではなく開…

Android Toastは使うべきではない

developer.android.com つい最近 Toast が表示されないというバグを見つけたので共有します。 AndroidのIssueにも起票されていました。 https://issuetracker.google.com/issues/36951147 端末の設定で通知をOFFにしてしまっていると発生します。 Toastを表…

ソースコードなんて綺麗に書く必要はない

はじめに 私は以前まで、受託会社でスマホアプリを開発していましたが、独立してから自社事業に多く参画することになりました。 同じエンジニアリングでも受託会社からのマインドを一新する必要がありました。 それらの経験を経て感じたことを話したいと思い…

Kotlin 正規表現はStringの拡張関数でカプセル化しておく

はじめに 今回は、正規表現に関するおすすめ対処法です。 正規表現で文字列を判定する場合に、Utility・Helperなどのクラスを作成するのはよくみられます。 間違いではないので、別に悪いことではないのですが、Utility・Helperなどのクラスは役割がどの範囲…

Android ImageViewのTintColorを変更する

Xmlから変更 android:tint="@color/hoge" コードから変更 ImageViewのTintColorをコードから変更したい場合バージョンごとに差異があるのでメモです。 API21以上向けの場合は以下のようにしておけば問題なしです。 /** * 画像のTintColorを設定 * * @param c…

モックAPIはjson-serverじゃなくてJSONPlaceholderを使おう

はじめに 以前、 json-server という npmパッケージ を紹介しました。 Jsonを用意するだけで、一通りのCRUDを再現できるという便利なものでした。 しかし、これだけのためにnpmパッケージを管理しなくちゃいけないのかという問題があります。 ちなみに、前回…

モックAPIをjson-serverで作成する

はじめに 設計段階などの検証用途・通信実装を実装してみるなどの学習用途で、通信が絡むモックAPIが必要になる場合があると思います。 その場合にモックAPIを簡易的に作成できないものかと調査したので共有します。 インストール 今回はnpmパッケージを使用…

ファイルツリー構造を表示 tree をインストール

はじめに ファイルツリーの作成方法を紹介します。 ドキュメントを作成する時には重宝しています。 treeをインストール Homebrewでtreeをインストールします。 $ brew install tree 出力 あとは、treeコマンドを入力すれば出力することができます。 # コマン…

Ktlintのフォーマットをビルド時に実行する

Ktlintのフォーマットをビルド時に実行するように設定してみた

npmのインストール

npm

npmインストール $ brew install npm npmの初期設定 $ npm init npmの読み込み プロジェクトにインストールする $ npm install グローバルにインストールする $ npm install -g .gitignore npm install で package.json に示されているパッケージがインスト…

Kotlinのコーディング規約

はじめに 今回は、Kotlinのコーディング規約作成しなきゃと追われている人たちに贈ります。 Kotlin公式コーディングスタイル コーディング規約はJetBrainsがご丁寧に書いてくれています。 プロジェクトごとに規約考えるのではなく、素直にしたがっておくのが…

AndroidStudioフォーマットをマクロで登録する

はじめに 今回は、AndroidStudioでフォーマットのマクロを組む方法を紹介します。 これを設定しておくと、インデントが揃っていなかったり不要なスペースが入っていたり不要なインポートがされているということはおおよそ防ぐことができます。 チームないで…

Android アプリ名を環境ごとに変更する

はじめに 今回はAndroidアプリで環境ごとにアプリ名を変更する方法をご紹介します。 どういったときに必要なのか ここでいう環境というのは主にFlavorのことをさしています。 app/build.gradleで設定するあれです(説明雑)。 本番環境・開発環境・検証用な…

Android File Transfer を利用してMacからAndroidのファイルを参照

はじめに Android端末とMacでのファイルのやりとりについて紹介します。 いままで、MacからAndroidAndroidとMacのファイルの Android端末とPC間でのファイル移動は、クラウドストレージや共有フォルダの利用、USBケーブルでの直接接続などいろいろな方法があ…

Android RecyclerView で空の状態のViewを表示するAdapterDataObserverを作成

はじめに 今回は、RecyclerViewが空の状態に別のViewを表示する方法をご紹介します。 ListViewのEmptyViewみたいなものを想像していただければいいと思います。 ゴールとしては、RecyclerViewに setEmptyView(View) を呼び出すだけで設定できるまでを目指し…

Android エミュレータのギャラリーに画像を追加する

はじめに Androidエミュレータで画像を選択して送信 とか プロフィール画像を設定する とか、、 実機ではすでに撮影済みの画像を使えばいいのですが、Androidエミュレータだとデフォルトだと画像が何もない状態なので、今回はそんなエミュレータに画像を追加…

Android Viewの表示切り替えをスッキリさせる

はじめに Android ではご存知の通り、Viewの表示切り替えは ViewのVisibility を切り替えてあげれば変更することができます。 Visibility 状態 View.VISIBLE 表示(デフォルト) View.INVISIBLE 不可視化(見えなくなるが、サイズは維持される) View.GONE …

Android ViewからActivityを取得する

はじめに 今回はViewからActivityを取得する方法を紹介します。 ViewからActivityを取得する必要があるケースというのはあまり出会うことはないかもしれませんが、、 ついこの間、必要になったことがあったのでこちらに残しておこうかと思います。 方法 View…

git pullのとき常にpruneするための設定

概要 今回は、git pull する際に常に--pruneを有効にする方法を紹介します。 これはリモートブランチからすでに消されているブランチをローカルに残さないようにするためのオブションです。 方法 すべてのリポジトリに対して有効にする場合 $ git config --g…

Dagger2 vs Koin

概要 DIライブラリについて比較する DIライブラリ https://www.slideshare.net/Jintin1018/dagger-2-vs-koin https://blog.moyuru.io/post/tech/2018/10/daggertokoin/ Dagger2 利点 Runtimeエラーが発生しない 処理速度が早い 欠点 学習コスト高い コンパイ…

ViewBinding vs DataBinding vs Android Kotlin Extensions

概要 UIインスタンスの生成において、以下の3つを比較する。 ViewBinding DataBinding Android Kotlin Extensions ViewBinding https://developer.android.com/topic/libraries/view-binding Android JetPack Android Studio 3.6 Canary 11+ から使用できる…

Android SingleActivity vs MultiActivity

SingleActivityの利点 バックキー制御がシンプルになる Fragmentからのバックキー制御もコールバックが用意されたので簡単になった Android Architecture Component Navigationが使える deepLinkに対応している Fragment・Dialogの画面遷移がシンプルになる …

Android デザイナーに用意してもらうアプリアイコン一覧

はじめに Androidのアイコンは結局どんなサイズを用意すればいいのかという質問をよくデザイナーの方にされるのでこちらに記録しておきます。 結論 以下の2つのアイコンを用意してもらえれば、ImageAssetでインポートできます。 developer.android.com ホー…

Android アプリ通知のアイコンは"白と透過"で用意する

はじめに 今回はアプリの通知(Push通知)のスモールアイコンについて解説したいと思います。 このスモールアイコンですが、実は奥が深くバージョン差異が多いので、注意が必要です。 通知に関する概要のリンクを貼っておきます。 developer.android.com ス…

Firebase Cloud Firestore の関連データは Reference を使う

はじめに Firebase Cloud Firestore の関連データを扱う場合は Reference型 を使いましょう。 Reference型とは FirestoreのCollectionReference・DocumentReferenceのことで、以下のドキュメントの「Cloud Firestore の参照」のことです。 firebase.google.c…

Android SharedPreference のデータを実機で変更する方法

はじめに 以前、SharedPreferenceのデータを確認する方法を紹介しました。 今回はそれを実機で確認することもできるので紹介します。 qoopmk.hatenablog.jp Android-Hyperionを導入 Android-Hyperionというライブラリを使うと実機で確認できる上、データを動…

Android Jetpack Room データをGUIで確認する方法

はじめに 今回は、Android Jetpackライブラリの一つであるRoomをGUIで確認する方法を紹介します。 Roomとは、AndroidのSQLiteをより使いやすくしてくれているORMラッパーライブラリの一種です。 developer.android.com SQLiteのファイルを抽出する Roomを使…

Android SharedPreference のデータを確認する方法

はじめに 今回は、Android SharedPreference のデータを確認する方法を紹介します。 AndroidStudio DeviceFileExplorerで確認 SharedPreferenceはAndroidStudioのDeviceFileExplorerで確認することができます。 DeviceFileExplorerについては公式ドキュメン…

Android Jetpack Navigation コピペで使える画面遷移アニメーション

はじめに アニメーションファイルを作ろうとして毎回忘れてしまうため、備忘録として残しておきます。 また、合わせてAndroid JetPack Navigationでの設定サンプルも記載しておきます。アニメーションファイル自体はAndroid JetPack Navigationでなくても使…

GitHub に載せる GIF 画像は LICEcap でサクッと作成

はじめに アニメーションなどのUIを修正して、PullRequestを出す場合など、今までは録画して自らGifに変換する必要がありました。 これはとても面倒なので、スクショ並みに簡単に作成できる LICEcap を紹介します。 インストール 以下のページに移動して、ダ…