Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スマホアプリのいろいろな作り方を整理してみた / Way of creating smartphone app

スマホアプリのいろいろな作り方を整理してみた / Way of creating smartphone app

noboru ishikura

December 21, 2019
Tweet

More Decks by noboru ishikura

Other Decks in Programming

Transcript

  1. Android/iOSアプリの作り方1 (Native) 一番オーソドックスな作り方 • Android SDK / iOS SDKを利用 •

    Kotlin or Java / Swift or Objective-Cで処理を記述 • XML / Storyboard or xibでUIを構築 ◦ Jetpack Compose / SwiftUIや、コードでの実装も可能 Android SDK iOS SDK アプリ (Kotlin) アプリ (Swift)
  2. Android/iOSアプリの作り方1 (Native) メリット • 一番安定している(他の作り方も、基本的にここをベースにしている) • それぞれのOS独自のUIを利用できる • OSの最新機能をそのまま使える •

    外部のSDKも、ほぼ漏れなく対応している デメリット • Android/iOSで別々に作成する必要がある ◦ コストが倍増 ◦ 仕様がそれぞれでズレる可能性がある
  3. Android/iOSアプリの作り方2 (ハイブリッド) メリット • Web技術で、ワンソースで実装できる • Cordovaには豊富なプラグインがあり、利用することでネイティブ連携が比較的容 易 デメリット •

    WebViewの制限に依存しやすい • プラグインが存在しないものは、自分で記述する必要がある • ネイティブに比べると、オーバーヘッドが大きい
  4. Android/iOSアプリの作り方3 (ガワネイティブ) メリット • UI更新が容易 • 既存のWebをそのまま利用できる”場合がある” デメリット • WebViewの制限に依存しやすい

    • ネイティブに比べると、オーバーヘッドが大きい • なんだかんだ、Webをそのまま利用できないことが多い
  5. Android/iOSアプリの作り方4 (cross-platform) メリット • ネイティブと遜色ない動作速度 • XamarinならC#、React NativeならWeb技術からコンバートしやすい デメリット •

    比較的情報が少なく、比較的不安定 • 問題があった場合、問題箇所の調査が難しい • ネイティブ機能を利用する場合、結局ネイティブコードが必要となる場合が多い
  6. メリット • Web技術で完結できる • BLEなど、いくつかのネイティブ機能はブラウザ実装が存在する • 随時アップデートが可能 デメリット • アプリストアに配信できない

    ◦ TWAなど、回避策は出始めている • iOSでPUSH通知が送れないなど、アプリと比較して出来ないことがある Android/iOSアプリの作り方5 (Web)