00.ionic4:08.ionic4でタイマーアプリ
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| 00.ionic4:08.ionic4でタイマーアプリ [2019/02/13] – [src/app/home/home.page.htmlの編集] adash333 | 00.ionic4:08.ionic4でタイマーアプリ [2019/08/28] (現在) – [Ionic4でタイマーアプリ] adash333 | ||
|---|---|---|---|
| 行 7: | 行 7: | ||
| </ | </ | ||
| + | ===== ソースコードとDEMOサイト ====== | ||
| + | https:// | ||
| + | |||
| + | DEMO | ||
| + | https:// | ||
| ===== すること ===== | ===== すること ===== | ||
| -スタートボタンを押すと、00:00:00からカウントアップする | -スタートボタンを押すと、00:00:00からカウントアップする | ||
| 行 14: | 行 19: | ||
| ソースコード | ソースコード | ||
| + | https:// | ||
| DEMO | DEMO | ||
| + | https:// | ||
| + | {{: | ||
| ===== 開発環境 ===== | ===== 開発環境 ===== | ||
| 行 24: | 行 30: | ||
| Panasonic CF-RZ6 | Panasonic CF-RZ6 | ||
| Windows10 Pro (1803) | Windows10 Pro (1803) | ||
| - | VisualStudioCode | + | VisualStudioCode |
| + | git version 2.20.1.windows.1 | ||
| - | nvm-windows 1.1.7 | + | Node v10.15.1 |
| - | Node 10.15.1 | + | |
| npm 6.4.1 | npm 6.4.1 | ||
| - | yarn 1.13.0 | + | Ionic (Ionic CLI) 4.10.2 |
| - | ionic@4.10.2 | + | @ionic/ |
| - | cordova@8.1.2 | + | @angula/pwa 0.13.1 |
| </ | </ | ||
| 行 82: | 行 88: | ||
| <img src=" | <img src=" | ||
| < | < | ||
| - | < | + | < |
| </ | </ | ||
| </ | </ | ||
| - | < | + | < |
| {{ startButton }} | {{ startButton }} | ||
| </ | </ | ||
| 行 95: | 行 101: | ||
| {{: | {{: | ||
| (変更後) | (変更後) | ||
| - | {{: | + | {{: |
| <コード解説1> | <コード解説1> | ||
| 行 115: | 行 121: | ||
| </ | </ | ||
| のところは、後で、home.page.tsで、timerを定義します。 | のところは、後で、home.page.tsで、timerを定義します。 | ||
| - | {{: | + | {{: |
| ===== src/ | ===== src/ | ||
| - | + | home.page.htmlで記載した、'' | |
| - | 元本と利息の入力を受け取り、10年後の支払額を計算して返すプログラムを記載します。home.tsを、ざっくり、下に置き換えます。 | + | |
| <code javascript> | <code javascript> | ||
| 行 130: | 行 135: | ||
| }) | }) | ||
| export class HomePage { | export class HomePage { | ||
| + | public timer = " | ||
| + | public startButton = " | ||
| + | public seconds; | ||
| + | public minutes; | ||
| + | public hours; | ||
| + | public start; | ||
| + | public default; | ||
| + | public timer_id; | ||
| - | initValue: number; | ||
| - | rate: number; | ||
| - | |||
| constructor() { | constructor() { | ||
| } | } | ||
| - | + | ||
| - | | + | |
| - | calc(): number | + | if (this.startButton === " |
| - | if (isNaN(this.initValue) || isNaN(this.rate)) { | + | this.start = new Date(); |
| - | // 元本または利率が数字でないときはnullを返す | + | |
| - | | + | this.seconds = Math.floor((new Date().getTime() - this.start.getTime()) / 1000); |
| + | | ||
| + | this.hours = Math.floor(this.minutes | ||
| + | |||
| + | this.seconds = this.seconds - this.minutes * 60; | ||
| + | this.minutes = this.minutes - this.hours * 60; | ||
| + | |||
| + | // 1桁の場合は0を補完 | ||
| + | this.hours = this.addZero(this.hours); | ||
| + | this.minutes = this.addZero(this.minutes); | ||
| + | this.seconds = this.addZero(this.seconds); | ||
| + | |||
| + | this.timer = this.hours + ':' | ||
| + | }, 10); | ||
| + | |||
| + | // STOPボタンにする | ||
| + | | ||
| + | this.default = " | ||
| + | } else { | ||
| + | clearInterval(this.timer_id); | ||
| + | |||
| + | // STARTボタンにする | ||
| + | this.startButton = " | ||
| + | this.default = " | ||
| } | } | ||
| - | let answer: number = this.initValue; | ||
| - | for (let i = 0; i < 10; i++) { | ||
| - | // 金利計算を10回繰り返して複利計算 | ||
| - | answer = answer * (1 + this.rate / 100) | ||
| - | } | ||
| - | return Math.floor(answer); | ||
| } | } | ||
| - | | + | |
| + | //private date = new Date(' | ||
| + | // ゼロを追加する | ||
| + | addZero(value) { | ||
| + | if (value < 10) { | ||
| + | value = ' | ||
| + | } | ||
| + | return value; | ||
| + | }; | ||
| } | } | ||
| </ | </ | ||
| - | {{: | + | (変更前) |
| + | {{: | ||
| + | (変更後) | ||
| + | {{: | ||
| + | |||
| + | STARTボタンを押すと、カウントアップし始めて、STOPボタンを押すと、カウントが停止します。 | ||
| + | {{: | ||
| + | |||
| + | ===== PWA(Progressive Web Apps)化 ===== | ||
| + | Ctrl+Cでいったんサーバを停止し、以下を入力します。 | ||
| - | <コード解説1> | ||
| - | Typescriptなので、以下のように型定義をしっかりしておかなくてはいけません。 | ||
| < | < | ||
| - | initValue: number; | + | ng add @angular/pwa |
| - | rate: number; | + | // だめな場合は、npm run ng add @angular/ |
| </ | </ | ||
| + | {{: | ||
| - | <コード解説2> | + | うまくいっているのかわかりませんが、とりあえず、GitHubを通して、Netlifyにデプロイしてみたいと思います。 |
| - | あとは、calc()という、initVlaueとrateから10年後の金額answerを返す関数を定義します。 | + | {{: |
| - | ブラウザの画面で、元本と金利のところに数字を入力すると、自動的に10年後の金額が表示されます。 | + | ===== GitHubに登録 ===== |
| - | {{: | + | -https:// |
| + | -以下を入力して、GitHubにpush | ||
| + | < | ||
| + | git add . | ||
| + | git commit -m "first commit" | ||
| + | git remote add origin https:// | ||
| + | git push -u origin master | ||
| + | </ | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | https:// | ||
| + | ===== Netlifyにデプロイ ===== | ||
| + | -https:// | ||
| + | -New site from Git をクリック | ||
| + | -GitHubから、ionic4-timerを選択 | ||
| + | -'' | ||
| + | -デプロイがうまくいったら、リンクをクリックして、確認します | ||
| + | -スマホで、上のアドレスへ行き、スマホにアプリとして登録できるかチェックします | ||
| - | ===== ソースコード ===== | + | {{: |
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | |||
| + | ===== ソースコード ===== | ||
| + | https:// | ||
| DEMO | DEMO | ||
| + | https:// | ||
| + | {{: | ||
| ===== 今回写経した本 ===== | ===== 今回写経した本 ===== | ||
00.ionic4/08.ionic4でタイマーアプリ.1550044088.txt.gz · 最終更新: 2019/02/13 by adash333
