Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Ruby on Railsで作ったWebアプリをスマホで使ってもらうなら、Webブラウザの代わりにネイティブアプリに開発してはいかがでしょうか。この方法ならWebサーバー側で処理するRuby on Railsのメリットと、スマホのネイティブアプリのメリットの両方を活かせます。

さらにスマホのネイティブアプリをRubyで作れるなら、新しいプログラム言語を習得しなくても済みます。今回はRuby on Railsを活かしたスマホ用のネイティブアプリの仕組みと作り方を紹介します。

Webアプリとネイティブアプリの違い

多くの人がスマホを日常的に使っている今の時代、スマホ向けのアプリで自社の製品紹介やサービスの提供を実施している企業が増えています。目的に応じて幾つものアプリを使いこなしている方が多いでしょう。

ではスマホの用のアプリにWebアプリとネイティブアプリがあるのをご存じでしょうか。WebアプリはRuby on Railsなどで開発されたWebブラウザでアクセスして利用するアプリです。一方、ネイティブアプリとは、App StoreやGoogle Playなどからダウンロードするアプリを指します。

ネイティブアプリのメリットとデメリット

スマホのネイティブアプリ開発に使われるプログラム言語はJavaやC++などのコンパイル型で、プログラムコードからターゲットとなるスマホのCPUで動作する実行モジュールを生成します。そしてその実行モジュールはサイズが小さく、実行時のリソースも少なくて済み、さらに実行速度が速いといったメリットがあります。

そしてスマホのネイティブアプリを開発するには、iPhoneならSwift、AndroidならJavaやKotlinを使うのが一般的です。なおそれぞれのプログラムそのものはオブジェクト指向言語に詳しい方であれば難しくありません。

しかし、スマホのネイティブアプリを構築するにはスマホ用のライブラリが必要です。スマホのハードウェアとそのライブラリの習得に時間がかかることから、開発期間が長くなるのがデメリットです。

Webアプリのメリットとデメリット

WebアプリはWebブラウザで動作するプログラムで、Webブラウザがユーザーインターフェースとなり、Webサーバーと通信してあたかもアプリのように動作するWebシステムです。そしてクラウド上のWebサーバーに簡単に設置でき、Ruby on Railsを使えば短期間で開発できるのがメリットです。

しかしWebブラウザで動作する分、処理速度が遅く、多くのリソースを使ううえ、制限が多い点がデメリットです。そのため、簡単な入力と結果の表示のみWebブラウザで行い、Webサーバー側で処理するようなアプリケーションに向いています。

ハイブリッド型もある

先ほど紹介したようにWebアプリとネイティブアプリには、それぞれにメリットとデメリットがあります。そこで注目されているのが、それぞれの良さを活用したハイブリッド型です。

ハイブリッド型とは、スマホ側の入力や表示をネイティブアプリで行い、処理をWebサーバー側で行う方法です。これならネイティブアプリは最小限で済み、Webアプリとして用意したRuby on Railsで構築したWebサーバーがそのまま利用できます。

さらに既存のWebサービスをそのまま使い、ネイティブアプリによるレスポンスの良さや高い表現力を実現することが可能です。

Ruby on Railsをネイティブアプリ化するには

先ほど紹介したようにスマホ用のアプリにはWebアプリとネイティブアプリがあり、ハイブリッド型なら両方のメリットを活かしたスマホ用のアプリを開発できます。

既にRuby on Railsで構築したWebアプリをハイブリッド型のスマホ用ネイティブアプリに切り替えてはいかがでしょうか。次からそのための対策を紹介します。

Webブラウザ側でHTMLを作るという考え方

従来のWebシステムの仕組みは、Webブラウザからのリクエストに応じてWebサーバー側で表示に使うHTMLを生成し、それをWebブラウザに送って表示します。しかしWebブラウザで動作するJavaScriptを活用することで、Webブラウザ側で表示するHTMLを生成することが可能です。そして最近、この仕組みを利用したWebシステムが増えています。

