00.ionic4:03.ionic4で計算アプリ
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| 00.ionic4:03.ionic4で計算アプリ [2019/02/10] – [見出し] adash333 | 00.ionic4:03.ionic4で計算アプリ [2019/02/13] (現在) – [新規Ionic4アプリの作成] adash333 | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| ====== Ionic4で計算アプリ ====== | ====== Ionic4で計算アプリ ====== | ||
| - | | + | |
| Ionic4アプリ第1弾として、計算アプリを作成してみたいと思います。 | Ionic4アプリ第1弾として、計算アプリを作成してみたいと思います。 | ||
| 行 15: | 行 15: | ||
| -PWA化して、オフラインでもアプリとして利用できるようにする | -PWA化して、オフラインでもアプリとして利用できるようにする | ||
| - | ソースコード | + | https:// |
| DEMO | DEMO | ||
| + | https:// | ||
| ===== 開発環境 ===== | ===== 開発環境 ===== | ||
| - | 2019年2月現在、残念ながら、CodeSandbox上では容易にIonic4アプリを作成することはできません。そのため、自分のパソコンで環境構築をすることとします。 | + | 私の環境は以下のようになっていますが、Windowsパソコンの場合、 |
| - | 当サイトではWindows10パソコンを利用します。Windows10パソコン購入後の環境構築については、< | + | |
| + | <wrap hi> | ||
| + | |||
| + | の手順でインストールしていただければ、ほぼ同じ環境が整います。 | ||
| + | |||
| + | Windows10パソコン購入後のWindows Subsystem for Linuxでの環境構築については、< | ||
| < | < | ||
| Panasonic CF-RZ6 | Panasonic CF-RZ6 | ||
| 行 60: | 行 66: | ||
| ionic serve | ionic serve | ||
| </ | </ | ||
| - | {{: | + | {{: |
| - | なお、サーバを停止するためには、Ctrl+C, | + | なお、サーバを停止するためには、Ctrl+C, |
| + | |||
| + | |||
| ===== src/ | ===== src/ | ||
| 行 147: | 行 156: | ||
| ===== src/ | ===== src/ | ||
| - | 作成中 | + | 元本と利息の入力を受け取り、10年後の支払額を計算して返すプログラムを記載します。home.tsを、ざっくり、下に置き換えます。 |
| + | <code javascript> | ||
| + | import { Component } from ' | ||
| + | @Component({ | ||
| + | selector: ' | ||
| + | templateUrl: | ||
| + | styleUrls: [' | ||
| + | }) | ||
| + | export class HomePage { | ||
| + | initValue: number; | ||
| + | rate: number; | ||
| + | |||
| + | constructor() { | ||
| + | } | ||
| + | |||
| + | // 複利計算 | ||
| + | calc(): number { | ||
| + | if (isNaN(this.initValue) || isNaN(this.rate)) { | ||
| + | // 元本または利率が数字でないときはnullを返す | ||
| + | return null; | ||
| + | } | ||
| + | let answer: number = this.initValue; | ||
| + | for (let i = 0; i < 10; i++) { | ||
| + | // 金利計算を10回繰り返して複利計算 | ||
| + | answer = answer * (1 + this.rate / 100) | ||
| + | } | ||
| + | return Math.floor(answer); | ||
| + | } | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | {{: | ||
| + | <コード解説1> | ||
| + | Typescriptなので、以下のように型定義をしっかりしておかなくてはいけません。 | ||
| + | < | ||
| + | initValue: number; | ||
| + | rate: number; | ||
| + | </ | ||
| + | <コード解説2> | ||
| + | あとは、calc()という、initVlaueとrateから10年後の金額answerを返す関数を定義します。 | ||
| + | ブラウザの画面で、元本と金利のところに数字を入力すると、自動的に10年後の金額が表示されます。 | ||
| + | {{: | ||
| + | ===== 明細表示の追加 ===== | ||
| + | src/ | ||
| + | |||
| + | <code javascript> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | <tr | ||
| + | *ngFor=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | home.page.tsに、以下を挿入します。 | ||
| + | |||
| + | < | ||
| + | // 年毎の金額計算 | ||
| + | calcArray(): | ||
| + | if (isNaN(this.initValue) || isNaN(this.rate)) { | ||
| + | // 元本または利率が数字でないときはnullを返す | ||
| + | return null; | ||
| + | } | ||
| + | let answer: number = this.initValue; | ||
| + | let ret: number[] = [answer]; | ||
| + | for (let i = 0; i < 10; i++) { | ||
| + | // 金利計算を10回繰り返して複利計算 | ||
| + | answer = answer * (1 + this.rate / 100) | ||
| + | ret.push(Math.floor(answer)); | ||
| + | } | ||
| + | return ret; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== 見栄えの変更 ===== | ||
| + | src/ | ||
| + | |||
| + | (変更前) | ||
| + | |||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | 10年後 | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | {{calc() | number}}円 | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | (変更後) | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | src/ | ||
| + | |||
| + | < | ||
| + | h1,h2 { text-align: center; } | ||
| + | table { width: 100%; } | ||
| + | td {text-align: | ||
| + | |||
| + | / | ||
| + | tr: | ||
| + | background-color: | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | (参考) | ||
| + | |||
| + | 文字の左右・中央揃え【text-align】:CSS入門\\ | ||
| + | http:// | ||
| + | |||
| + | 2012-01-27 | ||
| + | CSS3で表を縞模様にする\\ | ||
| + | http:// | ||
| + | |||
| + | 見栄えはかなり微妙ですが、このまま突き進んで、PWA化します。 | ||
| + | |||
| + | ===== PWA(Progressive Web Apps)化 ===== | ||
| + | Ctrl+Cでいったんサーバを停止し、以下を入力します。 | ||
| + | |||
| + | < | ||
| + | ng add @angular/ | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | うまくいっているのかわかりませんが、とりあえず、GitHubを通して、Netlifyにデプロイしてみたいと思います。 | ||
| + | (PWA化できているかどうかは、NetlifyのサイトをAndroidスマホで閲覧して、スマホにアプリとして登録し、オフラインで複利計算ができるかどうかを試すことによって、確認したいと思います。) | ||
| + | ===== GitHubに登録 ===== | ||
| + | -https:// | ||
| + | -以下を入力して、GitHubにpush | ||
| + | < | ||
| + | git add . | ||
| + | git commit -m "first commit" | ||
| + | git remote add origin https:// | ||
| + | git push -u origin master | ||
| + | </ | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | ===== Netlifyにデプロイ ===== | ||
| + | -https:// | ||
| + | -New site from Git をクリック | ||
| + | -GitHubから、ionic4-calculateを選択 | ||
| + | -'' | ||
| + | -デプロイがうまくいったら、リンクをクリックして、確認します | ||
| + | -スマホで、上のアドレスへ行き、スマホにアプリとして登録できるかチェックします | ||
| + | {{: | ||
| + | {{: | ||
| + | {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | *PWA化されたかどうかは、『スマホで、5分以上間隔をあけて、サイトに2回訪問したときに、”ホーム画面に追加”の表示が出るかどうか』で判断することとします。結構面倒ですね。 | ||
| + | |||
| + | |||
| + | |||
| + | ===== ソースコード ===== | ||
| + | https:// | ||
| + | |||
| + | DEMO | ||
| + | https:// | ||
| ===== 今回写経した本 ===== | ===== 今回写経した本 ===== | ||
| < | < | ||
| 行 161: | 行 355: | ||
| ===== 参考リンク ===== | ===== 参考リンク ===== | ||
| - | http:// | + | [[http:// |
| 最終更新: | 最終更新: | ||
| 行 171: | 行 365: | ||
| 前:[[00.ionic4: | 前:[[00.ionic4: | ||
| - | 次: | + | 次:[[00.ionic4: |
00.ionic4/03.ionic4で計算アプリ.1549812087.txt.gz · 最終更新: 2019/02/10 by adash333
