草案:アプリの名前の付け方
== ネイティブアプリ
ネイティブアプリとは、開発者が特定のプラットフォームやデバイスで使用するために作成したコンピュータプログラムのことである。<ref>https://www.mightynetworks.com/encyclopedia/native-app</ref> <ref>https://www.techtarget.com/searchsoftwarequality/definition/native-application-native-app</ref>複数のシステムで汎用的に使用できるように設計されたウェブ アプリやモバイル クラウド アプリと比較すると、ネイティブ アプリは最適化されたパフォーマンスを提供し、GPS などの最先端技術を活用することができます。
ネイティブアプリとプラットフォーム
写真、メール、連絡先など、すべてのアップル製デバイスにプリインストールされ、設定されているアプリケーションは、例えばMacなどのプラットフォーム向けのネイティブアプリの例です。しかし、モバイル Web アプリの文脈における「ネイティブ アプリ」という表現は、特定のデバイス プラットフォームで動作するように作成されたすべてのアプリケーションを指します。<ref>https://www.techtarget.com/searchsoftwarequality/definition/native-application-native-app</ref>
AppleのiOSとGoogleのAndroidは、最も人気のある2つのモバイルOSプラットフォームです。ネイティブアプリは、開発者がOSとデバイスのコードを使用して作成します。例えば、Androidのネイティブアプリは実際にはJavaで作成される。しかし、開発者はiOSアプリをObjective-C言語またはSwiftで作成する。 ネイティブアプリは、他のアプリケーションよりも高速で適応性の高い方法でデバイスのオペレーティングシステムと相互作用する。異なるデバイスタイプのユーザーがアプリを使用する場合、開発者はデバイスごとに異なるバージョンのアプリを作成する。
例えば、FacebookアプリケーションのHTML 5コードは、もともとモバイルウェブ、iOS、Android用に使用されていた。iOSユーザーにとってはアプリの動作が遅くなるため、フェイスブックのアプリエンジニアはiOS用に異なるコードを作成した。UIを制御するメインスレッドやプログラムのバックグラウンドで実行されるネットワーキングを含む複雑なタスクは、開発者によって再構築することができる。 ==== ネイティブ アプリケーションの長所と短所 ネイティブ アプリケーションの長所<ref>https://www.techtarget.com/searchsoftwarequality/definition/native-application-native-app</ref>は以下のとおりです:
- 基礎となるデバイスの機能を使用することによる幅広い機能性。
- 迅速で応答性の高いソフトウェア・パフォーマンス
- ネイティブアプリにプッシュ通知を含めることができる。
- また、アプリストアでの評価による品質管理も可能です。
ネイティブアプリの短所<ref>https://www.techtarget.com/searchsoftwarequality/definition/native-application-native-app</ref>は以下の通りである:
- 各デバイス固有のアプリバージョンに基づくさまざまなコードベース。
- 各プラットフォーム用のコードベースを作成し、維持するために、より多くのプログラマーを雇う価格
- 機能更新のたびに、さまざまなプラットフォーム向けに複数のビルドを作成するために費やす時間。
==== ネイティブ・アプリケーションの例 さまざまな分野でネイティブ・アプリケーションが開発されている<ref>https://www.mightynetworks.com/encyclopedia/native-app</ref>:
- ソーシャルメディアアプリ:ソーシャルメディアアプリ:Twitter、Instagram
- コミュニティアプリ:マイティ・ネットワークス
- 学習アプリ:学習アプリ:Duolingo
- 生産性向上アプリ:Hive
- 編集アプリ:Adobe Lightroom
- 個人財務アプリ:Mint
==== ネイティブアプリとウェブアプリの比較
Webアプリケーションは、ユーザーがダウンロードするのとは対照的に、Webブラウザを使用してネットワーク経由でアクセスするアプリケーションです。Mozilla Firefox、Safari、Google Chromeなどがウェブブラウザの一例である。<ref>https://www.lambdatest.com/blog/web-vs-hybrid-vs-native-apps/#:~:text=What%20is%20the%20Difference%20Between%20Hybrid%20and%20native%3F,to%20a%20web%20view%20display.</ref>ウェブアプリを使えば、例えばSafariを使ったiPhone端末でYouTubeの動画を見たり、銀行口座にログインしたりすることができる。
開発者は特定のデバイスのためにネイティブアプリを作成しますが、ウェブアプリケーションの大部分は、異なるブラウザ間で使用できるように、JavaScript、CSS、および標準のHTMLで作成することができます。ウェブ・アプリケーションは特定のデバイス向けに作成されないため、単一のコード・ベースを使用することができる。ウェブアプリは迅速かつ簡単に作成できますが、ネイティブアプリほど迅速ではなく、適応性もありません。 ==== ネイティブアプリとハイブリッドアプリの比較 ネイティブアプリとウェブアプリを組み合わせると、ハイブリッドアプリになります。内部ではハイブリッドアプリはウェブアプリのように動作しますが、インストール方法は異なります。ハイブリッド・アプリは、デバイス内部のAPIにアクセスすることで、GPS、カメラ、ストレージなどのツールを使用することができます。ハイブリッドアプリには、例えばYelpやInstagramなどがある。 ハイブリッド・アプリケーションの作成には、プログラマーがHTMLとCSSを使用する。プログラムを各プラットフォームに適応させるために、彼らは単一のコードベースから始めて微調整を加える。ハイブリッド・アプリは、完全なネイティブ・アプリに比べて、プラットフォーム固有の開発者の数を少なくします。ハイブリッド・アプリは、多くの場合、WebView(モバイル・アプリ内に収容される可能性のあるブラウザ)を使用してWebアプリを実行する。<ref>https://www.lambdatest.com/blog/web-vs-hybrid-vs-native-apps/#:~:text=What%20is%20the%20Difference%20Between%20Hybrid%20and%20native%3F,to%20a%20web%20view%20display.</ref>
ネイティブアプリとハイブリッドアプリのコストの違い ==
ネイティブアプリとハイブリッドアプリのコストの差はあまりありません。開発者は、多くのプラットフォームで両方の種類のアプリケーションを実行するためのコードを書く必要があります。アプリの作成に4~6カ月未満しかかからない場合、開発者は通常、ハイブリッドアプリを選択します。 ===== ネイティブアプリツール アップルとグーグルがそれぞれ採用している主なプログラミング言語は、スウィフトとJavaで、どちらもオープンソースだ。
クロスプラットフォームのシステムエンジニアリングツールであるXamarinは、iOS、Android、およびC#プログラミング言語を使用するその他のシステム用のネイティブアプリを作成するために使用されます<ref>https://www.sitepoint.com/best-programming-language-for-app-development/#:~:text=Native%20apps%20are%20written%20in,%2C%20GPS%2C%20and%20push%20notifications.</ref>。 == 参考文献 テンプレート:Reflist