23
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

ネイティブアプリ と Progressive Web Apps ( PWA ) のどちらを選択するか

はじめに

いずれ選択する際の指標として使うために書き出しました。
ぼちぼち追記するかも。

ネイティブアプリ

Android や iphone などの端末自体で処理するアプリ。
大まかに分けてOS依存するタイプとWeb技術を用いるタイプの二つがある。

OS依存するタイプ

Swift や Objective-C など。

メリット

  • ハードウェアの機能が使用できる

デメリット

  • 違うOSに対応するのが辛い

Web技術を用いるタイプ

React native や Weex など
メリット

  • 広く使われているWeb技術(厳密には違う)を使える
  • 必要に応じてハードウェアの機能も使える

デメリット

  • Web技術で完結しない。
  • Weexをちょっとだけ使ってみたが情報が少なくググるのが難しい

Progressive Web Apps ( PWA )

最近巷で流行りの PWA 。Web技術だけを使ってスマホアプリっぽい動きを実現する。

  • プッシュ通知
  • オフラインで作業する
  • ホーム画面にアイコンを追加する
  • フルスクリーンで起動する
  • クリップボードへのアクセス

など

メリット

  • 検索エンジンで見つかる
  • リンクがあるので簡単に共有できる
  • web技術で完結する

デメリット

  • ハードウェアアクセスに限界がある
  • safariの対応がまだ (2017/12/7時点) ios11.3で対応するらしい

PWA対応するのにみておきたいサイト

Google が pwa チェックリストを用意してくれているのでこれを満たすとよい。
pwa checklist
簡単に pwa を作りたい場合、Google がスターターキットを用意してくれている。
web-starter-kit
今日、web 技術でどこまでハードウェアアクセスできるのかがわかる。これをみるとあらゆるケースで PWA を選択できることがわかる。
what web cando

おわりに

個人的にはPWAが流行って欲しい。
kotlinとかdart2とかもありなのかな?と思うけどその辺の界隈はまだよくわかりません。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
23
Help us understand the problem. What are the problem?