はじめに
いずれ選択する際の指標として使うために書き出しました。
ぼちぼち追記するかも。
ネイティブアプリ
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とかもありなのかな?と思うけどその辺の界隈はまだよくわかりません。