====== Ionic4でStorage利用でCRUDを写経してみる ======
以下のサイトを写経してみたい
https://www.joshmorony.com/building-a-notepad-application-from-scratch-with-ionic/
{{:z_blog:2018:pasted:20181018-124000.png}}
ソースコード
https://github.com/joshuamorony/ionic-notepad
===== 開発環境 =====
Windows 8.1 Pro
VisualStudioCode
git version 2.16.1.windows.4
Node v8.12.0
npm 6.4.1
Ionic (Ionic CLI) 4.2.0
Ionic Framework @ionic/angular 4.0.0-beta.13
===== Ionic4アプリの作成 =====
C:/ionic4/ フォルダをVisualStudioCodeで開き、Ctrl+@ でターミナルを開き、以下を入力。
ionic start ionic-notepad blank --type=angular
// 何か聞かれたら、2回ともN + Enter とする。
C:/ionic4/ionic-notepad/ フォルダをVisualStudioCodeで開き、Ctrl+@ でターミナルを開き、以下を入力。
ionic serve
{{:z_blog:2018:pasted:20181018-124603.png}}
===== DetailPageの作成とNotesServiceの作成 =====
ionic g page Detail
ionic g service services/Notes
{{:z_blog:2018:pasted:20181018-125002.png}}
===== ルーティングの設定 =====
Ionic3とIonic4ではルーティングがだいぶ変わっている。
src/app/app-routing.module.ts
(変更前)
{{:z_blog:2018:pasted:20181018-125230.png}}
(変更後)
{{:z_blog:2018:pasted:20181018-125502.png}}
{{:z_blog:2018:pasted:20181018-125552.png}}
===== HomePageを編集(1) =====
src/app/home/home.page.html
(変更前)
{{:z_blog:2018:pasted:20181018-125753.png}}
(変更後)
{{:z_blog:2018:pasted:20181018-130032.png}}
src/app/home/home.page.ts
(変更前)
{{:z_blog:2018:pasted:20181018-130133.png}}
(変更後)
{{:z_blog:2018:pasted:20181018-130318.png}}
===== Note interfaceの作成 =====
src/app/interfaces/note.ts を新たに作成
{{:z_blog:2018:pasted:20181019-084035.png}}
===== Note service の実装と@inoic/storageのインストール =====
(変更前)
{{:z_blog:2018:pasted:20181019-084120.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-085231.png}}
ionic serve し直すと以下のようなエラー。
@ionic/storage を利用するためには、@ionic/storageをnpm install --saveする必要があるとのこと。
{{:z_blog:2018:pasted:20181019-175033.png}}
Ctrl+C => y + Enterでサーバ停止し、ターミナルで以下を入力。
npm install @ionic/storage --save
{{:z_blog:2018:pasted:20181019-180607.png}}
ionic serve しておく。
src/app/app.module.ts
(変更前)
{{:z_blog:2018:pasted:20181019-180912.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-181337.png}}
===== HomePageの編集 =====
src/app/home/home.page.ts
(変更前)
{{:z_blog:2018:pasted:20181019-181844.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-204535.png}}
参考:https://beta.ionicframework.com/docs/api/alert/
{{:z_blog:2018:pasted:20181019-205643.png}}
src/app/home/home.page.html
(変更前)
{{:z_blog:2018:pasted:20181019-210028.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-211912.png}}
{{:z_blog:2018:pasted:20181019-212337.png}}
タイトルを入力して、「保存」をクリックしても、保存されなかったので、Chromeの画面で、Ctrl+Shift+I でconsoleの画面でエラーを見たら、home.page.htmlのタイプミスが判明して、直したところ、以下のようにちゃんとリストが表示された。
{{:z_blog:2018:pasted:20181019-214751.png}}
===== NotesDetail Pageの実装 =====
src/app/detail/detail.page.ts
なお、下の画面は、トップページにリスト表示されるノートのうち、一番上のタイトルをクリックした後のページとしています。
アドレスは、http://localhost:8100/notes/1 となっています。
(変更前)
{{:z_blog:2018:pasted:20181019-215426.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-220415.png}}
src/app/detail/detail.page.html
(変更前)
{{:z_blog:2018:pasted:20181019-220604.png}}
(変更後)
{{:z_blog:2018:pasted:20181019-222959.png}}
なぜか、リストの一部をクリックしても、Detailページに飛ばない。。。
Ctrl+Shift+I でconsole画面を見てみると、どうやら、Detailページのhtmlにタイプミスがありそう。
ここだったらしい。。。
{{:z_blog:2018:pasted:20181019-223139.png}}
が、になっていた。
(VisualStudioCodeのテキスト補完を利用して写経しているので、最初をタイプミスすると、後半も自動的にタイプミスとなる。)
直してみると、うまくいった。
{{:z_blog:2018:pasted:20181019-224155.png}}
書き込むだけで保存されるようである。
しかし、4行目以上になると、変な風になってしまう。
{{:z_blog:2018:pasted:20181019-224301.png}}
これをなんとかするためには、detail.page.scss を以下のように変更する必要があるらしい。
{{:z_blog:2018:pasted:20181019-225352.png}}
今回は、これでよしとする。
===== ソースコード =====
https://github.com/adash333/ionic4-notepad
===== Netlifyにデプロイしてスマホで確認 =====
[[https://www.netlify.com/|Netlify]]にログインして、https://github.com/adash333/ionic4-notepadを選択して、以下の設定を行い、デプロイしたものを、自分のAndroidスマホで確認。
npm run build --prod
www/
以下のように、なんとか、うまくいったようである。
{{:z_blog:2018:pasted:20181019-232239.png}}
===== 参考リンク =====
https://devdactic.com/ionic-4-firebase-angularfire/
===== 写経元サイト =====
https://www.joshmorony.com/building-a-notepad-application-from-scratch-with-ionic/
ソースコード
https://github.com/joshuamorony/ionic-notepad