プレゼンテーション層、アプリケーション層、データ層の3層があります。
フロントとバックエンドでそれぞれ責務がごっちゃになってしまうことがあると思います。
解決案1:アプリケーション層をフロントに寄せる
バックエンドはデータのみ持たせる構成にする案です。
これだと、プラットフォームごとにロジックを実装し直す必要が発生してしまいます。(React向け、iOS向け、Android向け)
解決方法
クロスプラットフォーム実装
iOSやAndroidをまとめて開発できるReact NativeやFlutterなどです。
CordovaやTitanium MobileなどはiOS、Android、Web全て対応できますが、WebViewベースなので重くなりがちで避けられます。
クロスコンパイル、トランスパイルによるライブラリ実装
「Kotlin/Native、Kotlin/JS」などが該当します。Kotlinでライブラリを実装してiOS、Androidに対応させる手法です。
ただ、これは認証ロジックやDBへのアクセスはバックエンドでしかできないので、セキュリティ面を考えると難しそうです。
解決案2:フロントとバックエンドそれぞれで3層アーキテクチャを持つ
この記事へのコメントはありません。