====== スマホ用ホームページ&スマホアプリ作成ソフトIonic4 ====== [[https://ionicframework.com/|Ionic]]は、Drifty社による、スマホ用ホームページ、スマホアプリ作成のためのフレームワークです。 HTML、CSS、Javascriptと、Ionic特有の使い方を学べば、無料で動的ホームページ、Androidアプリ、iPhoneアプリを比較的簡単に作成することができます。 iPhoneアプリ作成にはMacパソコンが必要です。私は現時点ではMacは持っていないので、このサイトでは、Windowsパソコンを用いて、WEBサイト(PWA化すればそのままAndroidアプリになります)を作成する経過のメモを記載させていただきたいと思います。 ===== Ionic4 メニュー ===== [[00.ionic4:01.windowsでionicを始める方法|WindowsでIonicを始める方法]] [[00.ionic4:02.おすすめのionic入門書2019年版|おすすめのIonic入門書2019年版]] [[00.ionic4:03.ionic4で計算アプリ|Ionic4で計算アプリ]] [[00.ionic4:04.ionic4とfirebaseで掲示板part1|Ionic4とFirebaseでEmail認証つき掲示板 Part.1]] [[00.ionic4:99.Ionic4リンク集|00.ionic4:99.Ionic4リンク集]] [[00.ionic4:10.Ionic4とCapacitorでGPS取得|10.Ionic4とCapacitorでGPS取得]] [[http://i-doctor.sakura.ne.jp/dokuwiki/doku.php/ionic.html|姉妹サイトのIonic3とIonic4のリンク集]] ===== Ionic4のメリット ===== Ionic4のメリットとしては、以下のことが挙げられます。 -スマホ用WEBページが作りやすい -スマホ用アプリが作りやすい(ReactやVueとの最大の違い) -Capacitorというプラグイン(?)を用いて、スマホのカメラなどの操作がしやすい -PWA対応(WEBページがそのままスマホアプリになる) Ionic3については、[[http://i-doctor.sakura.ne.jp/dokuwiki/doku.php/ionic4%E3%81%A7%E3%81%AE%E5%A4%89%E6%9B%B4%E7%82%B9#%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%A2%E3%83%97%E3%83%AA%E4%BD%9C%E6%88%90%E3%82%BD%E3%83%95%E3%83%88ionic3|こちらのサイト]]にいくつかサンプルを記載させていただきました。 このサイトでは、Ionic4について勉強したことを順次記載していきたいと思います。 ===== Ionicと他のJavascriptフレームワークの比較 ===== 2019年現在、Javascriptフロントエンドフレームワークと言えば、 -Angular -React -Vue の3つが有名です。Ionicは基本的にはAngularをスマホアプリ作成をしやすく改変したものになります。 Angularはフルスタックフレームワークと呼ばれ、インストールなどにはやや時間がかかりますが、最初から何でもそろっている感じで、Ruby on Railsに雰囲気が似ていると思います。 Reactはよくわかりませんが、JSXという、Javascriptの中にHTMLを混ぜたような記載方法が特徴的で、日本ではかなり人気があるようです。Reduxという仕組みが私には難しすぎて挫折したので、正直よくわかりませんが、初心者には難しいかもしれません。 Vueは、最初は最低限の構成で、必要に応じてルーティングやHttp通信などの機能を追加していく形になります。また、2018年8月にbeta版が公開された[[https://qiita.com/kai_kou/items/8fcabc7a8445c1be8a30|Vue ui]]なども含め、上記3つの中では初心者に一番やさしいのではないかと思われます。 なお、上記3つのフレームワークは、https://codesandbox.io 上で、2クリックで、すぐに無料で開発を始めることができます。 ===== 開発環境 ===== 2018年12月現在、残念ながら、CodeSandboxではIonicを利用することはできません。 Angular、ReactやVue.jsと異なり、自分のパソコンで環境構築をする必要があります。 当サイトではWindows10パソコンを利用します。Windows10パソコン購入後の環境構築については、[[z_blog:2018:181219_windows10_config|Windows10購入時の設定]]に記載させていただきました。 Panasonic CF-RZ6 Windows10 Pro (1803) VisualStudioCode Windows Subsystem for Linux (WSL) Ubuntu18.04 VisualStudioCodeのターミナル画面をWSLのBashに設定 git 2.17.1 anyenv nodenv 1.1.2-69-gced0e70 node 10.14.2 私の場合、以下のようにフォルダ共有しています。 Windowsの C:/Users/a/a/ Ubuntuの /mnt/c/Users/a/a/ また、Windows10のVisualStudioCodeでC:/Users/a/a/フォルダを開き、[[http://i-doctor.sakura.ne.jp/web/doku.php?id=z_blog:2018:181219_windows10_config#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%B1%E6%9C%89%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A|こちらの設定]]Ctrl+Shit+Pで、Terminal select default shellをクリック)にて、VisualStudioCodeのターミナル画面をWSLのUbuntuのBash画面に設定しています。 UbuntuのBashを利用するときの注意点 何かをnpm installなどした直後は、必ず、exec $SHELL -lを入力します。これをやらないと、インストール直後のBash画面では、ionic CLIなどを利用することができません。 exec $SHELL -l ===== WindowsパソコンでIonic4を始める方法 ===== 上記の方法は安定はしますが、かなり面倒なので、以下の方法でもできます。 -Node.jsをインストール(https://nodejs.org/ja/ からLTS用をダウンロードしてインストール) -VisualStudioCodeをインストール(https://code.visualstudio.com/download からWindows用をダウンロードしてインストール) -VisualStudioCodeを開き、Ctrl+@でターミナル画面を開く -npm install -g ionic cordova 後は、以下の、[[#Windows10で新規Ionic4アプリmyAppを作成]]をご覧いただき、Ionic4アプリ作成へと続いてください。 ===== 今回構築する環境 ===== Ionic CLI 4.6.0 ===== Windows10にIonic4をインストール ===== 実際は、Windows10内の、仮想マシンWSL(Ubuntu 18.04) にIonic CLIとcordovaをインストールしていることになります。 *C:/Users/a/a/フォルダ(C:/Users/(Windowsのユーザ名)/(任意のフォルダ名)/)を、VisualStudioCodeで開き、Ctrl+@ でターミナル画面を開く。 (WSL(Ubuntu)のBash画面なので、(Ubuntuのユーザ名)@desktop-xxxxxx:mnt/c/Users/(Windowsのユーザ名)/(任意のフォルダ名)/と記載されています。) {{:ionic4:pasted:20181224-141424.png}} *以下を入力して、Ionic CLIとcordovaをインストール npm install -g ionic cordova exec $SHELL -l {{:ionic4:pasted:20181224-145055.png}} {{:ionic4:pasted:20181224-150729.png}} *以下を入力して、Ionic CLIがインストールされていることを確認します ionic -v {{:ionic4:pasted:20181224-150806.png}} ===== Windows10で新規Ionic4アプリIonic4-PWAを作成 ===== *ターミナル画面で以下を入力し、新規Ionic4アプリを作成します。 (私の場合は、c:/Users/a/a/ionic/ フォルダ内でこのコマンドを入力しました。) ionic start myApp tabs --type=angular インストールに数分かかります。なお、 -myAppがアプリの名前 -tabsが3つのタブが作成されるテンプレートを利用 -''%%--type=angular%%''がAngularを利用 を表しています。''%%--type%%''は、今後、vueやreactが実装されるのかもしれません。 {{:00.ionic4:pasted:20190213-070535.png}} {{:00.ionic4:pasted:20190213-070547.png}} *途中、? Install the free Ionic Appflow SDK and connect your app? と聞かれるので、n + Enterを入力します。 {{:ionic4:pasted:20181224-153209.png}} *次に作成したIonic4-pwaフォルダに移動して、ionic serveで開発用サーバを起動します。 cd Ionic4-pwa ionic serve *すると、数分で自動的にWEBブラウザ(Chromeがお勧めです)が開いて、割といい感じの画面が表示されます。 {{:ionic4:pasted:20181224-154005.png}} {{:ionic4:pasted:20181224-154100.png}} *サーバを停止するには、Ctrl+Cを押します(Windowsであれば、さらに、y + Enter)。 {{:ionic4:pasted:20181224-164801.png}} ===== Ionic4アプリmyAppをGitHubにアップロード(push) ===== 作成したデフォルトアプリをNetlifyにデプロイ(公開)するために、まずは、GitHubにpushします。 GitHubはフリープランではシークレットレポジトリが1個しか作れないので、慣れたらBitbucket(フリープランでもシークレットリポジトリがたくさん作れます)でやるのがよいかもしれません。 GitHubアカウントは作成済みとします。(無料です。) GitHubにログインして、"Ionic4-myApp"リポジトリを新規作成します。 *https://github.com/loginへ移動し、ログイン {{:ionic4:pasted:20181224-180304.png}} *画面右上の、"+"をクリック {{:ionic4:pasted:20181224-180346.png}} *New Repositoryをクリック {{:ionic4:pasted:20181224-180458.png}} *Repository Nameのところに、"Ionic4-myApp"と入力(今回、諸事情でmyAppにしていませんが、本来は、同じ名前にした方がわかりやすいです)して、Create repositoryをクリック {{:ionic4:pasted:20181224-180559.png}} *次の画面で、図のhttps://github.com/(ユーザ名)/(リポジトリ名).gitの部分をコピーして、メモ帳などに張り付けておきます。 {{:ionic4:pasted:20181224-180708.png}} *この画面を参考にしつつ、VisualStudioCodeのターミナル画面(UbuntuのBash画面)に、以下を順に入力していきます。 echo "# Ionic4-myApp" >> README.md git add README.md git commit -m "first commit" git remote add origin https://github.com/adash333/Ionic4-myApp.git git push -u origin master {{:ionic4:pasted:20181224-181213.png}} {{:ionic4:pasted:20181224-181310.png}} *最初だけ、GitHubのusernameとPasswordを聞かれるので、それぞれ入力して、Enterを押します。 {{:ionic4:pasted:20181224-181447.png}} *うまくいくと、GitHubの画面を更新すると、以下のように、自分のパソコンの中のIonic4アプリが、GitHubにアップロードされたことがわかります。 {{:ionic4:pasted:20181224-181801.png}} ===== Ionic4アプリmyAppをGitHub経由でNetlifyにデプロイ ===== Netlifyという無料でIonic4アプリをデプロイ(公開)してくれるサイトがあります。今回は、これを利用します。GitHubアカウントがあれば、すぐに利用できます。 *以下のページへ行き、ログインをクリック https://www.netlify.com/ {{:ionic4:pasted:20181224-182050.png}} *GitHubをクリック {{:ionic4:pasted:20181224-182124.png}} *画面右上のNew site from Git をクリック {{:ionic4:pasted:20181224-182228.png}} *GitHub をクリック {{:ionic4:pasted:20181224-182250.png}} *一瞬、Authorized画面が出て、その後、以下のような画面が出てくるので、先ほどGitHubにアップロード(push)したリポジトリを選択します {{:ionic4:pasted:20181224-182405.png}} *以下のように設定して、Deploy site をクリック {{:ionic4:pasted:20181224-184311.png}} *次のような画面になるので、数分待ちます {{:ionic4:pasted:20181224-184348.png}} *デプロイが成功すると、以下のようにデプロイ先のアドレスが表示されるので、そのアドレスをクリック {{:ionic4:pasted:20181224-184519.png}} *次のように表示されます。スマホ用サイトなので、パソコンで見るときは、縦長にする感じになります。。。 {{:ionic4:pasted:20181224-184644.png}} 以上で、Ionic4アプリの新規作成とNetlifyへのデプロイをすることができました。 ソースコード https://github.com/adash333/Ionic4-myApp できたもの https://cranky-yonath-8cd1dd.netlify.com ===== リンク ===== https://qiita.com/kon_shou/items/de4c6ded5f47df9b8ba3 @kon_shou 2018年12月08日に更新 OPENLOGI8日目 @ionic/vueでハイブリッドアプリを作ってみた https://qiita.com/xiaca/items/8cedc310d59ea014c983 @xiaca 2018年12月02日に更新 Ionic2日目 Ionic 4(PWA Toolkit) + Capacitorでカメラを動かして顔認識してみる https://qiita.com/daiki7nohe/items/ce85f1b10c7012f79d95 @daiki7nohe 2018年12月15日に投稿 Fusic15日目 @ionic/vue + Capacitorでクロスプラットフォームの未来を覗いてみる https://qiita.com/rdlabo/items/c76e0321096318489513 @rdlabo 2018年12月11日に更新 Ionic11日目 新しいHTML5 APPプラットフォーム「Capacitor」を試してみた https://qiita.com/kponda/items/b06d350cb616458d33cd @kponda 2018年12月20日に投稿 Ionic 4 / Angular で PWA https://ionicframework.com/docs/developer-resources/guides/first-app-v4/intro/ Your First Ionic App - Framework v4 ===== 姉妹サイトのIonicのリンク ===== http://i-doctor.sakura.ne.jp/dokuwiki/doku.php/ionic.html ===== Ionic4のお勧めの本 ===== 2019年2月現在、Ionic4の本は以下の一冊のみです。初めての人でも、パスワード制限つき掲示板を作れるように、丁寧に解説されていてお勧めです。腰をすえてやるのなら、ぜひ、次にご紹介するIonic3の本も一緒に読んでいただくことをお勧めします。 ===== Ionic3のお勧めの本 ===== Ionic4の本は未出版ですが、大まかな内容は、Ionic3とIonic4(Angularを用いた場合)は大きな違いはないので、Ionic4をやろうとしている場合でも、以下の本を読んでIonic3アプリを何個か作成してみるのが、非常にお勧めです。 ===== リンク ===== 目次:[[00.ionic4:index.html|スマホ用ホームページ&スマホアプリ作成ソフトIonic4]] 次:[[00.ionic4:01.windowsでionicを始める方法|WindowsでIonicを始める方法]]