くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

Fragment で Snackbar を表示させるHelperメソッドを書いた。

暗記とか苦手なので書く。 重要なのは、 android.R.id.content で Activity の乗ってる View を取ってきてそこに表示してる fun Fragment.showSnackbar( text: String, @BaseTransientBottomBar.Duration length: Int = Snackbar.LENGTH_SHORT ) { Snackbar.…

Gson で List<*> なクラスをJsonからパースするときにシュッと処理してくれる拡張関数を書いた。

ソリューションはあるけど、拡張関数でシュッと解決してくれるものがググっても出てこなかったので書きました。 ソースコード inline fun <reified T> Gson.fromJson( json: String ): T { return this.fromJson( json, object : TypeToken<T>() {}.type ) } 一番シュッと</t></reified>…

横に長くて解像度の良いディスプレイを買った。MacBook Pro の外部ディスプレイとして使ってます。 LCD-GCWQ341XDB

横に長くて解像度の良いディスプレイを書いました。 買ったやつの特徴 横に広い 解像度が高い USB-C に対応してる HDMI に対応してる リモコン付き Amazonで翌日に届く 一応、ゲーミングとか色がなんちゃらとか書いてありますが興味なのでどうでもいいです。…

Android アプリでOS組み込みの音声合成エンジンを使ってTextToSpeechを行う

この前ハッカソンで Android アプリでOS組み込みの音声合成エンジンを使って TextToSpeechを実装してたのでその時の知見を共有します。 実装方法 1. AndroidFramework に含まれている TextToSpeech Class を利用するだけです。 developer.android.com 2. ラ…

Android 10 から導入された Settings Panels を使ってみた。仕組みも少し見てみた。

Android 10 から設定画面をユーザーアプリが起動しているときに画面を遷移せずに表示することができるようになっています。 今回はこちらようにアプリ内に設定画面の一部を表示してみたいと思います。 ここでは、設定アプリの一部を表示と書きましたが、正確…

Android 端末で Suica に触れたときにアプリが起動してUIDを読み取れるようにする

この記事を開いた皆さんは、タイトルのように Android 端末で Suica に触れたときにアプリが起動してUIDを読み取ろうとしている奇特な人だと思います。 NfcAdapter と言うクラスを利用することであれこれをお任せすることができます。 ここで重要になってく…

Androidx の認証用ライブラリ, biometric を使ってみた。

重要な情報にユーザーがアクセスする前には生体認証なりを挟みたいことがよくあると思います。 そこで、今回rc01がリリースされたばかりの biometricを使って少し遊んでみました。ので、その記録を書いてみたいと思います。 実行結果 以下のように指紋認証等…

体重を計測したらTwitterに自分の体重を投稿するように設定する。

体重を計測したらTwitterに自分の体重を投稿したくなりませんか?私は一回だけなりました。 ということで今回は書いていきます。 使うもの withing の体重計(私は、 body cardio ってやつを使いました) Twitter IFTTT 実際のところIFTTTにwithing の体重計…

Gradle Custom Task with kotlin を実行するときに 引数を渡したり実行結果を読み取る。

Gradle Task に引数を渡す Gradle Task を実行するときに引数を渡したいときがあると思います。 build.gradle内で完結している場合には、以下のように lateinit var な変数を定義すれば値を渡すことができます。 lateinit var userName: String さて、build.…

AirPods を購入して2年ぐらいが経過したのでバッテリーの容量を計測してみた。

AirPods というAppleより販売されている完全無線型イヤホンを利用しています。 Apple AirPods with Charging Case (最新モデル)出版社/メーカー: Apple(アップル)発売日: 2019/03/27メディア: エレクトロニクスこの商品を含むブログを見る 発売当初は「耳か…

無線ノイキャンイヤホンWF1000-XM3を使い倒してみた@大学、新幹線、オフィス、京都観光

ソニーから最近発売開始され人気を集めている無線ノイキャンイヤホン WF1000-XM3 を使い倒してみたので感想記事を書いていきます。 WF1000-XM3 とは? 強力なノイズキャンセリングを搭載したAirPodsのような無線イヤホンです。 Amazon などで購入でき、色は…

iPad に入っているアプリを棚卸してみる。

iPad に入っているアプリを書き出してみる。 特によく使うやつ Twitter Facebook はてなブックマーク Onenote Goodnote 5 メルカリ 写真系 Lightroom Google Photo Amazon prime photo OneDrive Shebox 動画見る系 Torne Mobile Video and TV side Youtube …

adb shell からURlを指定してIntentを飛ばす

am コマンドの -d オプションで指定すれば行けそう am start -a android.intent.action.VIEW -d "https://google.com"

特定の拡張子を持つファイルをリストアップするコマンド

find コマンドを使えばいけるらしい 例えば、 csv ファイルに絞るとこんな感じ find . -name '*csv'

Circle CI の Config ファイルの検証をローカルで実行する。

Circle CI の .circleci/config.yaml をローカルで検証したくないですか? Step 1. Install Circle Ci CLI Circle CI にはローカルで実行できるようにCLI Tool が存在します。 また、Homebrew から導入できるようになっているので以下のコマンドを叩くだけで…

RecyclerView.ListAdapter でアイテム挿入後に何かしたい!非同期辛い!

RecyclerView を使って何かする時に ListAdapter を使ってますか? DIFFUtil を使うときに合わせて使うことが多いかなと思います。 問題点 submitList しても非同期で挿入されるため、 SubmitList() した直後にRecyclerView(Adapter) に対してあれこれすると…

NodeJS で Json のAPIを叩いてみる

コード const fetch = require('node-fetch') fetch("http://weather.livedoor.com/forecast/webservice/json/v1?city=130010") .then(response => { return response.json() }).then(json => { console.log(json.description.text) }) 結果

LiveData-Kotlin Extension を試してみた

基本的には、 Transformations の拡張関数の集合です。 implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.1.0-alpha04" class MainActivityViewModel : ViewModel() { private val source1LiveData = Source1Livedata() // 同じものが流れてき…

TypeScript で コードの変更を検知して自動で Compile -> Unit Test までを実行する

TypeScript を書いてて Live Unit Testing みたいなのを やってみたいですよね。 Live Unit Testing とは、コードの変更を検知して即時に Unit Test を実行するものです。 さて、やっていきましょう 環境構築 typescript mocha (- chai) 適当に TypeScript …

20卒地方Fラン大のウェブ系就活記録

あなたは誰? 基本情報 くぅ寿司大好き 地方にあるFラン私立情報系に通う3回生 パソコン大好き 中学生の頃からプログラミングが大好きで、高校生の時にPHPやWindows Phone 向けアプリの開発に熱中、C#にハマりMicrosoft信者に、大学生の時にXamarinのイベン…

Android Architecture Components 勉強会 #5 に参加してきた。

せっかく東京にいるので、ということで AAC の勉強会に参加してきました。 Google で開催されてました。 GDE な人がたくさんいており技術難易度も結構高めだった気がします。 感想 めちゃめちゃ勉強になりました。 AAC は普段使っていてノリで色々しているの…

Power Assert を TypeScript で書いてる時に has no default export って言われる件について。

Type Script よくわからないのでとりあえず解決方法だけ書く。 npm install hoge~ は済んでる前提。 以下のコードの時にダメって言われた。 import assert from 'power-assert' 動くコード import * as assert from 'power-assert'

Azure Functions を NodeJS で動かす時には NodeJS のバージョンを8 or 10 にしなければいけない

NodeJS の LTS は 6,8,10 がリリースされています。 nodejs.org Azure Functions は開発ポリシーでLTS しかサポートされないそうです。 github.com 解決策 NodeJS のバージョンをNVM とかで切り替えれば良さそうですね。

Gradle 公式が出している kotlin-dsl のサンプル集リポジトリが良さそう

Kotlin-DSL を書こうとしていて色々つまづくことがあります。そんな時に参考にすると良さそうなリポジトリ。 プレーンなやつからBuildSrc を利用したりするやつまである程度揃ってる。 github.com

Spek/Kotlin を使っている時に LiveData を利用した Unit Test を記述する

Live Data を使ったコードのテストを記述する場合にはメインスレッドで実行しなければいけない Live data をUnit Test であれこれする時には、 MainThread で実行しなければいけないという制限が問題になります。 具体的には、 LiveData の setValue メソッ…

GMO ペパボでインターンシップをしていました。やっていき💪

タイトルの通り最近何かと話題なGMO ペパボでインターンシップをしていました。 技術的な話はにゃーんなことが含まれてるとにゃーんなので基本的には書いません。 どんな感じ? ポジションは minne の Android アプリ版開発です。 いわゆる業務のタスクを取…

kotlin で lambda 関数の呼び出しログと回数を記録できる便利クラスを作ってみた。

Unit Test 等で lambda 関数 を使用しているところで呼び出しログと呼び出し回数を記録したいことはたまによくあると思います。 そこで、記録できる便利クラスを書いてみました。 機能 呼び出しログの記録 回数の記録と検証(指定された回数呼び出されてなか…

Kotlinで文字列から雑にDate のインスタンスを作れる拡張関数

必要そうだったから書いてみた。エラー処理とかないので場所に応じて使うべし。 fun String.toDate(format: String = "yyyy/MM/dd HH:mm"): Date = SimpleDateFormat(format, Locale.JAPAN).parse(this) ex "2019/1/2 3:4".toDate()

やっていきって何? :yatteiki: の謎を追ってみた!

導入 渋谷とか六本木とかにあるIT企業で働いてる人が良く使い言葉に「やっていき」というものがあります。 私もTwitterなどでノリで使っています。 とはいえどの雰囲気で使っておりどのような意味を持つ日本語なのかよくわからないため調べてみました。 使用…

Android でプログレスリングを表示する方法。

そういえば、毎回ググってたなぁと思って書いた。 覚えるほどではないのに使うんですよね。。 <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleLarge" /></progressbar>