2017年の目標
あけましておめでとうございます。本年もよろしくお願いいたします。
技術目標
- Android開発経験をさらに深める
- DDDの理解を深める・社内勉強会を開く
- プライベートはこれかなと。良いアプリケーションを作る術を身につける一年にしたい。
- Python/Djangoの勉強
- なんかウェブアプリ作れって言われたら基本これでやりたい。管理画面使いやすすぎてもう離れられない…
- 機械学習・ディープラーニングをちょいとやる
- とは言ったものの、どこから手をつけて何をするか…pix2pixとかは趣味の絵描きの色ぬりに使えるかも?
生活目標
- プライベートを頑張る
- あまり詳細は書けないが、2016年はプライベートも結構激変があった年だった。
- このままいくと本当にまるで想定していなかった人生を送ることになる可能性もある。人生とは面白いものだと改めて感じた。
- 肉体改造
- 体は資本、どんな仕事をするにしても屈強な肉体は役に立つ。
- 絵の練習
- 優先度低いが、余裕があればデッサン教室などに通い真面目に習ってみたい。
以上本年の目標です。どれもパッと思いついたものではなく、2016年にやったことを踏まえてこうしたいと思って掲げたものです。2017年も頑張っていきましょう!
2016年の振り返り
2016年は全然ブログを書かない年でした。それに年初にやろうと思っていたこともあまりできなかった年です。
軽くメモ的に2016年を振り返っておきます。
今年1年やったこと
- 1月から3月
- 去年からの続きの仕事、アプリ運営(あとインフラ管理)
- 3月から4月
- スポット的な仕事、やや転職活動をして見た時期(結局転職はしていない)
- 4月から7月
- Reactを使った仕事、フロントエンドをがっつりやった
- 7月から現在
1年やったことの総括
- やりたいと思っていたフロントエンドをがっつりできた1年だった
- 自分の開発力を今一度静かに受け止めることができたと思う
- 別に自信が無くなったとかそういう話ではない
- アプリ開発に関しては、最終的にDDDに関心が行ったのでちょいちょいEric Evansの本は読んでいる
- とはいえやっぱ分厚い…
- フロントエンドをがっつりできたので、僕の中ではようやく一通りの開発経験が積めたと感じている
年初の目標の振り返り
- 閉塞感の解消
- 解消はまだできていないが、一通りの開発経験が積めたのでこれからかなと思っている
- 仕事と個人の能力向上の両立
- フロントがやりたい年だったので、特にプライベートを削ってがっつりやる必要はない年だった
- もう深く踏み込めない領域に対する未練を断ち切ろう
- いや、断ち切らなくて良い
- 機械学習
- テストコード
- ビジネスロジックだけは書いていくスタイルを貫き通したい
- インフラ
- 今年は本当に全くインフラを触らなかった。それほど知識が抜けた感はないが、手は動かなくなってるかも
- ちょっとそこらへんのリカバリーはしていきたい
下書きはチラチラ書いていたのですが、2016年内に公開できませんでした。
2016/09/28 #potatotips #33 のレポート(Android視点)
potatotips #33 に参加してきました。初参加です!
あまりレポートになれていないので、至らない部分があると思いますが、ご了承ください。
iOS発表
facebookやslackのタイムラインで、オフライン時に上から出てくるバーを作る
teruto_yamasaki
- オフライン時に表示されるバー
- タイムライン系のアプリに実装されている事が多い
- UINavigationBarを拡張できないか
- 拡張できるが、実際にはUIControllerにビューが追加されている
- demo
大で小を兼ねるな
takasek
- 日付を管理するときの型
- Date型は便利だけど、ただ日付が欲しいならstructで良いんじゃないの
(仮)Firebaseでインスタグラム風アプリを作った話
motokiee
- Firebaseで作るオリジナル結婚式アプリ
- 世の中iOS
- 配布はDeploygate
- 人による運用でカバー
- バックエンド
- Firebase
- フリープラン
- リリース日(結婚式)厳守
- tips
- 嫁にデプロイ作業・push通知をお願いした
UITableViewのスクロールに合わせてUIViewControllerを縦方向にページングする
marty-suzuki
- HoverControllerView
- 説明しづらい
Xcode8のCI事情
nafu003
- Xcode8のCI事情
- CI対応事情
BPGの話
がんじー
- WebPは時代遅れ?
- BPG … 画像形式のひとつ
- 容量が小さい割に高画質
- HCImage+BPG
- WebPに比べてデコード・エンコードはすごく遅い
- 採用事例、特になし
- 特許を何か侵害してる可能性あり
- WebPでいいんじゃねという結論
使いたくないStoryboardを使わないでよくする為には
satomiretriever
- Storyboardを使わない方向性
- Storyboardを使う理由
- 初速が出る
- 画面遷移をおいやすい
最近のCoreDataについて
Noritaka Kamiya
- iOS10でCoreData変わった
- NSPersistentContainer
- 一番話したかったところ
- ちょーかんたん
Android発表
Battery Historian v2
futabooo
- Battery Historian v2
- eureka
- バッテリーヒストリアンとは?
- Google I/O 2014で発表されたもの
- Android端末のバッテリー使用状況を可視化するもの
- adbでログを出力→historian.pyでhtml可視化
- v2について
- 機能は変わってない
- GoとJavascriptで書き直した
- ブラウザUIが追加された(ログをブラウザからアップロードできる)
- 倍ぐらい項目増えた
- サービスの動きも見れる
Ormaのハマリポイント
lVlA0805
- eureka
- parisでOrma使用
- Ormaではまったこと
- Upserter == INSERT OR REPLACE
- Conflict時はDELETEしてからINSERT
- ON CASCADE DELETE
- 外部キーあるとレコード消える
- 対処
- UPDATE件数を見てINSERT
- OnConfig.FAILで例外キャッチ
- 外部キー制約付きカラム
- 外部キーのカラム型がINTEGERからBLOGに変わってる
- WHEREに外部キーが絡むとバグる
- 対策
- storageTypeに
- INTEGERを指定
gRPC(仮)
mootoh
- Realm Mobile Platformの話
- Dropbox Paper的なものを試しに作る
- Realm使ってたなら特に違和感なくsync処理をかける
- tips
- Androidのサンプルだとそのまま動かない
- keychain sharing onで動く
- ローカルサーバーはnodejs
yuyakaid
- ページングの状態管理から開放されたい
- ページング = 追加読み込み
- RecyclerViewでデータを取得
- 普通にやると読み込みがたくさん走る
- 読み込み中フラグを持とう
- どこに持つ?
- Activiy/Fragmentに持たせるのは嫌なので、クロージャに持たせる
Activity Transition Animation
bina1204
- RecyclerViewからViewPagerへのActivity Transition Animation
- アニメーションを遅延すれば色々できる
- postponeEnterTransition
WebSocket for Android v3(仮)
kaelaela
- okhttpでweb socketをつなぐ
- okhttp3.5のsnapshotを使う
(仮)ヌガー対応
hashimoto
- Android7.0
- ヌガー対応
- 更新するとRecyclerViewの画面が白くなる
- notifyItemInsertedが原因だった
- Handlerでpostしろ
- ダイアログが白くなる
- スタイルの問題
- 早めのN対応おすすめ
Firebase Test Lab 5つのtips
horief1024
- Firebase Test Lab
- Roboテスト
- Monkey Testと何が違う
- ランダムな操作が毎回行われるわけではない
- Roboテストで実行できる操作は限られる
- 実行環境
- サインインやログイン画面は突破できない
- yamlでテスト実行環境を整備できる
- Monkey Testと何が違う
僕が面白いなと個人的に感じたのはlVlA0805さんのOrmaのハマリポイントでした。最近プライベートでOrma使っていたので。
最後に会場で提供されていた軽食の写真です。サクッと食べることが出来て、なおかつとても美味しかったです。ありがとうございました。
2016年最初のメモ
メモ的なもの。
- 閉塞感の解消
- 仕事と個人の能力向上の両立
- 仕事ではマニーにつながることが要求される
- 個人の能力向上はマニーに直結しない(ことが多い)
- あれ、どうにもできなくね…
- もう深く踏み込めない領域に対する未練を断ち切ろう
個別分野の取組方法
2015年の棚卸し
振り返るのも大事だなと思ったので。
月ごと
1月
あまり記憶にないけど、多分DevOps周りの何かをやろうとしてもがいてた。Puppetとか触って満足していた頃。
2月
多分Goを触り始めた時期。仕事はサービスのリリース時期で非常に辛かった。あと初めてデブサミに行った。
3月
勤め先でUnityの開発合宿がある。フロントもいいな〜と思う。ただこれ以降Unityに触れることは一度もなかった。
4月
仕事の環境が変わり、Javaのバックエンドを中心に触る。相変わらずGoいいなーと思っていたけど、勤め先のチームのリーダーから色々ツッコミを受ける(Goがジェネリック持ってないとことか、言語設計が古いこととか)
5月
Node.jsでサービス運用のためのツールを作る。Nodeいいなーと思う。
6月
確かこの頃からNode学園にチラチラ参加するようになった…気がする。
7月
仕事でAndroid側もやることになり(ネイティブアプリのサービス)、色々と世界が開ける。
この頃から、できるだけ仕事はフロント(というか非インフラ)な部分をやりたいと思い始める。サーバーレスという単語も最近出てきたけど、僕は全面的にその方向性を支持している。
8月
Androidフィーバー中。Rustに少しだけニアミスするタイミングがあったが、難しさにギブアップ。
Goでインフラ管理用のツールを書いた。(プログラムを長期稼働させた際のメモリリークが問題になっていたので、そこら辺をクリアするために色々と頑張った)。
9月
相変わらずJavaでバックエンド&Android。Scalaもちょっとやってみる。
10月
相変わらずJavaでバックエンド&Android。Androidのことが少し分かり始める。
11月
ほぼAndroidだけ。やっぱりフロントは慣れないと色々難しい。(アニメーションとThreadはサーバーサイドからやってきたエンジニアにはなかなか難しかった)
あとGoで簡単な言語実装を行う。
12月
Androidとインフラ少し。AWS Lambdaを使う機会があって、サーバーレスの魅力を存分に感じることができた。
まとめ
プライベートは仕事とは全然別のことやってやる!と思ったけど、やっぱり仕事に追われてなかなか出来なかった。特に今の職場環境では自分のスキルアップも評価の項目に入るので、思うように取り組めず(スキルアップするためには結局自分のプライベートな時間も使うしかない、でもそれ仕事の評価にも関係するんだ、と思うとなんかモチベを上げられなかった)
この1年で把握できた自分の癖は、
- あらかじめ「〇〇やる!」と宣言して取り組む → 絶対にできない、やる宣言した時点でやれた気になっちゃってるのかもしれない
- 流行ってるからやる → これも以外と無理だった、最初取り組めるけど長続きできない
- 自分が興味が強いからやる → これはギリギリ継続できるかもしれないと思えた、特に言語実装とかは自分のペースでできるから良い。ただ他人からの評価が貰いづらい(特に仕事との兼ね合いが…)
という感じで、とにかく自分の興味を伸ばす方向で何かをやるしかないなと思った。当たり前といえば当たり前なんだけど。
ただ一口に「興味」と言っても難しいと思うので、僕はより「一般化した興味」を考えるようにした。つまり個別具体的な技術じゃなくて、もっと目的に近い(例えば「〇〇を使って何かする」、じゃなくて「何かをしたいから、そのために〇〇を使う・作る」というような)ことを考えた。で、今の自分がどういう一般化された興味を持っているというと、
- インフラ管理が必要ないアプリ開発の実現
- Lambdaはやっぱり良いと思えるし、FirebaseやParseも気になる。Meterorも。
- 分散したインフラ環境を用意に扱える環境の実現
- yonでやりたいこと。
- モバイル端末をもっとプログラマティカルにする
- テストコード、どうしよう
- 色々とテストコードとの向き合い方について考え直す必要があるなと感じている。自分が一から書くテストコードならパラメトリックにしたりしてメンテナンス性をある程度考えてモチベを保てるけど、そうでないベタ書きのテストコードを前にしてにあまりにモチベを保てない自分に驚きを感じたので。
というような感じ。
逆に興味の度合いがやや減ったのは、
- 機械学習
- このビッグウェーブに乗り遅れるちゃダメだ!と思ってたんだけど、やっぱりそれほどやる必要はないかなと思った。多分そのうち頭が良い人たちがAPI化してくれて、仕組みを知らなくてもそれなりに使えるようになると思う。
という感じで、流行りから目を背けようとしている感じが辛い。でも強い興味を持続できないから技術を自分のものにできない可能性が高いので、やらないという選択肢も大事なのではないかと思う。
とにかくこの1年は、個別具体的な技術に触れて満足していた自分からの脱却を図る(図りたい)という点につきた。まだそれを自分が納得いくレベルで実践できていないと思うけど、できるだけその方向性で取り組めれば良いと思う。(曖昧な言葉を使うのは、その言葉で自分を縛りたくないから)