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