WebブラウザでHTMLを生成する場合、Webサーバーは表示する内容をJSONなどの簡単なフォーマットでデータをWebブラウザに送信します。Webブラウザは、そのデータを使いJavaScriptのフレームワークを活用してHTMLを合成します。

この仕組みを利用すれば、Webサーバーはデータ処理に専念し、HTMLの生成をWebブラウザが分担する仕組みを構築することが可能です。

Webブラウザをネイティブアプリに置き換える

先ほど紹介したWebブラウザでHTMLを生成する仕組みはスマホのWebブラウザでも利用できます。しかし、スマホの小さい画面では不便だったり、Webブラウザの機能不足やメモリー消費量が大きいなど、制限が目立つ仕組みです。

そこでWebブラウザをネイティブアプリに置き換えたケースを考えてみてください。これによりWebブラウザで表示した際の制限を解消できます。さらに、Webサーバーからデータを受け取り、それに応じて画面を書き換えるだけなので、スマホのネイティブアプリ開発にかかる期間の短縮が可能です。

Rubyでネイティブアプリを作る方法


先ほどRuby on Railsで作られたWebサーバーとWebブラウザの組み合わせの仕組みを、Webサーバーとネイティブアプリの組み合わせに変えるメリットを紹介しました。

しかし、RubyとJavaScriptの両方を扱うだけでも面倒なのに、さらにスマホのネイティブアプリ開発に使う新しいプログラム言語を習得するのは大変だと思われる方もいるでしょう。そのような方にRubyでネイティブアプリを作る方法を紹介します。

スマホのネイティブアプリ構築言語は

スマホのネイティブアプリを構築するには、iPhoneなどのiOS向けなら開発ツールXcodeでSwiftまたはObjective-Cを用います。また、Android向けの場合はAndroid SDKが使えるJavaやKotlinを使用するケースが多いようです。

ただし、iPhoneならSwiftまたはObjective-Cでしか開発できない、ということではありません。Android向けのネイティブアプリもJavaやKotlinを以外のプログラム言語でも可能です。

なおRubyのようなスマホ向けの標準でないプログラム言語で開発する場合は、特別な仕組みが必要です。今回紹介する方法ではそのようなRubyが使える特別な仕組みを使います。

iOS用の静的RubyコンパイラRubyMotion

iOS用の静的Rubyコンパイラとして有名な開発環境がRubyMotionです。なおiOS用のアプリはApple社によって管理されており、勝手にアプリを作って公開したりできません。その点RubyMotionはAppleのApp Storeガイドラインに完全準拠しているので、開発したアプリをApple Storeで公開できます。

さらにネイティブなサードパーティ製の Objective-C ライブラリにアクセスでき、コンパイラが生成したアプリのため良好なパフォーマンスを期待できます。

AndroidでRubyを使うなら

Androidのネイティブアプリ開発に使われるJavaは、直接CPUで実行するプログラムを作るのではなく、JavaVMという仮想CPU向けのアプリを作成、JavaVMを介して実行します。そして、以前からRubyで書かれたプログラムをJavaVMで実行可能なアプリを作る仕組みがあります。

今回紹介するRubotoフレームワークは、Rubyで書かれたプログラムをJavaVMで実行する仕組みを利用したフレームワークです。そしてRubotoフレームワークを利用することで、Rubyのプログラムからスマホで実行できるネイティブアプリが作れます。

まとめ

Ruby on Railsは短期間でWebアプリを構築できる便利なフレームワークです。しかし、WebアプリはWebブラウザで表示することから、Webブラウザの影響を受けやすいアプリだと言えます。そのため、Webサーバー側はよくできているものの、Web画面が使い難いことで評価を落とす可能性がある点に注意を払ってください。

特にスマホはその影響を受けやすいので、利用者の評価を気にするなら今回紹介したネイティブアプリに置き換えて、使い勝手を改善してはいかがでしょうか。さらにRubyを用いてスマホ用のネイティブアプリを開発する仕組みもあります。ぜひ、そのような仕組みをうまく活用してください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。