発信しないのは「仕事をしても請求書を出さない」のと同じ。堤修一が開発~発信の循環を作る理由

ブログ、書籍、そしてOSS。iOSエンジニアの堤修一さんは、常に「発信」のこだわり続けてきました。数多くのスターを獲得した『iOS-Sampler』シリーズも、発信活動の一環だと説明します。なぜここまで発信にこだわるのか、堤さんに聞きました。

発信しないのは「仕事をしても請求書を出さない」のと同じ。堤修一が開発~発信の循環を作る理由

「昔は、他のエンジニアと会話するのも怖かった。やりとりされる言葉の意味すら分からなかったので」

iOSエンジニアの堤 修一(つつみ・しゅういち/ 1@shu223さんは、駆け出しだった過去を振り返ってこう言います。30歳を超えてから本格的にプログラミングに取り組み、あるときは「できないやつ」と見なされ、窓際も経験した堤さんを磨いたのは、強い学習意欲と学習したものを様々な形でアウトプットする、発信力。そして発信から次のミッションを獲得するという、サイクル作りにありました。やがて、獲得したスター数が2万を超え、iOSエンジニアコミュニティにおいて大きな存在感を放つほどに。

大きな反響を獲得したOSS『iOS-Sampler』は、こうした学習~開発~発信というサイクルの中から偶発的に生み出されたものだと、堤さんは言います。世界のiOSエンジニアから参照される、iOS-Samplerの裏側にある、エンジニアの成長と生存のための戦略を聞きました。

朝・昼・晩ひたすらコードを書き、腕を磨いた日々

──まずは堤さんがプログラマになった経緯について教えてください。

 僕、プログラマとしては相当に遅咲きだったんです。情報系の大学を卒業しているものの、あまり勉強熱心な学生ではなかったので、プログラムを書くことは本当にできなかった(笑)。大学卒業後に結構大手の技術系の会社に就職したんですが、肩書き上はエンジニアだったもののプログラムを書く仕事はしていないんです。そりゃあ、プログラムを書けないやつにエンジニアの仕事は与えられませんよね。ですから、当時は外部との調整役のような仕事がほとんどでした。

何年か経つとだんだん物足りなくなってきて、週末にスクールに通ってはプログラミングを勉強し、ある本をきっかけに知った面白法人カヤックにプログラマとして転職しました。その頃、年齢は31歳でしたね。

2

堤 修一さん:大学卒業後、大手通信会社や大手メーカー勤務を経て、面白法人カヤックに入社。iOSエンジニアとしてのスキルを積み、その後、長年の夢であったアメリカ企業への転職を果たす。現在はフリーランスのエンジニアとして、数多くの開発案件に携わる。「BONX」や「Moff」など多数のアプリ開発を手がける。著書に『iOSアプリ開発 達人のレシピ100』、共著書に『iOSxBLE Core Bluetooth プログラミング』『iOS 11 Programming』がある。

──言葉の通り、遅咲きですね。相当に努力してiOSアプリ開発の技術を身につけたのでは?

 カヤック入社後は、とにかく朝から晩まで毎日ずっとコードを書いていました。スキルがない焦りもありましたが、当時はコードを書くのがとにかく楽しかったんです。当時、すでに結婚していたのですが、オフィスから徒歩5分の家に住んで、通勤にかかる時間を短縮して、その分プログラミングに取り組む時間を最大化するようにしていました。

一回すごく悔しかったことがあって。人気マンガの『ワンピース』をテーマにしたアプリ開発案件がカヤックに来たんです。当時ジャンプの誌面ではちょうど頂上決戦の連載中で僕もめちゃくちゃハマってて、「やりたいです!」と担当ディレクターにメールしたんですけど、すでに他の人がアサインされていたんです。

すごくショックで、会社に入ったiOS関連の仕事はまず自分に振られるようなポジションにつかないと、と思ってさらに努力するようになりましたね。

──そもそも、なぜiOSに本腰を入れて取り組もうと考えたのでしょうか。

 本当は、僕はFlasherになりたかったんです。大企業時代にスクールに通ってAction Scriptを勉強して、カヤックに二度目の応募をした、という経緯があります。しかし、当時のカヤックにはすでにFlasherがいて、初心者Flasherは必要なかったわけです。

iOSはFlashと同じように成果物がエンドユーザーから見えるプログラミングなので、そちらにも興味はありました。カヤックにもiOSを書けるエンジニアはいたのですが、みんなFlashやサーバーサイドなど、それぞれの専門で忙しく、僕はちょうどサーバーサイドエンジニアとして使えなさすぎて仕事がはがされた状況だったので、iOSに専念することができた。だから、ひたすらiOSの勉強をして、「カヤックに来たiOSアプリの案件は全部担当したい」くらいの気持ちで働いていましたね。

おりしも、スティーブ・ジョブスがFlashはiPhoneで動かさない、とコメントしたころです。僕にとってはしめたもんです。なにしろ、これで凄腕のFlasherはiOSの世界には来にくい、となったわけですから。多くの人にとってジョブスの判断はいい迷惑だったでしょうが、僕にとってはラッキーでした。元寇で神風が吹いて強力なモンゴル軍が退却していったような感じです(笑)。

──時代も味方したと(笑)。とはいえ、なんのお手本もない状態から技術を学ぶのは難しいと思います。iOSアプリ開発の技術を習得するため、参考にしたコードはありますか?

 それに関しては良い話があって。僕がカヤックで最初に担当した案件は、とある大手デリバリーフードチェーン店のアプリだったんですね。注文すると、iPhoneのGPS機能を使ってメニューを現在位置に配達してくれるというものでした。

僕はアプリの機能改修を担当していたんですが、バージョン1のソースコードはなんと当時外部からiOSエンジニアとして開発に参加していた岸川克己さんが書いていたんです。

──なんと! ここで岸川さんと繋がってくるんですね。不思議な縁というか。

 コードにはiPhoneアプリ開発のエッセンスが詰まっていました。画面がたくさんあって、GPSやフォーム入力、決済、ゲームなど多種多様な機能が網羅されている。まるでiOSアプリ開発のサンプルコード集みたいでした。僕にとっては教科書のような存在だったんです。

嫌々ながらスタートした情報発信が、人生を変えることに

3

──堤さんは情報発信やOSS開発を積極的に行っていますが、何をきっかけにそれらを始めたんですか?

 最初は嫌々ながらのスタートでした。カヤックでは期ごとの目標を立てる必要があったんですが、どんな内容にしようかと先輩エンジニアに相談したら、「プレイヤーとしてずっとやっていきたいなら、特定の分野で頭角を現すぐらいでないと厳しい」「手始めにOSSでも出してみたら?」と。いやいや自分のソースコードを晒すなんて怖すぎるし全然やりたくない、と返すと、「じゃあまずはブログでも書き始めたら?」と言われて、それでブログを始めたんです。

──そこがスタート地点なんですね。

 最初は内容に自信がないからとにかく数を書くことにしたんです。3か月くらいは毎日書いていたかな。1つひとつの記事クオリティーはたいしたことないけれど、数がたくさんあるからまあいいでしょう、みたいな(笑)。

でも、3か月も書いていたら徐々にクオリティも伴ってきて、はてなブックマークも少しずつ付くようになって。だんだんと発信者としての自我が芽生えてきたという感じですね。

──その流れで、GitHubにOSSをアップするようになったのでしょうか。

 初めてアップしたのは、ブログを執筆する過程で書いたサンプルコードでした。当時はGitの使い方にも全然慣れていなかったし、GitHubがGitをHubする場所だということすら分からないまま使っていたくらいですから(笑)。慣れない手つきで、チュートリアル通りにサンプルコードをアップしました。それが最初ですね。

──そこから徐々に、OSS開発に乗り出していったのですね。手応えを感じてアップしたのはどんなものだったのでしょうか?

 メモリの消費量をUI上に表示してくれる4Statsというライブラリです。当時はXcodeでその値を見られる機能がなかったんです。自分で使いたくて作ったものですが、数十スターほどついて、当時としては手応えを感じました。

5

Statsのデモ画像。

他には、RPGゲームのようなUIやエフェクトを生成できる6>UIKitForGameとか。エゴサーチするとけっこう評判が良くて、嬉しかったですね。

7

▲UIKitForGameのデモ。こうしたRPGゲームの動きを生成できるOSSだ。

勉強がてらアップしたiOS-7-Samplerが意図せず大ヒット作に

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く