第一部(4月~7月)働き方モバイルアプリエンジニアの山下(@yamshta)です。最近はショットを追加したスターバックスラテにハマってます。プロジェクトが大詰めだったり、評価や目標関連のことで忙しい時期ですね。私も非常に忙しい毎日を送っていて、珍しく今月の残業が15時間を超えそうです。まとまったブログを書く時間も取れないので、今回はざっくりと月別に今期の振り返りをしようと思います。全社の目標を達成するためにエンジニアができることは何かをチームで議論し、サービスの成長や精度などいくつかの視点からバランス良く項目を設けて目標を設定しました。個人目標は、チーム目標の項目に対するモバイルアプリのこととチームをサポートすることの2軸で設定しました。リリースこのリリースでは、今までマイページ画面に含まれていた「保存した条件画面」と「お気に入り画面」をタブバーに移設しました。これにより自分が保存した情報を1タップでアクセスできるようになりました!BeforeAfter↑タブバーのアイコンが変わってますモバイル管理画面の作成PUSH通知の配信や強制アップデート等のシステムパラメータは、長い間スプレッドシート&SQL直インサートで運用されていました。そのため、企画メンバーから度々エンジニアへ依頼がきていたので、モバイルアプリ専用の管理画面を用意してブラウザからPUSH通知の配信や情報の閲覧をできるようにしました。このおかげで依頼も無くなり、自分たちも配信テストがしやすくなったので良い取り組みでした。日常的にメンテナンスできるくらいのリソースがほしいですが、なかなか人が足りていません。リリース閲覧した予約サイトの履歴が見られる「閲覧履歴画面」を追加しました。これまでは前に見たバス便情報がどれかわからなくなることありましたが、この機能によりその心配は無くなりました!この機能、新規に画面が追加されていたり、履歴を保存するという振る舞いから作業が重そうな雰囲気を漂わせていますが、機能自体の実装期間は1日程度で終わりました。UIの実装でとても時間が掛かりました。この画面で使用しているUI要素は検索結果の便情報の要素と同じデザインで構成されているのですが、元となる検索結果のUI実装が描画パフォーマンスを上げる試行錯誤から非常に解読しづらいコードとなっており、リファクタ&細分化した後に使い回すよりも、新規に実装して差し替えた方が作業コストが低いと判断しました。後に聞いた話によると、LCLがモバイルアプリを提供するプロダクトは初めてだったため、エンジニアもデザイナーも標準UIをベースに手探りで仕様を詰めたそうです。その過程で諸々の理由からカンプ通りにはならなかった要素がいくつか存在していました。xibとソースコードを元に実装を進めましたが、至る所で軽微なデザインの差異が発生してしまい、デザイナーと度々の調整が入りました。(ちなみに、企画メンバーとデザイナーも既存の表示のばらつきは気になっていたとのことで、リプレースは理解と応援をしていただけました)五月雨の調整も続きましたが、協力もいただきながらきれいに実装することができました。この時、ビルドするまでUIを確認できないというデメリットを嫌というほど感じたコードレイアウトは、その後の実装で止めることにしました。私が未熟だっただけでうまく利用する方法はたくさんあると思いますその他にもこのリリースでは以下の機能も追加しました。26以上にする対応を行いました。アプリのセキュリティおよびパフォーマンスの改善についてhttps://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.htmlAndroidはiOSと異なり、最低のサポートAPIレベル(バージョン)に加え、最新のサポートAPIレベルの定義が必要です。これまでは最新のサポートAPIレベルを提供されている最新のレベルに追随していなくてもリリースできていましたが、2018年11月から規定のAPIレベルに追随していないとリリースができないようになりました。実装した際にローカルデータを操作するクラスの設計と呼び出し方法を見直しました。そこでこれを機にViewやController、○○Managerにも実装されていたコードを排除するリファクタリングを行いました。これにより、綺麗な設計に少し近づきました(道は遠い)iOS開発環境の整備これまで利用していたSwiftLintに加え、SwiftFormatとxcprojectlintも採用しました。情報が古くなっているかも知れませんが、詳細は以下の記事をご覧ください。techblog.lclco.comtechblog.lclco.comこれにより、一人での開発でも細かいヒューマンエラーやコーディングスタイルのズレを機械的に無くすことができました。いう仕組みをしっかり用意することと、その時間を確保できる環境であることは大事ですね。以下の記事でも紹介しました「秘密のアクション」に新しく機能を追加しました。techblog.lclco.comユーザ固有の情報を表示ログのトースト表示クラッシュレポート送信テスト企画メンバーから問い合わせがあったり、開発中に何回も発生するような操作はなるべくアプリから1タップでできるようにしています。PUSH通知をテストするための固有の情報が知りたいという要望や操作履歴がない状態に戻したい場合の操作などです。残りの8ヶ月もこのペースを維持していてほしいですね。ここまでお付き合いいただいた方、ありがとうございます。8月からの第2部も近日公開予定する予定です。お願いします!LCLではプロダクトのことや開発の仕方まであらゆる場面で楽しく効率的に仕事を進めたいメンバーを募集しています!このブログを読んで興味を持っていただけた方は、是非一度お話を聞きにいらしてください。Railsでサービス開発をしている弊社ブログに蓄積された過去記事を振り...モバイルアプリエンジニアの山下です。第三部(12月~3月)モバイルアプリエンジニアの山下(@yamshta)です。第二部(8月~11月)モバイルアプリエンジニアの山下(@yamshta)です。前回の記事...2018-12-28LCLで2018年後半にチームとして新しく取り組んだことモバイルアプリエンジニアの山下です。1検索はてなブログをはじめよう!lcl-engineerさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。