Progressive Web Apps: the Definite Approach to Cross‐Platform Development? - nagutabby/senior-thesis GitHub Wiki

Citation

@inproceedings{Majchrzak2018ProgressiveWebApps,
  author = {T. A. Majchrzak and others},
  title = {Progressive Web Apps: the Definite Approach to Cross-Platform Development?},
  booktitle = {Hawaii International Conference on System Sciences},
  publisher = {IEEE Computer Society},
  month = Jan,
  year = {2018},
  pages = {5735--5744},
  doi = {10.24251/hicss.2018.718}
}

概要

  • クロスプラットフォーム開発は依然として重要なトピック
    • 一般的にアプリは常にAndroidとiOSの両方のデバイスをサポートする必要がある
    • 様々なハードウェア上でスムーズに動作し、多くのプラットフォームのバージョンと互換性がなければならない
    • スマートフォンやタブレット以外のデバイスカテゴリーも出現
      • マルチプラットフォーム対応はさらに厄介になっている
  • 現在のクロスプラットフォームフレームワークはプラットフォーム間で技術を統一できない
    • Progressive Web Appsはこれを解決するための方法の1つ
  •  モバイルアプリの開発には、ネイティブのSoftware Development Kit(SDK)を使用するのが一般的
    • SDKはプラットフォームのベンダーから提供される
    • SDKはプラットフォームに合わせた開発環境を提供
    • プラットフォームごとに利用できるプログラミング言語
      • iOS: Objective-C, Swift
      • Android: Java, Kotlin
        • KotlinはJavaのスーパーセット
      • ユニバーサルWindowsプラットフォーム: C++, C#, Visual Basic, JavaScriptなど
  • PWAにおけるクロスプラットフォーム開発の未解決の問題について議論
  • ウェアラブルデバイスのような新しい種類のデバイスをサポートする必要がある
  • クロスプラットフォームアプリ開発のためのフレームワークの登場により、学習工数が削減され、コストが削減され、市場投入までの時間が短縮される
  • クロスプラットフォーム開発が全ての場合で優位に立つ訳ではない
    • グラフィックを多用するアプリの中には、ネイティブのSDKでプログラムされるべきものもある
  • プラットフォーム独自のApplication Programming Interface(API)を通じてデバイスの機能にアクセスできる
  • Graphical User Interface(GUI)はネイティブインターフェイスの要素で構成される
  • アプリ開発におけるプラットフォーム間には互換性がない
    • デザインガイドラインに従っている場合は、GUIの見た目が異なる
    • 必要とされる開発経験も異なる
    • 一般的にプラットフォーム間でAPIの設計が統一されていない
    • エコシステムも異なる
  • 複数のプラットフォームに対して同じ機能を持ったネイティブアプリを開発するのは非常にコストがかかる
    • クロスプラットフォーム開発のためのフレームワークが普及
  • 今後の課題
    • PWAの実例に基づいた研究によってその利便性を明らかにすること