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

Posted on Sun 16 December 2018 in articles

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

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

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

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

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

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

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

愛犬の健康を管理する

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

石は手術で取り、以後尿結石はできてません。しかし、ノミダニ予防、フィラリア予防 …


Continue reading

Flutter で MVVM をやる

Posted on Fri 24 August 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 Wed 27 September 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 Wed 14 December 2016 in articles

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

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

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

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

まとめ

これを読もう

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

収入分散化の勧め

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

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

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

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

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

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


Continue reading

AndroidのTestまとめ

Posted on Wed 10 August 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

Fukuoka IT Slack Group

Posted on Tue 06 October 2015 in fukuoka

image

Fukuoka Slack Group

Fukuoka IT Slack Group とはなにか

福岡のIT系の人が集まるSlackグループです。

以下の方たちを想定してます

  • エンジニア
  • デザイナ
  • クリエイター
  • 学生
  • 経営者
  • その他

楽しそうだなと思ったら、基本どなたでもOKっす。

  • #Android
  • #backend
  • #javascript
  • #python
  • #english (英語の会話のみ)
  • #gohan (飲食店)
  • #alcohol (飲み会)
  • #shakaijin (社会人)
  • #ika (splatoon)

などなど、チャンネルもカオスな感じになってきてます。 参加もチャンネル作成も自由ですので、ご自由にどうぞー。


Continue reading

D3.jsはじめ

Posted on Thu 12 June 2014 in D3.js • Tagged with D3.js

BigDataをグラフィカルに表現したい!

あふれた情報だけど、 D3.js を動かし始めるとこまでやってみる。 フロントエンドが久々なので、最近のトレンドも踏まえながらやってみる。

環境構築

bower というのを使えばパッケージ管理できるらしい!すげぇ!(なぜ今まで無かったのか)

bower install d3.js

htmlコードにはこんな感じで

<head>
    ...
    <script src="bower_components/d3/dist/d3.min.js'"></script>
    ...
</head>

D3をとりあえず動かす

適当にpタグでも作っておく

<body>
    <p id="chart"></p>
</body>

TODO:簡単に図を表示するコード

var hoge = d3.select("#chart").append("svg")
    .attr("width", chart.width())
    .attr …

Continue reading

Gradleで管理されたAndroidProjectのEspressoテストをGenymotionを使ってjenkinsでぐるぐる回すまで(長い)

Posted on Thu 10 April 2014 in Android • Tagged with pelican, python

image

Gradleで管理されたAndroidプロジェクトをJenkinsで動かすまで苦しんだのでまとめます。

環境

  • MacOS 10.8.5
  • Java 1.7
  • Gradle 1.11
  • Android Studio 0.5.3
  • Espresso 1.1
  • Jenkins 1.5558
  • git plugin
  • gradle plugin

前提

Android StudioでEspressoのテストが

./gradlew connectedAndroidTest

で動いてるものとします。

諦めたこと

Android Emulator Plugin は諦めました。 なぜか以下のメッセージを出して途中で止まります。

android completed with result NOT_BUILT

動くこともある。動かないこともある。不安定過ぎるのでエミュレーターを断念。

Genymotionで代用

エミュレーターをGenymotionに置き換えました。 以下Genymotionをjenkinsで呼び出す流れ …


Continue reading

とあるプログラマのAndroidAnnotations

Posted on Wed 04 December 2013 in Android, AndroidAnnotations

※この記事はAndroid Advent Calendar 2013 12/04担当として書いてます。

勢いでAdvent Calendar登録したけど、最近新しいこと、突き詰めたことしてない。 Genymotionは 明日の mofmofneko さんが書くみたいだからやめておこう。

ブログ自体半年くらい放置してた。この半年でやったことをとりあえず箇条書きにしてみる。

  • Android Annotations
  • Android Studio
  • Genymotion
  • GreenDAO
  • Guava
  • デジハリ講師業はじめる。
  • iPhone4SからNexus5に機種変
  • 働き過ぎて瀕死になる

自分の中で一番テンション上がってるのがAndroid Annotationsなので、今回はこれのお話にする。

AndroidAnnotations

AndroidAnnotationsでできることはコードの軽量化。以下の2つが主なメリット。

  • 開発スピードの向上
  • メンテナンスの簡素化

冗長な処理をシンプルにし、コード量を少なくする。結果、メンテナンスが楽になるメリットがある。

設定方法と使い方

書かれ尽くされたネタなので公式サイトをどうぞ。

僕なりの書き方

注意:ココ最近の情報は追っかけてません。

RestとBean

やっぱRestの処理がシンプルになるのがかなり嬉しい。一般的なWegAPIを叩くアプリなら、Interfaceの実装でほぼ終わってしまう。


Continue reading

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

Posted on Sun 03 March 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