Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

6ヶ月間ライブラリを作り続けて得られたもの

こんにちは、iOSエンジニアのちぎらです。 先月になりますが、表題に関係する内容で登壇しました。 第5回スタートアップiOS勉強会 (発表資料: スター数689のライブラリを作る為にやった事) 年末ですし、今回は少しエモい話をさせていただきます。

経緯

2016年の10月までの6ヶ月間、一月にひとつライブラリを作るというルールを作り、細々とやっていました。初めはただライブラリを作るだけだったのですが、作ったものをより多く、海外の人にも見て使ってもらいたいという欲求が芽生えてきました。そこで、スター数を基準にして成果の評価をしようと決めました。

ありがたいことに最後の月に作ったライブラリが伸びました。 View2ViewTransition

一つだけルールを決めた

「スターください🌟」を言わない。

ライブラリやREADMEの分かりやすさを評価したかったので、甘えちゃいますし、言わないと決めました。

開発

ライブラリの用途/目的を明確にした

初めに画面遷移系のライブラリを作ろうというのは決めていて、色々な画面遷移に対応できた方がいいんじゃないかと思っていました。パラメータで簡単に画面遷移の方法を切り替えられたら便利だなと。

しかし考えた結果、それが利用者に求められているなら1種類だけで十分なんじゃないか。実装が多ければメンテナンスコストも大きくなるし、何より利用者に伝わりにくくなるし。という理由で、画面遷移を1種類に絞りました。その結果、ライブラリのコンセプトが明確になり伝わりやすくすることができました。

利用ケースも特殊ですので、このライブラリは一つの事をうまくやれれば良いという立場です。

READMEは英語で簡潔に

READMEって書くの億劫ですよね。 他の人が作ったライブラリを見る場合には必ず確認する場所なので、いくつかの点を考慮しました。

  1. 分かりやすいアニメーションGIFを作る
  2. コードの使用例はできるだけ簡潔に

アニメーションに使用している画像には、Apple, Sushi, Dorayaki を採用しました。外国の方に刺さるのではと思ったからです。

簡潔なコードの使用例を載せることはとても大事だと思います。使うのが大変なライブラリだと思われてはいけないからです。複雑なコードはサンプルプロジェクトを確認してもらえば済む話なので、READMEは最低限のコード量で足りると思いました。

今回はUI系のライブラリなので、利用者が目的を簡単に達成できる感を伝えるように注意しました。

拡散

CocoaControlsへの掲載

https://www.cocoacontrols.com https://www.cocoacontrols.com/controls/view2viewtransition

CocoaControlsにはUI系のライブラリがたくさん投稿されています。ここを見ている開発者は意外と多いようです。注意事項が英語でちょっと読みづらいですが、

  1. どのように使うかが簡潔に説明されている
  2. 分かりやすいスクリーンショットがある
  3. ライセンスを含んでいる

くらいを気にしたらいいのではないかと思います。

SNSでの拡散

CocoaControlsで数十のスターが集まるとTwitterで拡散をしてくれるアカウントの目に止まることがあります。View2ViewTransitionでは例えば以下のアカウントで紹介していただきました。

トレンドとしてフォロワーを数千人持っているアカウントに紹介してもらうことで、一気に沢山の人の目に触れるようになります。

また、@NatashaTheRobotさんの目にも留めていただけたようでブログで紹介していただきました。(ありがとうございます..!) THIS WEEK IN SWIFT September 19th 2016

得られたもの

スター

うれしい🤗

ライブラリ作成に関する知見

何を重視するかを定めて、それに対して結果が出たのでとても勉強になりました。今回はUI系のライブラリだったので、GIFなどに頼れないようなツール系のライブラリに関する知見も貯めたいです。

海外の開発者との交流

海外の方からも幾つもの issue や PR をいただきました。

普段は接する機会の無い開発者とissueやPRでやりとりができるというのは、OSS活動の醍醐味だと思います。アニメーションのパラメータ設定をできるようにしたり、push/popにも対応したり、要望をいただいて修正できた箇所もあります。

良いライブラリを作ることも、沢山の人に使ってもらうようにすることも同じくらい大事だと感じます。どうせなら、交流のある楽しいOSS活動をしたいですね🌟

積極採用中!!

子育て家族アプリFamm、カップル専用アプリPairyを運営するTimers inc. では、現在エンジニアを積極採用中! 急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください! 採用HP : http://timers-inc.com/engineerings

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる