Kinesis Advantageの左右分離版みたいなキーボード、Dactylを作った話

Kinesis -> ErgoDox -> Let's Split -> Nyquist -> Dactyl(New!) 前回Let's Splitを作ってから一ヶ月も経ってないですが、Dactylキーボードを作りました(実はその間にNyquistってキーボードも作ってたりします)。 というわけでNyquist組み上がりました pic.twitter.com/l3dPOQbHz0— せーい@一万二千年後のイカ (@_yshrsmz) 2017年9月3日 Nyquist。Let's Splitにもう一行足したようなキーボード。これもビルドログ書こうかと思ったけどすっかり忘れてた。 Dactylはこっち。 パーツ 名称 値段

Let's Splitを作った話

Kinesis -> ErgoDox -> Let's Split(NEW!) Kinesisから数えて三台目のメカニカルキーボードで、初めての自作です。 パーツ 大体「格子配列で左右分離型の超コンパクトなキーボード "Let's Split" を組み立てたよ」と「nicinabox/lets-split-guide」を参考にパーツを集めました。 ケースは参考サイトとは異なり、M2ネジ使うタイプの方を使ったのでそんな感じのリストになってます 名称 値段 調達先 PCB $8.99 x 2 MEHKEE ケース $40 Ponoko

[Android] Architecture ComponentsのViewModelは如何にしてRotationを生き残るか

TL;DL; retainInstance = trueなFragmentにキャッシュされているので、Activity/Fragmentが本当に殺されるまで生き残ることができる。 Google I/O 2017で、Architecture Components という新しいライブラリ群が発表されました。 LiveData, ViewModel, LifecycleObserver, LifecycleOwner, Roomといったこれらのライブラリは、開発者がより強固で、テスタブルで、かつメンテナンス性が高いアプリケーションを作るための手助けとなるべく作られています。 今回はその中でもViewModelについて少し調べてみました。 What is ViewModel? 詳しい説明はViewModelのリファレンスに譲りますが、簡単に言うと「Activity/Fragmentのローテーション等による再生成をこえて状態を保持するためのコンポーネント」です。 今までActivity/Fragmentのメンバ変数に保存していたような値や非同期処理をViewModelに書いておけば、Activity/

2016年を振り返って

2016年もあと一時間半くらいですし、振り返りなどやります。 仕事 今年は主に改善業務をやっていました。 大体下記のような感じです CIでAndroidLint/ChecyStyleかける モデルクラスの大改修 APIリクエスト周りの処理をモデルクラスから切り出す Realm周りの処理をモデルクラスから切り出す モデルクラスが互いに依存しあわないようにユースケース層を作る テスト、テスト、そしてテスト モデルクラスがAPIリクエストをすればDBアクセスもして、モデルクラスが別のモデルクラスをメンバー変数に持ってたり…と結構マッチョな感じになっていました。 そこで、単一責務を意識してAPIリクエストをするクラスやDBアクセスするクラスを作り、モデルクラスはそれらを相互に橋渡しするだけのクラスにしました。最近流行りのレイヤード・アーキテクチャってやつです。 また、モデルクラスが互いに依存せず、それぞれの役割に徹するためにユースケースクラスを用意しました。モデルクラス間で行ったり来たりするような処理はここに書いていく感じです。 ここも(ユースケースクラスと言うくらいですから)単一責務を意識して、一つのユースケースクラスが複数の仕事をしないように心がけてます。 あとはリファクタリングしたところはしっかりテストを書いてました。弊社アプリのテストは儂が育てた、といってもあながち間違いではないですねw