犬のためのアプリを作っている

Posted on 日 16 12月 2018 in articles

ZOZOテクノロジーズの愉快なエンジニア AdventCalendar その2、16日目です。12月も半分過ぎました。やばいですね。

ZOZOのAdventCalendarですが完全にZOZOとは関係ない、個人的趣味な記事になります。

いぬをささえるぎじゅつ と題して、趣味レベルでコツコツ作っている犬のアプリについて書きます。

なぜ いぬをささえるぎじゅつ なのか

うちの愛犬のもなかです。 ウェルシュコーギーペンブローク♀推定8歳 instagram

めちゃくちゃ可愛いですね。我が家のアイドルです。

子供の頃から犬🐶が好きで、大人になったらたくさん犬を飼おうと思ってました。思ったとおりの大人には成れてないですが、最愛の犬と暮らすことができるようになりました。 もなかと暮らすようになって、犬を取り巻く人間社会が見えてくるようになりました。 なにか自分でも犬達の為になることができるんじゃないかと考えました。 僕はIT技術にしか取り柄が無いので、この力を持って彼らの力になろうと思います。

愛犬の健康を管理する

もなかは3年前に我が家の一員になりましたが、その時から尿結石を患ってました。 食べ物はPh値を調整するドックフードにし、水は軟水を徹底し、しっこの回数や量なんかをしばらく監視してました。

石は手術で取り、以後尿結石はできてません。しかし、ノミダニ予防、フィラリア予防、狂犬病予防など、健康な犬でも日々予防するものはあります。 最近では膀胱炎にもなりました。薬を飲むと体に負担がかかり、数週間つらい思いをしていました。

そんな自分が欲しかった 愛犬の健康を管理する アプリを作っています。 王道ですが …


Continue reading

Flutter で MVVM をやる

Posted on 金 24 8月 2018 in articles

趣味で flutter を始めました。MVVMを書く時どうしたらいいのか調べてみました。 この記事を参考にやってみました。

App architecture: MVVM in Flutter using Dart Streams - QuickBird Studios Blog

他にもこのスライドが超役に立ちました。まだ使ってないことも書いてるので今度試します。

Flutter のリアクティブ戦略 set state 〜 redux まで from cch-robo

実現すること

  1. メニューを選択する。
  2. ダイアログから選ぶ
  3. 選んだデータがメニューのところに反映される。

みたいなことを実現したいと思います。

ViewModelの書き方

Flutter は標準で Stream があります。これを使うとreactive programing っぽい事ができます。※別途rxDartもありますがここでは紹介しません。

まずは ViewModel の Interface を定義します。Dartは暗黙的にInterfaceが定義されているので、abstract class で作ります …


Continue reading

Android の DI を Dagger から ToothPick に代えた

Posted on 水 27 9月 2017 in articles

Dagger2 がほんとに辛い。 公式サイト見たり、先駆者の皆さんのブログを見ながらやってみるけど、ややこしくて自分で改善するのはかなり辛い。使っているというより、言われたとおりに設定するだけで精一杯。

そんなことをぼやいてたら Realm と ウフィカ の中の人 @zaki50 さんから

とアドバイス頂いたので試してみました。

stephanenicolas/toothpick: A scope tree based Dependency Injection (DI) library for Java

サイトを見て設定すれば動くんだけど、どうしても見落としがちなとことかあるので、簡単に紹介します。

Toothpick とは

Java の DI です。 とはいえ、主に Android を対象にしてる気がします。 ツリースコープなので、「Activity で Inject してたら Fragment …


Continue reading

フリーランス残酷物語 14日目

Posted on 水 14 12月 2016 in articles

この記事は「フリーランス残酷物語 Advent Calendar 2016」 14日目の記事です。

気がつけばフリーランスになって6年経ちました。こじか屋のしかじろうです。 フリーランスとしては中の下くらいだと思ってます。かろうじて生きてます。 受託だったり保守だったり講師だったり社員教育だったり趣味サービスやってます。

あと、もなかが可愛いです。 instagram

残酷な話をすると心が滅入るので、「残酷にならないためにはどうしたらいいか」っていう事を書こうと思います。

まとめ

これを読もう

SOFT SKILLS ソフトウェア開発者の人生マニュアル

収入分散化の勧め

技術力があって1システム全部作れると受託が金額的に良かったりします。ので、受託ばかり受けがちになってしまいます。

「じゃあこのシステム、200万でよろしくお願いします。」
『たまんねぇぜ(^q^)ジュルリ』

でも受託ばかりやっていると収入の波ができてしまいます。200万の入金の月もあれば、0円の月もあります。 これだと資金の見通しが立たず、なかなか経営が安定できません。 「自社サービスを作ろう!」と思ってもなかなか着手出来なかったりします。

  • 受託
  • 長期の保守
  • 定期的な講師業
  • スパンの長い社員教育

上記は僕がやってる or やってたものです。複数の収入先を確保すると安定します。心にも余裕ができます。

理想は不労所得です。寝ずに仕事すれば収入は増えますが長続きしません …


