2020年 8月振り返り
早いもので前回の振り返りからもう6ヶ月も経っていました。
3月ぐらいから8月までの振り返り 世の中的にも個人としても大きな変化があった半年でした。
転職した
内定者バイトとかインターンとか含めると約13年所属していたサイバーから卒業しました。 意思決定したときには、コロナがここまでの猛威をふるうものだとも思わず… 結局最終出社のときには基本リモートになっており、長らくお世話になったに方々に対面での挨拶ができず、申し訳無さというか残念な気持ちでの卒業となってしまいました。 副業という形で関わらせていただいているので、卒業といいつつも関わらせてもらってます。最終出社でした。 pic.twitter.com/yTwbZEp7zY
— atsumo (@atsumo) 2020年6月18日
6月末ぐらいから SmartDriveにJoinし、引き続きアプリ周りとかをやっています。 移動データの価値創造みたいな結構難しい部分ではあるものの、自動車界隈が100年に一度の変革期と言われてたりするので、チャンスと可能性は感じながら日々仕事してます。 smartdrive.co.jp
働き方がだいぶ変わった
自分がSmartDriveに入社したときには、ほぼ完全リモート体制になっており、自分が入社してから物理出社したのは3回ぐらいです。 正直まだ顔も名前も一致しない状態でのリモートは戸惑うことも多く色々と大変?ですが、時間の使い方はかなり有効に使えてる気がしています。 9月からはお試しとして一旦週1物理出社になり、対面でのコミュニケーションのありがたさを感じつつ、しっかりと関係値を作り上げてリモートでも力発揮できるようにしないとなと思いながら仕事しています。
そして今までは10:00 ~ 19:00での時間固定の業務時間でしたが、転職後はフレックスタイムになりました。 フレックスを経験するまでは、MTGの時間とかどうするんだよ?どうやって調整するんだろう?とか、いろいろとうまくいくのか不安でしたが、 予定が入ってたらその時間にいればいいし、逆もしかりという感じで、よしなにうまくいくものなのだなと思いました。 どうしても予定があって抜けなければ行けない時間がある場合などは、予めその時間にはいないことを周知しておけばいいし、全然どうにでもなるもんなんだなと。 うちみたいな共働きで、子育て世代には本当にありがたいなと思ってます。
Flutterをやり始めた
少人数で素早くプロダクトを作りたいということで Flutter
を採用し、Flutter漬けの毎日を送っています。
今年はFlutterガッツリやっていこう。
— atsumo (@atsumo) 2020年5月23日
Jetpack Composeを普通に使う時代になったら戻ってきますw
自分がちゃんとやり始めたからそう見える部分もあるのかもしれないですが、Flutter流行ってる感を日々感じてますw ありがたいことに日本語のブログとかもちらほら出てきてたりとか、アーキテクチャ周りの記事とかも増えてきていたり、プロダクトでもFlutter採用事例とかも増えてきている?気がしています。 自分も存在をアピールするためにも、ちゃんとアウトプットしないといけないよなとは思いつつ、全然できてません。
Flutterの案件で面白いものがありましたらぜひお声がけください!(すぐに対応できるかわからないですがw)
デザインエンジニア領域
CAにいたときデザインエンジニア領域を何かしらやりたいと思っていたのですが、正直今もそこをできているかと言われるとできてないです。 今の会社ではデザインエンジニア領域が重要になる組織フェーズでもない気がするので、インプットしつつも組織にフィットしたソリューションとして使えるものであれば取り組もうかなと思ってるぐらいです。 FlutterやJetpackComposeやSwiftUIなど宣言的UIで、UIを作る場合のデザインデータとの実装の間部分に関しては、今後いろいろできそうだなと思いながらも、デザイン制作過程から実装部分での生産性向上へのアクションはどこかのタイミングでやりたいなとは思ってます。
まとめ
2月に振り返ったときは、キャリアについて一通り悩み追えて、転職を決断ぐらいのタイミンでした。 今は自分が下した決断が良かったと思えるように、チャンスと可能性をものにできるようにいろいろと試行錯誤しつつ頑張っていこうと思います。
FlutterのLocationのプラグインのメモ(android視点)
- FusedLocationProviderClientを使用して位置情報を取得
flutterlocation/FlutterLocation.java at master · Lyokone/flutterlocation · GitHub
- default は5000msに1回
- changeSettingsでintervalやaccuracyなどを設定可能
- Permission
pub.dev - FesedLocationProviderClientを使用(Android) - 無理やりLocationManagerを使用する設定も存在する - iOSはCLLocationManager - LocationOptionsでinterval, distanceFilter, accuracy指定可能
pub.dev - FusedLocationProviderClient - Intervalは 2000millsec - PermissionHandlerを内包
2020年にFlutterを始める上で読んだ記事まとめ
はじめに
最近Flutterでの置き換え実装やFlutterの新規案件が増えてきている気がしているので、自分がお世話になった記事や動画、サンプルなどをまとめてみました。
少し自分の考えを書いていますが、基本的には参考にさせていただいた記事のリンクになります。
基本
- https://flutter.dev/
- パッケージマネージャー
- Effective Dart
アーキテクチャ
- scoped_model
- BLoC
- https://pub.dev/packages/bloc
- scoped_modelはmodelのstateが変更されたら、その配下すべてのWidgetに対してrebuildがかかる
- BLoCはstate自体をstreamにすることで、streamを個々のwidgetでlistenするのでrebuildの対象を小さくできる
- https://itome.team/blog/2019/12/flutter-advent-calendar-day21/
- https://qiita.com/kabochapo/items/8738223894fb74f952d3
- Provider × ChangeNotifier
- BLoCが複雑で学習コストが高い…
- 簡単に状態管理をする方法(ChangeNotifier)
- DI及び状態管理用パッケージのProvider
- Providerはアクセス制御や変更通知の機能を提供している
- Widget上でProviderで状態作成
Google I/Oの19で Google I/O 18当時紹介した BLoCは複雑になるのでProviderで複雑さを解決できるよ的な話をしている
Provider
- Riverpod(experimental)
- Providerの作者によるProviderのrewriteプロジェクト
- Providerのような使い方ができるが、Providerが抱えていた問題を解決したもの
- 同じTypeのProviderを複数持つことができる
- Providerのような使い方ができるが、Providerが抱えていた問題を解決したもの
- https://pub.dev/packages/riverpod
- https://riverpod.dev/
- StateNotifier → Riverpod置き換え
- Providerの作者によるProviderのrewriteプロジェクト
awesome/sample
- gallery
- https://flutterawesome.com/
- https://github.com/Solido/awesome-flutter
- 公式サンプル集
- Flutterで作られたアプリリスト
- https://flutterarsenal.com/
読み物/動画系
- https://medium.com/flutter-community
- Flutter Weekly
Flutter Widget of the Week
https://www.youtube.com/playlist?list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG
その他
- Add Flutter to existing app
- 既存iOS/AndroidアプリにFlutterを追加する
- 自動コード生成を駆使してFlutter 開発を楽にするhttps://qiita.com/kikuchy/items/cdd95bb9a02c4edf8f12
- KotlinとJavaができる人向けDart速習https://qiita.com/kikuchy/items/2cce118d38fc15324b2b
- Flutter 全部俺 Advent Calendar 2019 https://adventar.org/calendars/4140
2020上半期振り返り
去年の同じ時期にも振り返りしていたので今年も振り返り atsumo.hatenablog.com
2019/10 ~ 2020/03
Androidが自分の中でのちゃんとした強みになった
- 単純に今自分の技術スペックの中で何が得意か?と聞かれた場合Androidというぐらいにはなった
- 深い部分などはまだまだ知らないことあるなと思うことはあるが、普通にこなしていく分にはさほど困ることはない
- ちょくちょくPaging LibraryとRecyclerViewには困った
- 去年も書いてるけどPagingLibraryいいところももちろんあると思うんだけど、できれば使いたくない…
- Jetpack Composeさわらないとアドバンテージ作れないな…
チームやマネジメントについて
- 去年から続けている1on1もようやく理解をえられ、少しずつそれの価値を見いだせるようになってきた気がする
- 目標がうまく立てられたときは、その後の成果も見やすく、より成長だったり成果も出しやすくなるなと言う実感
- 逆に目標があやふやだと実行できなかったり、色々やったはずなのに結局なんだったんだっけ?みたいな感じになる
- 自分だけじゃなくメンバーも含めて的確な目標を立てることの難しさをしみじみ感じている
- 四半期で目標をたて、それを振り返っているが、いかんせん目標が定まりきらずに走ってしまうことなども多く、目の前のタスクに追われてしまったりすることがしばしある
- そもそもなんのためにどんなことをやろうとしているのか?をちゃんと各自が考えながら適度に方向をそろえやっていかないとだめだなと感じている
アーキテクチャとコード周り
- Flux -> MVVMへ
- 一部Fluxを入れていたがMVVMで良いよなとなり途中からMVVMで書いた(変える必要をそこまで感じてないためFluxで書いていたところはそのまま)
- Coroutineで書いたコードがわかりやすい
- testコード書かないとな…とは思いつつかけてない…
- Groupie楽 (PagedListのときには不便っていうか困る)
自身のクライアントエンジニアとしての今後
- 基本的なアプリを作る上では困らなくなったのは良いことだが、自分自身の価値を高めるためにはどうしたらいいのか?という悩みが増えた
- 良くも悪くもJetpack等によって技術が一般化して誰でもある程度身につければ、今風のアーキテクチャで普通のアプリを作ることが可能
- 昔であればより良い拡張性のあるようなアーキテクチャを考え出し、それを構築し、運用していても困らないという状態を作れることが一つの技術の測り方だったが、最近は公式に則ったほうが何かと便利で恩恵も受けられるのでそれに乗っかるので十分であり、そこに独自性とか入れちゃうと逆に使い勝手悪くなったりするよな…みたいな考えになった
- 今後の自身の価値向上させるためにはAndroidのよりコアな部分を磨き上げるというよりは、そつなくこなせて新しいこともそれなりに知っているとかぐらいで価値を出せたら自分の性格と合ってそうだなと思ってる
まとめ
- キャリアに相当悩んだ
- 今までちょくちょくやってたことがちょっと認められたりした
- もちろん深めればまだまだだと思うけどクライアンエンジニアの頭打ち感を感じた
英語を習得したいという話...
はじめに
毎年年始にやる目標を洗い出すときに 英語
が出てくるのに、
アプリを試してみたり、Youtubeの英語学習の動画見たりしたりするが、3日坊主でおわってしまう。
去年ぐらいから本当に英語出来ない自分に嫌気が指しているので、今年こそはどうにかしたいと思っている。
しかしまだ何かが見つかったって言うわけではなく、まだモヤモヤしながらいろんなものを試したりしているところなので、いい方法があったらぜひ教えてもらいたい。
現状の自分の状態を書いているだけなので、 これがいい!みたいな方法を見つけていきたいという意思表示
なぜ自分に英語が必要なのか?
- 情報をinputする際に日本語よりも英語のドキュメントが圧倒的に多い
- 読みはするが理解が曖昧
- 情報を誰よりも早くちゃんとした理解で吸収し続けたい
- 日本語を話せない人たちとコミュニケーションを取りたい
- 仕事をする際に日本語でしかコミュニケーションを取れないことでのチャンスを逃したくない
分析
自分の英語レベル
- 中学までは比較的英語が好きだった
- 高校時代は1ヶ月程度の留学はしてホームステイなどもしていた
- 高校時代に英語で挫折
- 大学受験のときにはなるべく英語を避けていた
- 大学時代は英語で話しかけられても日本語で返すぐらい、英語を話すことに対して苦手意識が強く、英語の学習はほぼしていなかった
- 社会人になってからは英語の勉強というものはほとんどしていない
- 中学レベル
自分が挫折してしまう要因
- 飽きやすい
- 自分の現状のスキルと使ってるものがあってない
- 自分にあっているものがわからない
- 出来ている感覚を実感できない
- むしろ出来てない
- 他のことに追われてしまい後回しになりがち
考えていること
上記を改善するために何をしたらいいのだろうか?
- ちゃんと現状の自分のレベルを把握する?
- ゴール設定を明確にする
- 定期的に測定する
- 生の英語にちゃんと触れる
- 完璧を求めず、アウトプットすることを重要視する
やったこと
アプリ
- Duolingo -> 2week
- スタディサプリ -> 2week
- mikan -> 2.5week
memo
継続が重要なのは頭ではわかっているんだけど… だめだ…