どうも、株式会社YOUTRUSTのアプリ開発のリードエンジニアをやっているashdikこと朝日(YOUTRUST / X)です。
最近、子どもの送迎のために電動自転車を買いました。
電動って、電気で動くんですよね。
なので、坂道が本当に快適すぎて、坂を見つけると逆に登ってしまいたくなるんですよね。
自分の技術力の進化も、坂を駆け上る電動自転車の様にスイスイだと良いのですが。
さてさて。
最近、少しずつカジュアル面談や面接をさせていただく機会が多くなってきました。 話していただいた方、ありがとうございました!
本記事では、そんなお話中にしていただいた質問について答えていこうと思います。 弊社に興味ある人はもちろん、ない人もぜひ最後まで流し見でも良いので読んでいただけると嬉しいです。
⚓️ 概要
- YOUTRUSTアプリでの課題はなんですか?
- 内部品質/外部品質
- バージョンは何を使っていますか?/最新を使っていますか?
- 朝日が入社した経緯
YOUTRUSTアプリでの課題はなんですか?
たぶん、一番多いのがこの質問だと思います。 僕が良くしている回答は以下です。
内部品質
今まで、数々のYOUTRUSTアプリの構成記事を執筆してきました。
Flutter製YOUTRUSTアプリを支えるレイヤー構成 - YOUTRUST Tech Blog
YOUTRUSTアプリを支えるAPIリクエストの仕組み - YOUTRUST Tech Blog
YOUTRUSTアプリを支えるデータストアの技術 - YOUTRUST Tech Blog
YOUTRUSTアプリを支えるデータ処理の技術 - YOUTRUST Tech Blog
YOUTRUSTアプリを支えるViewModelの技術 - YOUTRUST Tech Blog
そんな中で、折に触れてずっと書いてるのが
riverpod は黎明期の頃から使っており、 FutureProvider は使われておらず StateNotfierProvider も最近導入し始めたところです。 その辺の構成の参考にしようとしている方には、もしかしたらお役に立てないかもしれません。
ここに内部品質の課題全てが詰まっています。
StateProviderが大量に使用されていること
バファリンは50%が優しさとの噂ですが、
YOUTRUSTアプリの95%はStateProvider
で構成されています。
(書きたかっただけで、何を持って95%と言えるのかちょっと謎ですが)
詳しくは、Store
の記事を参照いただけると幸いです。
YOUTRUSTアプリを支えるデータストアの技術 - YOUTRUST Tech Blog
ご存知の方も多いかと思いますが、 StateProvider
は直近だと利用が非推奨になっています。
StateNotifier is now discouraged in favor of those new APIs.
https://riverpod.dev/ja/docs/migration/from_state_notifier
ので、この辺の解消をどう進めていくのかが直近大きい課題だと思っています。
Notifier、FutureProviderが利用できていないこと
上記問題点と近しい問題ではありますが、 riverpod_generator
などがまだ使えていません。
(そろそろ使おうとしている。)
また、 API
のリクエストにおいても、 Facade
と言うレイヤーがある関係で FutureProvider
を使えておらず"良くあるFlutterアプリ"っぽい書き味ではないんだろうなと思っています。
とはいえ...
YOUTRUSTアプリをリリースして、そろそろ3年が経過しようとしています。
そんな中で、特に大きい困りごともなくここまで開発出来ているので
大きく誤った方針でもないのだろうなという思いはあったりします。
外部品質
ぬるぬるにはほど遠い
Impeller
をはじめとする Flutter
フレームワークによるパフォーマンス改善にも助けられ、
iOSのレビューも4.5とそこまで悪くない評価もいただいています。
が、やはりSNSとして推していくにあたり、ストレスなく触れるか?無意識で開いてしまうか?と言うところに行き着かなくてはなりません。
手に吸い付く感覚、思った通りに動く、画面遷移が直感的...。
このような、触り心地はもっと追求しどころがあると思っています。
アニメーションなど、アプリらしさが足りないこと
アプリをリリースしてから今まで、割と施策ベースでの開発やリファクタリングが多く
アプリのUXを上げる開発に割く時間があまり多くなかった様に思います。
Hero
アニメーション、 HapticFeedback
、 AnimatedXxx
などなど。
実は所々入っているところもありますが、こちらもまだまだ改善の余地がありそうです。
UXの統一感
YOUTRUSTアプリは、今まで何名かのデザイナーの方にUI設計をしていただきました。
そんな中で、ある機能とある機能のデザイン、UXが微妙に異なってしまうと言う事も起こってきています。
もしかしたら、注意深くアプリを触っていると分かるかも...?笑
当たり前ですが、アプリ全体でUXは統一するのがベストです。
なので、ここにも課題があるのではと思っています。
バージョンは何を使っていますか?最新を保っていますか?
2024年3月21日現在、Flutter 3.19.2
、Dart 3.3.1
を利用しています。
基本的には、YOUTRUSTアプリでは最新のFlutter
バージョンを使うようにしています。
Flutter
は、マイナーバージョンのアップデート毎にパフォーマンスの改善が
行われている事が多く、メリットが多いと考えるためです。
ただ、感覚的にマイナーバージョンのアップデートの1週間前後でパッチバージョンが
リリースされる印象があるのですぐに導入するというよりはそれを待つこともあります。
朝日が入社した経緯
地味にこの質問もしていただきます、ありがとうございます笑
こちらの記事に詳細が載っているのでもし興味のある方がいらっしゃいましたら🙏
代表の岩崎から 「アプリを作りたいが、社内にアプリに明るい人がいないので入って欲しい」と
YOUTRUSTで連絡をもらったのが一番最初のきっかけです。
岩崎は社会人同期であり、共通の友人が多かったこともすごく親近感を覚えました。
そこから副業を始めたのですが、 当初は全く転職は考えていませんでした。
ですが、入って2日で心理的安全性を感じるなぁと社内のSlackでつぶやいてしまうくらい本当に人が良くて。
「Flutter
が出来る」「一緒に働く人が好き」の2つが
就職先に求める条件だったため、「ぶっちゃけうちどうですか?」と当時の1on1で訊かれて
「告白されるのを待ってる女子の気持ちです」とお伝えしたのを今でも覚えています笑
🎥 最後に
いかがでしたでしょうか?
念の為書いておくのですが、仮にカジュアル面談で同じ質問していただいたとしても
「書いたの読んでないんですか?」とか言う気は全くありません笑
エンジニア募集中っ!
YOUTRUSTでは、エンジニアを募集しています!
本記事を読んで、俺が解決してやるぜ!なんて思ってくれた方、
YOUTRUSTに1μmでも興味を持っていただけた方、は下のリンクよりご応募お待ちしておりまっす!