くうと徒然なるままに

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

mac に sox をインストールする。

波形編集ソフトウェアの sox をmacにインストールする方法です。 Homebrew からインストールすることができるため、以下のコマンドを使うことでインストールすることができます。 brew install sox

ViewPager2 を使っているときにスワイプを一時的に向こうにしたい。

ViewPager2 を使って開発をしているときにスワイプされたくない時があると思います。 ただ、xmlから向こうにすると任意のタイミングでスワイプできるかの管理をできなくなります。 そのため、今回のような記事のことが必要になります。 結論 ViewPage2に生え…

大学生二人の弾丸韓国旅行をNotion を使ってスケジュール組んだお話

この記事で書くのは、旅行の計画〜実際に行ったとの割り勘精算までを Notion で管理したお話です。 Notion とは 少し前から情報感度の高い人の間で使われているドキュメント共有ツールです。 Markdown ぽく書いたり、DB を追加でき、Kanban, Calender, Excel…

7人ぐらいのチーム開発のミーティングで試してること。

最近、sechack365 というものでチーム開発をする必要に迫られたので以前から試してみたかったミーティングをこなす時の工夫について書いてく チームのコンテキスト 7人チーム 最終学年な人が多く卒研などでフルタイムで時間を取れる人はいない 5人がDev, 1…

TypeScript で Console.log() を呼び出そうとするとエラーになるので直した。 Cannot find name 'console'. Do you need to change your target library?

現状 TypeScript を書いているときに以下のようなエラーが発生しました。 Cannot find name 'console'. Do you need to change your target library? Try changing the `lib` compiler option to include 'dom' 解決方法 node の 型情報ファイルが存在してな…

Windows 10 Mobile がサポート終了したので私とWindows Phone のこれまでを振り返ってみる。

Windows 10 のサポートが切れた。 Windows 10 mobile のサポートが終了したようです。 Windows Phone 8 のころからのユーザーなのですこし思い出してみようと思います。(Windows 10 mobileのことを以下では Windows Phone と表記します。 security.srad.jp W…

Tensorflow の Android Sample をビルドしようとするFill class が見つからないエラーを解消する

tensorflow に付属しているサンプルを実行しようとすると以下のようなエラーが発生することがあります。 今回は、それを解決したいと思います。 クラス Zerosで宣言されているTはObjectを拡張します /Users/kuxu/.ghq/github.com/tensorflow/tensorflow/tens…

Go 言語なプロジェクトで Github Actions を使ってみる

Go 言語を最近は書いています。サーバーサイドエンジニアになるのかもしれません。 そこで、当然のようにCIを設定していくのですが、最近出たばかりの Github Actions を使っていこうと考えています。 (Public repo の場合実質ある程度の規模までは無料で制…

fish で git のステージされているファイルを一覧を表示する関数を追加した

git で git add したファイルのリストを表示する機会が多かったので fish の関数にしてみました。 いい感じに使ってみてください。 function gsf git diff --name-only --cached end

fish & peco で Git の変更されたファイルを表示して git add するワンライナー

git add (git diff --name-only HEAD^ | peco)

setting.gradle に追記することで特定のフォルダに入っているmoduleを一括でターゲットにする様にした

Gradle 芸でモジュール数が増えても記述が多くならない様にして見ました。 feature/data の名前でモジュールをフォルダ分けしてたりするので複数のフォルダを見たいときでもいい感じになる様にしてみました。 ['feature', "data"] .asList() .each { folderN…

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 …