ネイティブ・ハイブリッド・モバイルアプリケーション

この前、タマサート大学でシステムエンジニアリングを教えている教授に頼まれてネイティブ・ハイブリッド・モバイルアプリケーションについて講演をしました。そんなに難しい内容では無いのですが、主にNativeScriptについて技術背景や単純なカウンターアプリの構造などについて説明した所、初めて耳にしたと言われる方が多かったので、ここでその講演内容の一部を紹介します。

まず、モバイルアプリケーション開発に当たっては3つの方法があります。

  • ネイティブ・アプリケーション
  • ハイブリッド・アプリケーション
  • ネイティブ・ハイブリッド・アプリケーション

ネイティブ・アプリケーション

利点

端末固有のネイティブ言語を使用し開発される為、3つの中で一番高いパフォーマンスでモバイルアプリケーションを起動させる事が出来ます。

難点

各端末のOS(iOS、アンドロイド)などその端末に併せた言語(Xcode, Java)で開発しなければいけない為、開発期間とコストが掛かる。

ハイブリッド・アプリケーション

利点

HTML CSS JavaScriptなどウェブ制作者にも馴染みのある開発言語を使用して開発する為、ネイティブアプリよりは簡単にモバイルアプリケーションの開発が可能です。

一つのコードで各端末のOS用にアプリケーションの開発ができます。(コスト的にも易しい)

難点

基本UI側(見える側)の制御はウェブ・ブラウザー(IEやクロムの様な物)を使用し表示させる為、アニメーションや個々の素材が端末によって不安定に表示されたりパフォーマンスが良く無かったりします。最近はIonicjs SenchaTouchなど出てきて品質を上げていますが、ネイティブの領域に行くのは厳しいと思われます。

ネイティブ・ハイブリッド・アプリケーション

今回、講演した物の例としてNativeScriptを紹介しました。NativeScriptとはJavaScript CSS XMLを使用し各端末のOSに対してネイティブ・アプリケーションの品質で開発ができる無料プラットフォームです。つまりネイティブとハイブリッドの両方の利点を持った開発手法との事です。

現在、広く知れ渡っているライブラリはNativeScriptとReact Nativeなのですが、著者の予想ではReact Nativeを活用するエンジニアが増えて行くと思われます。その背景としては各プラットフォームの開発組織にあります。

NativeScript React Native
組織 Telerik(グーグルのサポート有り) フェースブック
開発言語 NativeScript TypeScript Angular2 Reactjs ES6
コミュニティー数(2016年6月) 61 801
初リリース 2015年5月 2015年3月

開発組織と開発コミュニティー数に置いてはReact Nativeが圧倒的に有利な所がありますが、個人的な印象では開発者用のドキュメントはNativeScriptの方がより解り易い物があります。NativeScriptのチュートリアルを読めば次から簡単に自分でモバイルアプリケーションの開発が可能です。React Native側にも簡単なチュートリアルがありますが、ウェブアプリケーション開発で使用されるReactjsの知識が無ければドキュメントだけで開発を進めるのは困難な印象です。NativeScriptの難点としてはネイティブの機能についてはまだそんなに開発モジュールが無い中、既に一部のモジュールをライセンス化(有料)している事とネイティブ機能のブラグインの作り方が明確では無い事です。React Nativeについてはプラグインの作り方は明確にドキュメント化されているのでネイティブ機能を実装したい場合はReact Nativeの方が柔軟に対応できると思われます。

結論としてNativeScript、React Nativeどちらが良いかとなった場合は、開発環境と何を作りたいかによります。

Angular Angular2 TypeScriptに馴染みがあり開発環境がWindowsでアンドロイドアプリを主体とするのであればNativeScript。

Reactjs ES6に馴染みがあり開発環境がMacでiOSを主体とするのであればReact Native。

React Nativeの開発組織であるフェースブックのスタッフは全員Macでしか開発をしていない事から新しいモジュールなどはiOSから開発されるらしいです。WindowsでのReact Nativeアプリのビルド方法などは別の記事(英語)で記載しておりますので良ければご参考までに。

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

ERROR: si-captcha.php plugin says GD image support not detected in PHP!

Contact your web host and ask them why GD image support is not enabled for PHP.

ERROR: si-captcha.php plugin says imagepng function not detected in PHP!

Contact your web host and ask them why imagepng function is not enabled for PHP.