すわりんのブログ

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

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

SharedPreferencesのnameについて

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

kotlinのMapよる委譲に可能性を見出した

Storing Properties in a Map Delegated Properties - Kotlin Programming Language クラスのプロパティをMap<String,*>により取得する記述方法。 //定義:各プロパティの値をmapから取得している class User(val map: Map<String, Any?>) { val name: String by map val age: Int by </string,></string,*>…

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から立ち上げる事が出来るので 時間の…

あなたはJavaでオブジェクト指向開発ができないのかを読んだよ

寝る前にコツコツと読みました。 なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング作者: 小森裕介,アクロクエストテクノロジー株式会社出版社/メーカー: 技術評論社発売日: 2004/12/01メディア: 単行本購入: 10…

RxでHotObservableとFilter

RxにはHotObservableとColdObservableがある。 HotObservableについてはそんなもんなあるなーぐらいで 実際に使う機会がなく、あまり理解できてなかった。 rxの使用用途がretrofitを介してのAPIとのやりとりが主だったのも大きい。 んで触る必要が出てきたの…

kotlinでrawStringを使う

kotlinです。 開発中にAPIは実装されていなけど、返すjsonのフォーマットは決まっている時に パースを試したい時などがあると思います。 そういう時はjsonをコード内で直接書いてパース出来るかテストしてたのですが ダブルクオーテーションのエスケープが面…

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のアプリがプレフィックスを付けて管理していたので 取り入れた所ある程度改善できたように思えた。 どんな…

VIPERについてダラダラ書く

現在AndroidをVIPERというアーキテクチャーで書いてます。 元々はiOSのもらしいけど合わせる形で採用しました。 iOS Project Architecture : Using VIPER [和訳] - Qiita android:kotlin,iOS:swiftで書くわけですが 似てる部分もあると言われる2つの言語。 …

プリンシプルオブプログラミングを読みました

一通り読み終えた。 プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則作者: 上田勲出版社/メーカー: 秀和システム発売日: 2017/04/27メディア: Kindle版この商品を含むブログを見る 800冊以上の技術書を読んだ著者による …

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>

ITエンジニアのための「人生戦略」の教科書を読んだ

ITエンジニアのための「人生戦略」の教科書 ~技術を武器に、充実した人生を送るための「ビジネス」と「マインドセット」~作者: 平城寿出版社/メーカー: マイナビ出版発売日: 2017/02/23メディア: 単行本(ソフトカバー)この商品を含むブログを見る 読みまし…

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の…

某打ち上げに参加してきた

とある会社の飲み会に参加してきた。 飲み会と思いきや、リリースの打ち上げ&送別会だったので 完全に場違いだったけど気にしない\(^o^)/ ジンギスカンが美味で野菜と肉がバランスよく取れてすばらなチョイスでした。 さて飲み会ではチーム一丸となって取…

APIのエラーをいかに捌くか

APIのエラーを表現する時にclassかexceptionかenumか迷っていたのでメモ。 APIと通信すると正常系と異常系の処理について考える必要がある。 さらに異常系は2種類あり APIとの通信は成功しているがパラメーター過不足などのAPIのエラー URLが存在しない、回…

kotlinとDIについて-1

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

2017夏アニメの感想

サブカルも取り扱うので夏アニメの感想でも書いてみよう。 メイドインアビス 原作も読んでいたので、この世界観しっかり作れるのか不安だった作品。 そんな不安を裏切り、作り込みが半端なかった。 背景が背景の書き込みが綿密すぎる。 原作の補完にもなった…

便利なChrome拡張,SessionBuddyでウェブページを整理する

プロジェクトのドキュメントやgitのリポジトリは 大体ウェブページに置かれているので 一括して開きたい。 あとプロジェクトが増えてくると 管理を煩雑になるので、プロジェクトごとに整理したくなってきた。 そんな中割りと欲求を満たせるChrome拡張があっ…

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

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