ネイティブアプリとは
一昨日、勉強会に参加した大学生と話をしているとSWIFT言語を勉強しておりiOS系のアプリ開発を行っているとのこと。自分も興味はあるもののまともに調べたことがないので、これを機に簡単に調べてみることにした。
・ネイティブアプリとは
Weblioで調べると、「一般的には端末内の演算装置が直接に演算処理を行うタイプのアプリのことである。」とある。
身近なところでは、スマートフォンやタブレットなどOS上で稼働するアプリを差すものと思われます。PCも含むとも思うのですが、最近はモバイルアプリ=ネイティブアプリの感覚で使っていたので認識を改めなくては。。。と思いました。
対比として「Webアプリ」がありますが、Web系のアプリはサーバサイドで処理されるものが多いと思うのでその点が違うと思います。Webアプリは端末に依存しないので、ネイティブアプリと比較すると一般に普及しやすいです。
ネイティブアプリってなに?Webアプリとの違いについて解説
・特徴
Webアプリと比較しての長所は実行速度にあるそうです。Webアプリはサーバ間通信などでデータのやり取りが発生する一方で、ネイティブアプリは端末の性能に依存するので、基本的に端末の性能が高ければ高いほど早くなります。ネットワーク環境がなくても動かすことが可能なのも長所だと思いますね。kindleなどはダウンロードしていればいつでもどこでも開けますし。私は一番使ってます。
ただ、インストールが必要、特定の プラットフォームでしか稼働しないなどWebアプリと比較した短所はあります。作成したいサービスに応じてネイティブアプリかWebアプリか選定することが重要だと思います。
プログラミング言語は様々な種類が挙げられますが、今回はiOS, Androidで利用されている主要な言語に絞って記載します。
■Android開発なら
- Java・・・1995年にリリースされた言語、マルチプラットフォーム対応が売り
- Kotlin・・2011年に開発されたJVMで動作する言語、Javaと100%の互換性
- C言語・・1972年生まれ、玄人向け言語と思われる。自分には難しい。。。
- Ruby・・・日本生まれの言語、国内需要が高い。(世界的にはさほど)
→最近の開発トレンドとしては、Kotlinでしょうか。
Javaより機能が豊富で難易度も低いとのこと
■iOS開発なら
- Objective C・・・元祖ネイティブアプリ、Swift登場により若干下火?
- Swift・・・・・・2014年に登場、iOSではおそらく一番人気の言語です。
- Javascript ・・・React Nativeという開発環境で開発可能。低コスト
- C#・・・・・・・Xamarinという開発環境で開発。
→初心者であれば、Swiftが一番おすすめのようです。
この言語も触りたいなぁ。
・将来性
以下の気になる記事がありました。
https://jp.techcrunch.com/2019/04/15/2019-04-14-whither-native-app-developers/
上記記事を抜粋すると以下のような感じでした。
- 米国市場ではダウンロード数が近年横ばい=市場の成熟
- 非ネイティブのクロスプラットフォーム(React Native)が増加傾向
- 市場が成熟しているため、今後は緩やかに衰退してくと思われる。
- しかし、衰退によりARなどの技術も淘汰される可能性があるのは悲しい。
最後のARについても確かに。と思いました。
Webアプリは クロスプラットフォームではありますが、ハード面の優位性がありません。ネイティブアプリは、端末に合わせた機能も合わせることで独自の新規機能を提供することができます。ハード×ソフトの掛け合わせにより新しく便利な機能がどんどん増えることを期待します。