クロスプラットフォーム

できるだけすべてのPlatformで共通化する方法

  • 言語はできるだけJavascriptに寄せる
    • OSSなどライブラリが多く知見が集まっている
    • 大抵のPlatformで動く。最悪はWebView
  • 共通化したい部分はロジックを再利用できるようにするか、WebViewを活用する。
  • UIに関わる部分はユーザ体験に大きく関わるので一定程度Platformごとに作ることを検討する。
    •  
 

その他メモ

Cross Platformのバリエーション

  • React Native + Electron
    • ライブラリ
      • Native Base, React Navigation(mobile)
      • Semantic UI(webとelectron)
    • 特徴
      • Inkdropが採用している組み合わせ。
      • 全プラットフォームに対応できる
      • JSのロジックや部品を再利用しやすい
  • React Native + RN for web + electron
    • RN for webでReact Native AppをWeb対応してelectronに乗せる
    • RN for Webに対応しきれてないComponentがあるなどちょっとした罠にハマる可能性がある
  • React Nativeで全プラットフォーム
    • RNの性質上、platformごとのUI Componentの対応が全くおなじにできることはない
  • flutterで全プラットフォーム
    • UIの描画エンジンレベルで独自実装されているので描画の互換性は高い
    • 2022年現在、まだ便利ライブラリなどのエコシステムが育ちきってない(特殊なことをしようとすると結構手を入れることになる)
    • Dartの将来性をどう考えるか。Dartで作り込んだものを他に流用するのはそれはそれでつらそう

Reference

1人でデスクトップとモバイル両対応でデータ同期するアプリをどうやって作ったか | by Takuya Matsuyama | 週休7日で働きたい2022/8/21 14:302022/8/21 14:30React and React Native templates | NativeBase Startup+2022/8/21 14:382022/8/21 14:38React Native製アプリのクオリティを上げるために工夫した事 | by TAKUYA | 週休7日で働きたい2022/8/21 14:412022/8/21 14:41