vol.1早くも1月が終わろうとしていますが、明けましておめでとうございます。モバイルアプリエンジニアの山下です。新年一発目の今回は、モバイルアプリエンジニアらしく弊社のiOSアプリで行った施策のことについて紹介していこうと思います。去年は業務委託の方にもジョインしていただき、沢山の施策を進めることができました。その中でも今回はリリースノートに載らなかった小さな改善に触れていきます。機能面だけではなく開発面についても、下部に少しだけまとめています。高速バスの便一覧を表示する画面は一般的な差分取得で、スクロール中にイイ感じに次の情報を表示するように調整しています。言え、回線速度が遅いユーザや高速にスクロールした場合に表示が追いつかなくなることが多かったのでインジケーターを下部に設置しました。これにより、スクロールが止まってもまだ便が存在することをユーザに伝えることができたので離脱率が下がりました。便名を余り表示ではなく全文表示するように変更BeforeAfterスクロールパフォーマンス等の懸念から高さを固定して余り表示にしていた便名を全文表示するようにしました。このアプリは可変の表示コンテンツがとても多く、スクロールパフォーマンスはリリース当初からの課題でしたが、優秀な開発メンバーに地道にチューニングしていただいた結果、差分更新ライブラリやUIフレームワークを使わずに主要デバイスで60FPSをキープできるようになりました。以前在籍していたインターンメンバーに着手してもらい、スケジュールの都合で途中で中断してしまった機能ですが、その後数ヶ月越しに追加しました。高速バスは複数人で利用するユーザも多いので日々地味に使われています。実装後に他メンバーからアプリアイコン長押しで共有メニューがあることを教えてもらいました..汗ホーム画面で選択中の条件数を表示BeforeAfter検索では多くの条件によって絞り込みができますが、これまではホーム画面において現在条件を設定しているのかが判断しづらいUIになっていました。そもそも条件を絞り込めることを認知されていないユーザが一定するいることも課題にあり、気持ちボタンを大きくして選択中の条件数を表示するようにしました。地味な変更ですが、ボタンの利用率が10%ほど上がったので侮れません。派手な変更だけでなく、地道に改善していくのは大切です。なにも特別なことはしなくてよいと思いましたが、蓋を開けてみると「条件変更や予約画面(Webview)では、閉じる際にアラートを出すべきではないか」、「TableViewからWebviewする際にモーダルなのは違和感があるのでは」など、地味に制御が必要でした。アップルの純正アプリを参考にして挙動を調整し、現在は違和感がなく誤操作の心配もない振る舞いをしています。読み込みが長い場合にインジケーターを表示バス比較なびは、比較サイト(アプリ)なのでユーザが予約する画面はWebviewで各予約サイトを表示しています。その際、予約サイト側の読み込みが遅かったりするとどうしても離脱率が高くなってしまします。これを解決すべく、Webviewのローディングバーとは別に目立った形でインジケーターを表示するようにしました。発生パターンがイレギュラーなので正確に計測はできていませんが、以前よりも読み込みできないといった問い合わせなどが減ったので効果はあったように感じます。今後はWebviewまわりの拡張をして予約サイトのエラーを強調したり、入力のサポート機能を追加していきたいと思っています。おまけライブラリを大量に削除バス比較なびはリリースされてから3年以上経っていますが、その過程で一部分のみ使ったり、導入しようとして浸透しなかったライブラリがいくつか存在しました。UIライブラリをはじめ、EasyPeasy、PinLayout、Nuke、RxSwift..これらは以下の問題の原因となり、日々の工数を少しずつ蝕んでいたので一掃しました。使い回しのしづらいコードの発生ライブラリ仕様の認知コストこれによりアプリサイズは10~20MBほど軽減し、高速なCIと一貫した業務ロジックを取り戻しました。ライブラリは便利ですが、用量用法を守って他者に任せすぎずに頑張ることも大切ですね。SwiftGenでリソース管理をタイプセーフにする以前までEnumで自前定義していましたが、段々と管理が面倒になったことと人間が文字列を管理する以上、ヒューマンエラーの根本的な解決にはならないのでSwiftGenを採用することにしました。前の項目とは反対にSwiftGenは一部分ではなく、全体での自動化&ルールになるので導入により効率が増しました。framworkで分割を進めていたので相性がよかったです。シェイクジェスチャーでネットワークログを表示いつでも気軽にネットワークログを確認したかったので開発環境のみにこのライブラリを追加しました。ひと言、非常に便利です。https://github.com/pmusolino/Wormholy以上、ざっくりとした紹介でしたがいかがだったでしょうか?リリースノートに載らないような地味な変更でも、ユーザ体験や数字が大きく変わるのがサービス開発の面白いところですね。今後も地道にアプリのクオリティを上げていきたいと思います。無料apps.apple.com採用情報LCLではユーザ目線でサービスを作っていけるメンバーを募集しています!このブログを読んでLCLに興味を持っていただけた方は、是非一度お話を聞きにいらしてください。EC2インスタンスの停止忘れを防止するWebエンジニアの森脇です。LCLでは、普段使わないテストサーバ...2018-05-27がんばるタイム、止めましたフロントエンドエンジニアの岡田です。(1)執筆者リストid:oss-rdbmsid:kabrgid:hoshtid:ktx_kuid:yamshtaid:kavis777id:ytkr0813id:shymstid:kasei_sanid:lcl-engineer月別アーカイブ検索はてなブログをはじめよう!lcl-engineerさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。