Tribal Media House Engineering Blog

Made in Tribal Media House !!!

画像ビューアライブラリ FMImageView 公開のお知らせと私たちがOSS活動をする目的

こんにちは。トライバルメディアハウスの高田です。

 

先日、トライバルメディアハウス(以下、トライバル)初のOSS(オープンソースソフトウェア)である画像選択・画像加工ツール「FMPhotoPicker」についてご紹介しました。

tech-tribalmedia.hatenablog.com

 

FMImageViewについて

このたび、早くもトライバルOSS第二弾となる画像ビューアライブラリ「FMImageView」を公開しました!

多くの方が一度は実装したことがあるであろう “画像ビューア” 、これをSwiftで実装したのが本ライブラリです。

github.com

 

f:id:tribalmediahouse:20180905180958p:plain

 

今回はこのライブラリを開発するにあたって、私たちが日々どんな想いで開発を行っているかご紹介したいと思います。

「FMImageView」についての詳細は、README.mdをご覧ください。

 

画像・動画というメディアについて

画像・動画がインターネットコンテンツとして当たり前の時代になりました。

 

InstagramやTikTokといった画像・動画を中心に扱うソーシャルメディアが増え、ブログですら画像・動画を用いることが多くなりました。私たちトライバルの主戦場であるマーケティングの世界でも、消費者の生活活動を理解するソースとして、また、商品やブランドへの好意度を左右するコンテンツとしても、画像・動画はますます重要なものとなってきています。

 

そんな画像・動画をモバイルアプリケーションで扱おうと考えたとき、意外とデザイン・実装において考慮すべきポイントが数多く存在します。さまざまな拡張子やメタ情報との闘いも待っています。

もちろん、OS標準のコンポーネントやUIはあります。しかし、いわゆる「いい感じ」のビューアが欲しい、となると実装が必要となる……という状況は多くの方が経験したことがあるのではないでしょうか。

 

私たちが欲しかったビューアの「いい感じ」とは

この「いい感じ」がプロダクトやサービスの特徴になる訳ですが、私たちが今回画像ビューアに求めた「いい感じ」は以下のような項目が挙げられます。

  • ページネーションを持つスライドショー
  • ダブルタップでズームイン/ズームアウト
  • デバイス上にない画像データの表示とキャッシュ
  • ふわっとしたアニメーション

言葉にするとこれだけですが、実装する際にこれらのイメージを持つ大切さは、エンジニアの皆さまならご理解いただけるのではないでしょうか。

 

これらの「いい感じ」をまとめると「シンプルである」ということがポイントと言えます。

 

画像ビューア単体として考えると、とても小さく派手さのない要素ばかりです。しかし私たちは「アプリケーションとそのアプリケーションを介して提供するサービス全体」として考えることを重視し、あえてこれらにポイントをおいて開発を行いました。

 

今回の「FMImageView」も、私たちが展開しているメディア「Funmee!!」のiOS版アプリに実装するものとして開発しましたが、「アプリケーションとそのアプリケーションを介して提供するサービス全体」として、画像によりユーザー間の相互刺激を促したりユーザーの趣味嗜好を発信しやすくする、という狙いがありました。

 

これは、「画像を通した体験や価値」であり、「画像を扱うことによる体験や価値」ではありません。つまり、「画像を扱うことだけでユーザーへ提供できる価値は決まらない」のです。

もちろん、UI/UXがユーザーに与える印象や体験はとても重要なポイントです。直感的であり、かつユーザーを驚かせない、理解できるUI/UX、そして操作性も失いたくありませんでした。

 

エンジニアがコードを介してユーザーに提供できる価値とは

皆さんも、日々コードを書く際、アドレナリンがドワーッと放出され「もっと書きたい!もっと作り込みたい!」という気持ちになったことがあるのではないでしょうか。

機能を充実させたい、インターフェースやAPIにこだわりを持ちたい、より格好良く、より速く……いろいろな想いを抱いて開発をしますよね。

 

しかし、そのこだわりや想いの全ては、本当にユーザーが求めているものでしょうか?サービスを使うユーザーが、本当に欲しいモノは何なのでしょうか?

「“ユーザー”って言葉にするのは簡単だけど、どんな人が使うかなんて分からないから、具体的に考えても……」という方もいらっしゃるかもしれません。ですが、私たちは具体的なユーザー像(ペルソナ)を描き、その人にどんな価値を届けるべきかを常に想定すべきだと考えています。

 

特に私たちは、ユーザーは「どんな体験をして」「どんな時間を過ごしたいと感じているのか」を大切にしています。

 

エンジニアの思想をコードで示すことを諦めない

  • もっと書きたい、という気持ちをぐっとこらえる。
  • 書いたコードがユーザーに届いた瞬間を想像する。
  • そのコードから生まれたプロダクトがユーザーに提供するベネフィットを諦めない。
  • ユーザーのことを考える。
  • ユーザーのためにコードを書く。

私たちはこうした気持ちや姿勢を忘れてしまわないように、日々心がけています。

 

もちろん、ふと忘れてしまったり、優先度が下がってしまうときもあります。

特に、マーケティング業界はとても進歩が早いので、毎週のようにプロダクトへのニーズや必要な知識が変化しますし、その気持ちや姿勢を忘れていたことに後々気づくこともあります。

 

そんな状況下でも、エンジニアとしての気持ちや姿勢を大切にしたい。諦めたくない。世の中をより良くしたい。

 

そのために、私たちはソースコードにその気持ちや姿勢を込めて、OSSを公開しています。OSSとして公開することで、より多くの方に私たちの気持ちや姿勢といった“哲学”を知ってほしいのです。

 

さらにベトナム現地法人のエンジニアとのコラボレーション

実は、今回この「FMImageView」は、ベトナムにある現地法人「TMH Tech Lab.」のメンバーだけで開発をしました。

普段は離れた場所で活躍しているメンバーによる開発ですが、上記の“哲学”はしっかり反映されていると思います。

これは、会社として、そしてチームとして普段から開発に対する姿勢が共有できていた成果でもあります。



今日は、画像ビューアライブラリ FMImageView 公開のお知らせと私たちがOSS活動する目的について書かせて頂きました。

 

トライバルでは、ユーザーのためにコードを書きたい! コードに“哲学”を込めたい! というエンジニアを絶賛募集中です!

Swift、Golang、 PHP etc. 言語に関わらず、「適切な技術を適切な場所に」をモットーにしています。

 

ぜひお気軽にお問い合わせください!