Continue reading

AndroidのTestまとめ

Posted on 水 10 8月 2016 in articles

この記事をまとめるにあたって Best Practices for Testing | Android Developers を主に参考にしています。

Androidのテストは大きく分けて Unit testUI test の2種類があり、実装方法や対象などで分けると5種類ある。

ジャンル テストの種類 Androidへの依存 主に利用するツール 特徴
Unit Test local unit Test なし Mockito java VMで動作する
instrumentation Test あり hamcrest Android上で動作する
App Component Test あり Serviceなどのテスト
UI Test single app Test あり espresso
multi app Test …

Continue reading

Google製Javaライブラリ Guavaを使ってみた。

Posted on 日 03 3月 2013 in articles

しかだよ。Guavaってライブラリが良いってインターネットに書いてたので調べてみたよ。 サンプルソースのほとんどは本家からコピペしたよ。

guava-libraries - Guava: Google Core Libraries for Java 1.6+ - Google Project Hosting

Basic

Using/avoiding null

nullぽを避けるための仕組み {% highlight java %} Optional possible = Optional.of(5); possible.isPresent(); // returns true possible.get(); // returns 5

Preconditions

引数の値チェックなど、前提条件をチェックする仕組み。assertとかに似てると思う。 条件がfalseだと対応するExceptionがスローされる。

Ordering

Comparatorをスマートにしたやつ。Comparatorはめんどいよね・・・。

{% highlight java %} Ordering byLengthOrdering = new Ordering() { public …


Continue reading

Arduino Fioでスーパーマリオなノックシステム作った

Posted on 月 07 1月 2013 in articles

しかだよ。 Arduino を使ってスーパーマリオな玄関ノックをつくってみたよ。 まずは動画をどうぞ。

タッチするとマリオの「チャリーン」が鳴ります。一定回数以上タッチすると1upします。

扉の裏側はこんな感じ。やっつけ感がすごい。部品にはArduino Fio、リチウムイオンバッテリー、 ブレッドボード、スピーカーを使ってます。

タッチする部分はNintendo DSのタッチパネルの部分を使ってます。 アダプタ込みで1,000円ちょい。 スイッチサイエンス/商品詳細 Nintendo DSのタッチスクリーン(コネクタ別売)

ブレッドボード配線はこんな感じ。適当なので参考程度に。スピーカーの配線が気になる。
リチウムイオンバッテリー使ってるんだけど、すぐ電池が切れちゃう。省エネな使い方があるはずだけど、どうやって運用したらいいのかなぁ。

ソースコード等はこちら。 shikajiro/MarioTouch

んじゃまた。


fritzingに最初から入っているはずのパーツを使えるようにする

Posted on 火 25 12月 2012 in articles

しかだよ。 ブレッドボードの配線の設計やメモに最適なツールと言えばFritzingですね。 Download - Fritzing

最初から色々パーツが入っているのですが、拡張版(?)のパーツのデータが抜けてる。検索はできるのに・・・。

というわけでなんとかしました。

ソースコードを落とす

google code から落とせます。 Source Checkout - fritzing - From prototype to product - Google Project Hosting

以下の2箇所のデータをまるっとコピー。

cp fritzing-read-only/fritzing/pdb/user /Applications/Fritzing/pdb/user
cp fritzing-read-only/fritzing/parts/svg/user /Applications/Fritzing/parts/svg/user

こんな感じでNintendo DS のタッチパネルも使えます。素敵ですね。


Arduino FioとPCをXBeeで繋いで開発する「ワイヤレスプログラミング」はXBee-ZBではできない

Posted on 火 25 12月 2012 in articles

Arduino FioはPCとXbee接続してワイヤレスでプログラムをアップロードできます。 しかし、XBEE-ZBではワイヤレスプログラミングできないので注意が必要です。

Arduino - ArduinoBoardFioProgramming

two XBee or XBee Pro 802.15.4 XBee modules. These are also known as Series 1 modules, for those who've worked with XBees for awhile. You can't use the DigiMesh or ZB series radios (aka Series 2 or 2.5). Those modules do …


Continue reading

sublime textをコマンドラインから起動する

Posted on 水 05 12月 2012 in articles

Sublime Text 2 Advent Calendar 2012 5日目担当のしかだよ。 一番使うエディタはEclipseです。

今回はsublime textのニッチな機能「コマンドラインからの起動」についてまとめてみるよ。

コマンドラインから起動できる

$ subl で起動できるように設定しておきましょう。

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /Users/shikajiro/bin

データを渡せる

パイプで繋げると文字列送れます。

例えばこんな感じ

shikajiro$ ls | subl

開いたデータを閉じるまでコマンドライン側は待ち続けます。

例えばこんな感じ。

shikajiro$  ls | subl | cat

sublime textで開いて、色々編集して、それをまたコマンドラインに戻すことができちゃいますね。 これは、色々幅が広がりそうな予感・・・!

大体の流れ

  1. コマンドラインからパイプで起動
  2. 実行したデータがsublime …

Continue reading