こんにちは。freee のモバイルチームでiOSエンジニアをしている大内と申します。
先日3/21 - 3/23に開催されたtry! Swift 2019 - Tokyo に弊社iOSエンジニア3名で参加してきました。今回はゴールドスポンサーとして協賛させていただき、ブース出展もさせていただきましたので、その参加レポートをご報告させていただきます。
なお、freee のモバイルチームは過去のtry! SwiftイベントやiOSDCなどにもブース出展しており、そちらのレポートもございますので合わせてご覧いただければ幸いです。
ブースの様子
freee のユーザー様含めたくさんの方とお話できてとても楽しかったです!
お話させていただいた方々の中には業務外でアプリを作られている方も多く、ブースでお話させていただいた私も「ワシも個人でアプリを作って、あわよくば著名Youtuberに紹介されるなどして莫大な副収入を...」と個人開発の機運が高まりました。
また、ブースで配布させていただいた確定申告ガイドが非常に好評でした。ブース出展時はだいたい配布しているので、カンファレンス等で freee のブースを見かけたらお気軽に遊びに来てください!モバイル関連のカンファレンスでは freee のモバイルエンジニアがアプリの使い方を簡単にご紹介させていただく機会も設けさせていただいております。
確定申告ガイドもキーキャップもまだまだ在庫ありますよー #tryswiftconf https://t.co/FXhtMHeOl4 pic.twitter.com/jEgilCClIu
— 【公式】freee Developers (@freeeDevelopers) March 22, 2019
ちなみにこのガイド、PDF版もあるのです。
/
— freee | 全自動クラウド会計ソフト (@freee_jp) March 13, 2019
確定申告の基本知識をまとめた📘ガイドブック📘をお届け
\
申告のお困りポイントには、freee作成のガイド(PDF)を活用ください!
基礎知識から書類の作成方法まで、分かりやすくまとめています。
↓ダウンロードはこちら↓https://t.co/F8d0vPnJXS
印象的だったセッション
どのセッションも楽しく素晴らしい発表だったのですが、ここでは私が翌日から実践してみたいと思った発表について簡単に触れてみたいと思います。
テストケースでMemory Leakを発見する
tarunonさんからメモリーリークをチェックするassertライブラリXCTAssertNoLeakの発表がありました。テストのコストに関しては導入コストと維持コストがあると思うのですが、XCTAssertNoLeakはどちらのコストも低そうで、帰ったらすぐ試してみたいなと思っていました。
導入コストに関しては、いわゆるユニットテストだとそもそもテスト容易な設計になってない場合、「テストを書こうとするとリファクタリングが必要、ゆえにリグレッションが発生するかもしれないがそれを手当するテストがない...」といった感じで心が折れると思うのですが、メモリーリークテストに関しては対象のソースコードがある程度ダメでもちょっとしたボイラープレートを書けばパワープレイで導入できてしまいそうな印象です。
維持コストに関しては、リグレッションを検知した際に、テストかアプリケーションの実装を修正する必要があるわけですが、メモリーリークテストの場合は導入時のちょっとしたボイラープレートっぽいのものを書いたら、メンテフリーで長期稼働が期待できそうです。
とはいえ、こちらのライブラリ導入にはSwift5対応が必要なので、freee 本体ではなく、まずは自分でチマチマとメンテしているライブラリで試してみています。
(Xcode10.2でCarthageを使って導入してみたのですが、image not Found
のエラーが出てしまいうまく動きませんでした...😭)
突然のゾンビ自慢
Debug Memory Graphでこのような芸術的な循環参照を見つけると嬉しくなりませんか。薄目で見ると六芒星のように見えてきて愛着が湧いてきます。 メモリーリークテストでゾンビ検知を自動化できるようになると、もう君ともお別れですね。 ちなみにこちらのゾンビは副作用を発生せず、静かに眠っているだけで安全なのです。。
モバイルのデザインシステムを構築する
本発表の発表者であるKristina FoxさんはIntuitのQuickBooksという財務マネージメントアプリのiOSエンジニアで、freee のエンジニアである私としてもこのセッションは今回のtry! Swiftで最も楽しみにしていたセッションの一つです。
freee でも最近UIコンポーネントのライブラリを作って再利用可能なUIコンポーネントをライブラリにまとめたり、歴史的な経緯で混沌としているスタイルを統一するためのスタイルガイドの作成を行っているのですが、なんとなく手探りで進めていたので、発表を聞いて全体感が整理できてとても参考になりました。
また、スライドの中で言及されていたmaterial-components-iosは今回のスライドではじめて知ったのですが、ドキュメンテーションや実装、サンプルの作り方などとても参考にしていきたいと思います。
ポートレートモードを自作しよう
koooootakeさんから深度情報のない2次元画像をポートレイトモードに変換するとても面白い発表がありました。この発表に関しては個人的に未知の内容ばかりでとても驚きに満ちた発表で興奮しました!!
スライドで「おお、すごい!」と感じた各ステップも全てソースコードで公開される太っ腹で、発表までの試行錯誤に関しても記事が公開されておりとても楽しい内容でした。Qiitaのこちらの記事も面白いので一読をおすすめします。 公開されたソースコードとスライド中で触れられているGrabCutなどのキーワードを手がかりに、自分も画像処理についてキャッチアップしていきたいなと気持ちが高まりました 😤
最後に宣伝
freee のモバイルチームは業務の一環でtry! SwiftやiOSDC、DroidKaigiなどのモバイル関連のカンファレンスに参加しておりますので、freee Tシャツを着た社員を見かけたら気軽にお声がけください。またエンジニアを募集しておりますので、興味があればぜひご応募ください。