すわりんのブログ

androidとかサブカルとかのブログです

android

SharedPreferencesのnameについて

androidで設定を保存する時は SharedPreferencesを使うことが多いと思う。 シグネチャは以下のようになっており Context#getSharedPreferences (String name, int mode) nameの下にkey,value形式で値が保存される仕組み。 なのでkeyは管理したいグループごと…

BottomSheetカスタムあれこれ

supportLibraryにBottomSheetDialogFragmentというのがあります。 これは下からスッと出てくるダイアログもどきで コンテンツの共有やGoogleMapアプリなどで使われています。 このBottomSheetDialogFragmentを使用する際 独自の動作部分をカスタマイズ出来る…

3回調べたらメモに残そう

コードを書く上でparcelableの実装とかdrawableで使用できるタグとか ちょっとしたことだけどそのたびにググってることは結構あると思う。 そういったのはメモに残していつでも取り出せるようにしておくと便利。 そのメモを元にブログの記事に出来たりするし…

Toolbarの戻るボタンを変える

なんてことないネタですが appCompatActivityを継承していれば 以下のメソッドで矢印のアイコンを変更することができる。 supportActionBar?.setHomeAsUpIndicator(resourceID or Drawable) 通常 getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_…

FCMの疎通テスト

Firebaseネタ。 Firebase Notificationsで通知のテストを行いたい時 手元のターミナルからリクエストを送れば ちゃんと送信されます。 これは送る型は決まっているがバックエンドが間に合ってないときや 送る条件を満たすのが煩雑な時に役に立ちます。(やり…

Launcherを複数持つ

androidのちょっとした小ネタ。 開発中では何度も同じ画面を行き来することになるが 階層が深くなると時間のロスも出てきて勿体無い。 そこでAndroidManifest内のActivityタグに intentFilterを記述すれば、そのActivityから立ち上げる事が出来るので 時間の…

RxObserverのテスト

RxJavaの話です Rxでテストをする時はObservableがtestメソッドを持っているのでこの返却値を使います。 val test = Observable.fromArray(1, 2, 3, 4) .filter { it % 2 == 0 } .test() testはTestObserverであり、自身にいくつかのassertionを持っているの…

viewをクリックした際の背景の設定

ButtonやListViewには初めからクリック時の背景が変化しますが そうでないViewに設定する場合。 一番簡単なのは以下のように android:background="?attr/selectableItemBackground" を付けてあげると変化してくれます。 さらに5.0以上ならちゃんとロングクリ…

xmlにプレフィックスを付ける

androidはxmlで画面や背景・ボタンを定義するが 開発が進むと膨大な数になって管理コストが増えていく。 何か解決策ないかと探してると DroidoKaigiのアプリがプレフィックスを付けて管理していたので 取り入れた所ある程度改善できたように思えた。 どんな…

Spinnerの選択はDropDownとDialogがある

表題の通り。 layout.xmlでSpinnerのタグに spinnerModeを指定することで 選択方式をDialogとDropDownを切り替えることができる。 //Dialog <android.support.v7.widget.AppCompatSpinner android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/spinner1" android:spinnerMode="dialog" /> //Spinner </android.support.v7.widget.appcompatspinner>

Databindingでincludeタグを使う

databindingはincludeタグも上手く扱ってくれるが includeされる側もlayoutタグを仕込まないと bindingが機能しない Main.xml <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" > </layout>

見積もりの工数

何度か見積もりをするに辺りポイントだと思ったところを書いてみる。 工数を算出する時気をつける所 最大限取る 直感の1.5倍取る 過去の実績から引かない UIは時間掛かることを念頭に入れておく 最大限取る 想定より工数が多いなと思ってもまずはその工数で…

supportLibraryのリリースノート

android開発ではなくてはならないSupportLibrary。 公式にリリースノートを見ておくと、更新点が分かるので目を通しましょう。 Recent Support Library Revisions | Android Developers さらに詳細を知りたい時は以下のページで変更点の相違が見られます。 h…

layout.xmlで使えるtoolsについておさらい

androidのlayout.xmlにはtoolsというattributeがある。 これを使えばLayoutEditor上でのプレビューがより快適になる。 改めて調べたら知らない記述もあったなので覚え書き。 tools:context=".MainActivity" 指定したActivityのテーマを適応する。 またリンク…

技術書典3の話

chibi-developerというところで 技術書典3に出典してきました。 techbookfest.org 自分はConstraintLayoutのドキュメントと元に 簡単な使い方、そして表紙とDLカードのデザインもやりました。 今回は画像交えてhow-to的な内容だったので 次はがっちりプログ…

ViewPagerにはchildFragmentManagerを使おう

Fragmentの中にViewPagerを設置して ViewPagerにFragmentPageAdapterをセットする という実装をやっていた。 こんなイメージ でFragmentPageAdapter生成時にFragmentManagerを渡すんだけど FragmentPageAdapter(fragmentManager:FragmentManager) Fragmentの…

kotlinとDIについて-1

一回で書ききれる気がしないDIについて まずDIとは DependencyInjectionの略で デザインパターンの一種です。 例えば以下のController#doSomethingのテストをしたい場合 APIClientの実装に依存してしまうため 本来行いたいControllerのテストが困難になって…

アーキテクチャは何故必要なのか

Android界隈ではよくアーキテクチャが話題になっている。 MVCから始まり、MVPやMVVM、AndroidArchitectureなどなどその内容は多岐に渡る。 このアーキテクチャ達を採用することで何が解決出来るのかというと いくつか見えてきた事がある。 まずはレイヤー分…

MasterOfFragmentを読んだよ

巷でFragmentを理解するなら絶対読むべきと言われてやっと読みました。 tatsu-zine.com いやー目からウロコとはこの事ね、ってぐらいタメになった。 ぼんやりとしていた所がハッキリとわかった感じ。 個人的にモヤモヤしてた点 Q.通常のDialogとDialogFragme…

kotlinでJSONパーサーにmoshiを使う

kotlinのOptinalはnullになり得るかが一目で分かり コンパイル時にエラーが出るので素晴らしい。 しかしJSONからオブジェクトを生成する場合 Optinalでないのにnullが入ってしまうケースがある。 JSON-1 { "lastName" : "太郎" } Class data class User( val…