【勉強会メモ】〜クラスメソッドのモバイル開発を知る!〜全5回 #1 Android開発編
- 日時:2018/07/13(金) 19:00 〜 21:30
- 場所:クラスメソッド大阪オフィス
Androidエンジニアってなにするの?
橋本 早樹さん
クラスメソッドってなにやってるの? (モバイルアプリ事例)
アプリの制作フローとエンジニアに求められること
- プロジェクトリーダー
- デザインメンバー
- サーバメンバー
- アプリメンバー
コミュニケーションツール
- Backlog
- Slack
- chatwork
- Google ハングアウト
ヒアリング(要件定義)
- PLがお客様にヒアリング
要件定義フローのメンバーのふるまい
技術調査
- 要求が実現できるか
- 他ベンダーの仕様確認
- モバイルの機能調査
- サービスの仕様調査
設計
サーバ設計
アプリ設計
- 画面設計
- 通信処理
- 認証処理
求められること
- モバイル機能の把握
- APIの理解
- 仕様調整
実装
- Travis
- CircleCI
- bitrise
- GIthub
- Zenhub
- zube
求められること
- プログラミング
- デバッグ
- 原因調査・課題解決
- Logcat
- Profiler
- apk Analyzer
原因調査に役立つデバッグツール
結合テスト→リリース→打ち上げ
からの
運用スタート
求められるスキル
- サービス仕様の理解
- 顧客の業務内容の理解
運用する人のタスクを理解する
- プッシュ通知を送りたい
- ユーザーの行動を知りたい
- アプリが落ちた時の問い合わせに対応したい
運用ツール
- Firebase
- fabric
最近の傾向
- 全体プッシュではなく、セグメントを分けたプッシュ通知をしたい
- セグメントを分けたユーザーの行動フローを見たい
- コンバージョンに関与したイベントを取りたい
モバイル実装だけでなくビジネスやプロダクトに関するスキルも求められてくる
クラスメソッド(モバイルアプリサービス部)ってどうなの?
良い点
- フレックス勤務
- リモートワーク
- 新しいものをどんどん取り入れる
- 受託案件が多い
欠点
- 教育フローがない
- 発展途上
- 受託案件が多い
KotlinとAndroid Architecture Componentsを採用してみた
工藤 星命さん
採用したアーキテクチャ
アーキテクチャやライブラリ群
- Kotlin
- MVVM
- ライブラリ
- AAC
- RxJava(RxKotlin)
- DI(koin)
- DataBinding
MVVM
- Google samplesの
todo-mvvm-live-lotlin
やDroidKaigiを参考に設計
実装例
ViewModel
- ObservableField
- LiveData
ここまでの感想
- ViewModelが保持するプロパティ(値やイベント)とView感の通信の実現に必要なコードがほぼ無い(ライフサイクルも考慮される)
- ViewModelがViewの実装と密接なのでViewModelの単体テストが難しい
ViewModelでライフサイクルイベントを監視
- ViewModelで監視したいライフサイクルをアノテーションで追加
Koinフレームワーク
- 記述がシンプル
- AACのみでViewModelを作るときの煩雑さが軽減される
- ViewModelの共有も簡単
東京、大阪、福岡、離れていても大丈夫なリモートワーク術
西田 将幸さん
リモートワークの流れ
リモートワークのいいところ
- 通勤時間削減
- 満員電車から逃げられます
- 仕事する上でもっとも無駄な時間を削れます
- 災害時で交通機関が麻痺しても働ける
- 家族
- 家族とご飯が食べれます
- 子供を幼稚園に送っていけます
- 遠くの人と働ける
- 遠くの拠点の優秀なエンジニアと働ける
- 地方からでも東京とかのイケてる会社で働ける
リモートワークの悪いところ
- 圧倒的孤独
- 小拠点に集まって自分だけがリモートの場合に顕著
- 会議中話し始めるタイミングがつかみにくい
- 対策
- 会議室のハングアウトではなく全員PCのHOに入室
- 朝会後に雑談できる時間を30符ほど作る
- リモートどうですか?と声をかけてもらう
- 物理的距離
- 1つの拠点にタスクボードなどが置かれてリモートで確認するのが大変
- 対策
- ツールはすべてオンライン
- Cacco等で図を共有しながら説明
- 紙に書いたボードをカメラで写して共有
- 情報格差
- 1つの拠点にチームの多くがいてリモートが少数の場合に発生
- 対策
- 朝会中に「もや」を話す時間を容易
- チャットに話したいことを書いておく
- チャットではなくIssueで議論(あとで流れがわかる)
- コミュニケーションコスト
- 普通にしゃべるのより3倍はきつく伝わる
- チャットだと思ったより伝わらない
- 突然知ってる体で話される
- 対策
- 語尾に感嘆符
- チャットで描く時は結論から書き、必要以上に説明する
- コンポーネントが別れていても横断して担当できるように1つの大きな機能単位でタスクを割り振って非同期で仕事ができるようにした
まとめ
- オンラインが前提のツールが揃ってきて不便がなくなりつつある
- 必要なのは善良な市民(お互いの信頼)、小さなことでも改善していく気持ち