まず、Laravelでスマホアプリを作れるのか?というと、結論から言えばNOなんですが、でもよくLaravelではwebアプリが作れるとかそういう言葉を聞きますよね?
さらに、Facebook, 楽天, Amazon, Yahoo!などなどのウェブサイトは、みんなアプリ化されてるじゃないですか。その多くはPHPで作られてるはずなのに・・
その辺の疑問を初心者でも「なーるほど!」とよく分かるように解説していきます。
Laravelサイトをスマホアプリ化は可能か?
まず、Laravelサイトをスマホアプリ化が可能かですか、これは、先述した通り、FacebookとかAmazonとかそういうウェブサイトがスマホアプリとして同じように動いてる(完全にウェブと連動してる)事から、可能っちゃ可能なんです。
ただ、Laravel、すなわちPHPという言語でスマホアプリが作れるかって言ったら、現状出来ません。HTMLとJavascriptでスマホアプリを作れるOnsen UIとか似たようなサービスって結構あるんですが、PHPは無理なんですよ。
はぁ?って感じですよね。PHPはスマホアプリじゃ動かないはずなのに、アプリ化されたウェブサイトは5万とある・・・。
これですね、一番簡単な方法は、ようは全画面ブラウザアプリを作るんです。
例えば、Gmailアプリって、メール上のURLクリックすると、SafariとかChromeとかに飛ばないで、そのままGmailアプリ上のブラウザでリンク先のウェブサイトを表示とかってできるじゃないですか。
もしくは、動画ダウンロードアプリだったら、そのアプリ自体に、ブラウザが付いてるでしょ。
そう、ようは、URLを入力できないブラウザアプリを作って、アプリを開くと自動的に自分のLaravelで作ったサイトURLが開くようにセットしとけば、それでLaravelサイトのスマホアプリ化完成って事なんです!
だから、Laravelで作ったサイトをアプリ化する事自体は可能って事なんです。
そのブラウザアプリ自体は、スマホアプリを作るためのプラットフォームやサービス(Cordova, OnsenUI, Monaca, Yappli, Xamarin)とかを使って作る感じですね。スマホアプリ作成言語(C#, JAVA, SWIFT)なんかを知らなくても作れるサービスが今はいろいろあるんで。それらを組み合わせる事でLaravelサイトのアプリ化は可能となります。
そもそもLaravelでいうWebアプリって何よ?
よくLaravel関連のサイトなどを読んでると、「LaravelはWebアプリを作るためのフレームワーク」って言葉が出てきますよね?
ここで、「Webアプリってスマホアプリとは違うの?」って疑問が湧いてきますよね。
まず、Webアプリっていうのは、Webブラウザ上で動くアプリの事なんです。はて、なんのこっちゃ、Webブラウザで動いてるのはサイトでしょ?!って思いますよね。
言うなれば、Googleマップ、Googleフォト、Googleドライブ、Gメール、もしくはアキネイターとかって、サイトというよりアプリじゃないですか。もしくはブラウザで動くゲーム、タイピングゲームとか、
そう、あれらがWebブラウザ上のアプリ、つまりWebアプリなんです!
で、アプリストアからダウンロードするアプリ、ネット接続なしでも動くアプリ、ああいうのはネイティブアプリ=スマホアプリなんです。
そう、だから、LaravelでWebアプリが作れるよっていうのは、ブラウザで動くアプリは作れるよって事です。
でも、じゃあそのWebアプリを今度は、iOSやAndroidアプリとしてリリースしよう!ってなったら、PHPでそのまま作るって事はできないんですよ。
なので、先程話した、アプリ化するためのプラットフォームやサービスを使ったり、アプリ用の言語で作り直したり、もしくは、ブラウザアプリから表示したりっていう方法が必要って事です。