あるiOSアプリのエンジニアがRuby on Railsのプロジェクトに加わった話

rubyで気付いた

私の場合は長らくiOSアプリのエンジニアとして関わっており、今でも基本的にはiOSアプリのプロジェクトを中心に参画していますが、新規サービスの案件でRuby on Railsで実装することになり、ノウハウを持っている人が少なく、不安要素の多い状態の中でで開発を行って、無事にサービスインできたという経験があり、かなり戸惑ったものの個人的には新鮮な経験ができたと考えております。

ここでは、iOSエンジニアとして、Ruby on Railsのプロジェクトに参画して、気づいたことや、個人的な考察などを述べてみたいと考えています。

Ruby on Rails開発のプロジェクトに加わったのは偶然に近かった

自身の場合は長らくiOSのアプリ開発がメインで、スポットでサーバーサイドやウェブ、Androidアプリの開発を行ったことがあるという状態だったため、Ruby on Railsについてはほとんど触れたことのない状態であったという段階でした。

その中で、私はその新規のアプリのプロジェクトにおいては要件定義段階から関わっており、それが進行するにつれて、何で実装するのかという段階に達した時に、新規プロジェクトでしばしば導入されることの多いと言われていたRuby on Railsで実装するという方向で私も含めてエンジニアサイドで一致したという状態でした。

しかしながら、当該プロジェクトでは主にエンジニアは私含めて3人とデザイナー1人と少人数、かつ当時Ruby on Railsのノウハウを持っているのは1人という状況だったこと、メンバーでRubyのノウハウを持っている人が決して多くなく、オフショアでもPHPの方が有力という状態であったことから、方針転換も検討されるほどでした(最終的には当初の予定の通り、Ruby on Railsで実装する方針になった)。

その後、自身もRuby on Railsをほとんど知らない状態で、資料を見たり他のエンジニアのサポートを受けながら開発を始めて、幸いにも自身が関わっていたところに関しては致命的なバグもない状態でリリースにこぎつけることができました。

個人的には、いくつかのポイントをおさえていれば、ある程度は他のプラットフォームや言語の開発においてもある程度は使いこなせるようになるんじゃないかなと考えています。

プログラミング中

基本的な言語仕様は大体似ている

プログラミング言語においては、特に新しく登場した言語では顕著であるものの、多くの場合は他の言語の影響を受けて開発されたというものが多いということもあり、その言語仕様はかなり似ているといえます。

したがって、基本的な言語仕様に限っては、SwiftでもRubyでも非常に似ており、だいたい読んでいれば大体わかるという状態でした。

そのため、律儀にチュートリアルを一から読むということは不要で、おさらいおよび相違点の確認という感覚で基本的な言語仕様を確認していました。

フレームワークやツールキット類はそうもいかない

一方で、Rubyで主に使われているRuby on Railsフレームワークは、iOSアプリ開発で使われているCocoa Touchとは違って、ウェブアプリを開発するフレームワークであるという関係上、UIや各種ツールキット類は多くの面で別物となっており、そのあたりは相応に苦戦していました。

また、iOSの開発では特段に意識する必要のなかった開発環境等においても、Railsアプリの開発では明示的に構築する必要があるということもあって、実際の開発に加えて対応しなければならないことも少なくないことから、手間はかかると言えます。

そういう点から、SwiftやObjective-Cを使っいたのであれば、基本的な言語仕様は違いさえわかればほとんど時間をかけて習得する必要はないので、むしろ重点的にフレームワークやツール類を使えるようにした方が良いと考えています。

気になることを話し合う

実際にやってみないとなかなか身につかない

とはいえ、実際に必要に迫られないと、なかなか身につかないといえるでしょう。というのは、必要に迫られていない段階ではしばしば無意味に調べ物をしたり、あるいは実際に使うというような実践を前提にした学習にならないという問題が多いと考えています。

一方で、実際に必要になったときは、「〜〜をするためには〜〜が必要」という考えが強いので、何が何でも使えるようにしようという意識が強いので、身につきやすいと言えます。

これは、私の実際の開発でもしばしば実感したことで、Railsや他のフレームワークを使った時も、実際に必要になった時とそうでないときで習得の効率は結構変わっていました。

とは言え、これも弊害があり、「あらかじめ習得しておけば」ということがしばしば起こるので、できればそうなる前に事前に身につけておきたいところではあります。ここは私もなかなか至らないところではあります。

最後に

今回は、私がこれまで主にSwiftでiOSアプリの開発を行なっていて、今でもそれは続いているけれど、半ば偶然にRuby on Railsのアプリを開発することになったことと、それに関して諸々のことを書いて見ました。

こういったケースに遭遇することは多いかもしれませんし、少ないかもしれません。

スキルチェンジは大きな決断を迫られるというイメージはありますが、スキルチェンジ自体は決して不可能ではなく、これまでに身につけてきたこともある程度は応用を利かせることが出来るため、これぞ好機という感じで、気負わずに挑戦してみるというのも良いと考えています。

もし、今の開発で物足りなさを感じたときには、ときには違ったプラットフォームでの開発というのも考えて見てはいかがでしょうか?

Ruby関連記事

人気記事

編集部おすすめ記事

この記事を読んだ人はこんな記事を読んでいます

案件探しやフリーランスになるための相談する

最新お役立ちコンテンツ一覧