質問: これまでweb開発をやってきて、ふと「アプリ開発」はどんな感じでやるのかなと思って調べてたら、 どうやらアプリ開発も、DBとの連携はRuby,Javaなどのバックエンドの言語を使ってやりとりするというような記述があり驚きました。 その認識でいくと、例えばiPhone開発の場合は、「フロント:Swift,バック:Ruby」みたいなことになると思うんですが、そうなると、swiftが直接DBと連携してる訳ではなく、なんとかしてDBのデータを持ってきて、整形しているということですよね。 この「なんとかして」の部分はweb APIを使ってデータを持ってくると思うんですが、そうでしょうか? 自分の勝手な認識だと、swiftもバックエンドの言語だと思っていたんですが、どちらかというとフロントの言語なんでしょうか?
回答: 自分は最近モバイル開発を始めたところで、一部間違ってるかもしれませんけど、 フロントエンド/バックエンドという表現を使うよりかは、 クライアント/サーバという表現を使った方がしっくりします。 * 「Webの場合」:クライアント(Webブラウザ:言語Javascript)/サーバ&DB(言語Ruby etc) * 「モバイルの場合」:クライアント(iPhoneApp:言語Swift(Objective-C))/サーバ&DB(言語Ruby etc) ただし、SwiftはHTMLほど簡単なマークアップではありません。 Webのフロント開発でいうReactに代表されるJavascriptのようなものと思ったら良いかと思います。 DBについてですが、 SNSの投稿のようなものは、サーバ上のDBで管理しないと、みんなで同じものを見れないですよね。 だからモバイルだとしても、Webブラウザ同様WebApiでデータベースの情報を取得して表示するというアプローチです。 ちなみに、Web開発で、WebAPIを使わずとも、LocalStorageやクッキーのような、自身のブラウザに簡易のデータベースを持つこともできますよね。 Swiftでも同じようなことができて、CoreDataとかRealmなどを使えば、サーバを立てずとも、その端末でのみ保管するDBをアプリ内に持つことは可能です。 サーバを立てる必要があるかは、アプリの内容次第で、自分だけで楽しむアプリなのか、みんなに共有しながら楽しむものなのかの違いかなーと勝手に思ってます。