athome-developer’s blog

不動産情報サービスのアットホームの開発者が発信するブログ

入社3年目に体験したハイブリッドアプリ開発

はじめまして。情報システム部の比留間です。

アットホームには2018年に新卒で入社し、
コンシューマー向けサービスの開発グループに所属しています。

現在は、「お部屋探しアプリ 作成プロジェクト」で開発リーダーをしており
このプロジェクトでの新しい取組みを、1つご紹介したいと思います。


目次


アプリを開発するに至った経緯

まずは、開発するに至った経緯です。
現在、お部屋探しアプリは、iOS版・Android版の2種類を配信していますが
それぞれを別の言語(iOS版:Swift・Android版:Java)で作っています。

1つの機能を実装するにも、2つのソースコードを変更しなければならないため
単純計算で、開発工数が2倍…誰も幸せになりません。

せっかくの自社開発なのに

  • 企画→開発→リリースまでのスパンが常に長い
  • 人的リソースも倍必要

などの問題を、そろそろ解決したいという思いが社内で募っており
今回のプロジェクトで、解決に動くことになりました。

上記以外にもUIが古い、保守開発を外部委託しており社内に分かるメンバーがいないこともプロジェクト発足に至った一因です。

問題解決

スマートフォンアプリって?

本題に入る前に「Webアプリ」「ネイティブアプリ 」という単語について簡単に説明します。

どちらも、スマートフォンから利用できるアプリケーションです。

Webアプリ ネイティブアプリ
スマートフォンアプリの1分類
開発言語 HTML5,CSS,JSなど ios:swift,objective-Cなど
androidJAVAなど
どこから使えるか ブラウザからの検索 AppStore(ios)やGooglaPlayStore(Android)
インストール 不要 必要
端末自体が持つ機能
(カメラ、通知など)
ほぼ使えない 使える

身近なところで例えると、今皆さんが見ているこのブログは「Webアプリ」に分類され
アプリストアからインストールしているものの中に「ネイティブアプリ」という分類があります。


問題の解決方法

さて、ここからが本題で「2つのソース」問題をどう解決するかというお話です。
結論から言うと、1つのソースで開発することを実現します。

今のお部屋探しアプリはネイティブアプリですが、
プロジェクトで開発しているアプリはハイブリッドアプリと呼ばれるものに変えました。

ハイブリッドアプリは、一言で表すと
 ネイティブアプリとWebアプリの良いところを組み合わせたアプリ
と言えます。

ネイティブアプリとWebアプリのメリット/デメリットはどんなものがあるか、
ハイブリッドアプリはネイティブアプリとWebアプリの特徴のうちなにが実現できるかを表に起こしてみました。

Webアプリ ネイティブアプリ ハイブリッドアプリ
メリット 開発言語がOS毎に限定されない。
=作成したアプリがさまざまなOSの端末で動作する。
バイス固有の機能が使える。 バイス固有の機能が使える。
さまざまなOSの端末で利用できる。
開発言語がOSごとに限定されない。
デメリット バイス固有の機能が使えない。 開発言語がOSごとに分かれている。
=作成したアプリの動作するOSが限られてしまう。
バイス固有の機能の使用に制限がある。
ネイティブアプリと比較すると多少動作が遅くなる。

よく言われているのはこれらかと思います。
こうしてみると三者三様であることが分かります。

ハイブリッドアプリのデメリットはアットホームが作ろうとしているお部屋探しアプリには影響のないものでしたので、
「2つのソース」問題を解決すべく、ハイブリッドアプリを選択しました。

これでめでたく2つのソースがある問題は撲滅されることでしょう。

ハイブリッドアプリをどうやって実現しているの?というところですが
本プロジェクトではCordova+Angular(TypeScript)で実現します。
技術的な詳しい話については、他のプロジェクトメンバーに寄稿してもらいますので、
そちらもお読みいただければ嬉しいです。

プロジェクト発足から約半年を経ての感想

ハイブリッドアプリを開発する上で必要な知識は、勉強コストが高いと言われているAngular、そしてフロントエンドではよくある非同期処理や状態管理、それに加えてCordova…。

ゴリゴリなフロントエンド開発のため、毎日たくさんのコードを書き、あれやこれやと頭を悩ませています。

本プロジェクトの開発チームの体制は、開発リーダー(自分)、開発メンバーに2年目の社員が3人、外部企業の方が数人という構成で、社内で一番若手のチームです。

今回のプロジェクトでは内製化も1つの目標としており、社員で開発・保守を行える技術を身につけることもプロジェクトに期待されています。

未経験や少し独学で経験があるくらいの学生からアットホームに入社し、社内研修を経てどれだけ現場でできるのか。多くの新しい技術の情報をインプットしてアウトプットするのは容易なことではありませんが、日々メンバーで頭を悩ませながらも着々と進んでいます。

現在プロジェクト発足から約半年がたちましたが、半年前と比べると、比べ物にならないくらい知識が身に付いたなと実感しています。


最後に

今回初めて開発者ブログを書きましたが、目的は アットホームでは『若手でこんなプロジェクトをやっているよ』
『そしてそのプロジェクトが止まることなく動いているよ』ということを発信することでした。

私自身、入社時はエンジニアに必要な知識・経験は0からのスタートでしたが
手厚い研修・自社開発だからこそのサポートがある環境ということもあり
今こうやってプロジェクトで働けていることを日々実感しています。

新卒入社でエンジニアになりたい。という方がよく気にされてる「未経験で大丈夫?」「研修のみで現場に配属されて本当に大丈夫?」という不安には、大丈夫です!と私は答えられます^ ^

新しい技術ということで、メンバー一同試行錯誤を繰り返す日々ですが、
アットホームのコンシューマー向けメインサービスであるお部屋探しアプリを、より多くのエンドユーザーの方に使っていただける良いものにしていきたいという思いで、日々開発を進めています。

アプリがリリースされた際には、皆さまの端末にインストールして使っていただけますと幸いです。

最後まで読んでいただき、ありがとうございました。