00.ionic4:03.ionic4で計算アプリ
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
00.ionic4:03.ionic4で計算アプリ [2019/02/10] – [src/app/home/home.page.htmlの編集] 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/ | ||
行 145: | 行 154: | ||
bootstrapのようなgridシステムも利用できます。 | bootstrapのようなgridシステムも利用できます。 | ||
- | ===== 見出し | + | ===== 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で計算アプリ.1549811997.txt.gz · 最終更新: 2019/02/10 by adash333