この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ionic3で計算アプリ [2017/06/18] adash333 [ionic3で計算アプリ] |
ionic3で計算アプリ [2018/10/07] (現在) |
||
---|---|---|---|
ライン 22: | ライン 22: | ||
今回は、ionic3を用いて、「元本」と「利息」を入力すると、10年後までの支払額が出力されるようなアプリを作成します。 | 今回は、ionic3を用いて、「元本」と「利息」を入力すると、10年後までの支払額が出力されるようなアプリを作成します。 | ||
+ | |||
+ | ソースコードは以下のリンクへ。 | ||
+ | |||
+ | https://github.com/adash333/ionic3-calculate | ||
====ionic3-calculateアプリの作成==== | ====ionic3-calculateアプリの作成==== | ||
ライン 141: | ライン 145: | ||
</code> | </code> | ||
は、Angularの"双方向データバインド"を使用して、ここで入力値(元本と利息)を受け取っています。 | は、Angularの"双方向データバインド"を使用して、ここで入力値(元本と利息)を受け取っています。 | ||
+ | |||
+ | {{:pasted:20180610-185810.png}} | ||
+ | |||
<コード解説3> | <コード解説3> | ||
ライン 152: | ライン 159: | ||
{{calc() | number}} | {{calc() | number}} | ||
</code> | </code> | ||
- | の部分は、Angularの"片方向データバインド"を使用して、10年後に支払額を以下の場所で表示するようにしています。 | + | の部分は、Angularの"片方向データバインド"を使用して、10年後に支払額を以下の場所で表示するようにしています。\\ |
+ | なお、" | number"の部分は、Decimal Pipeによる数値表示の書式設定を行っており、ここでは、3桁ごとのカンマがつけられます。(筆者は詳細を理解しておりません。すみません。。。) | ||
(参考)\\ | (参考)\\ | ||
ライン 204: | ライン 212: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | <コード解説1> | ||
+ | Typescriptなので、以下のように型定義をしっかりしておかなくてはいけません。 | ||
+ | <code> | ||
+ | initValue: number; // 元本入力欄と双方向データバインド | ||
+ | rate: number; // 金利入力欄と双方向データバインド | ||
+ | </code> | ||
+ | |||
+ | <コード解説2> | ||
+ | あとは、calc()という、initVlaueとrateから10年後の金額answerを返す関数を定義します。 | ||
+ | |||
(変更前) | (変更前) | ||
ライン 218: | ライン 237: | ||
+ | ====明細表示の追加==== | ||
+ | |||
+ | src/pages/home/home.htmlの、最後から1行目に以下を挿入 | ||
+ | |||
+ | <code> | ||
+ | <!--明細表示--> | ||
+ | <ion-card *ngIf="initValue && rate"> | ||
+ | <table> | ||
+ | <tr | ||
+ | *ngFor="let value of calcArray(); let i = index"> | ||
+ | <td>{{i}}年目</td> | ||
+ | <td>{{value | number}}円</td> | ||
+ | </table> | ||
+ | </ion-card> | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20170618-165918.png}} | ||
+ | |||
+ | home.tsに以下を挿入 | ||
+ | |||
+ | <code> | ||
+ | // 年毎の金額計算 | ||
+ | calcArray(): number[] { | ||
+ | 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; | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20170618-170218.png}} | ||
+ | |||
+ | ====見栄えの変更==== | ||
+ | |||
+ | src/pages/home/home.html | ||
+ | |||
+ | (変更前) | ||
+ | |||
+ | <code> | ||
+ | <!--入力済みの場合に表示--> | ||
+ | <ion-card *ngIf="initValue && rate"> | ||
+ | </code> | ||
+ | |||
+ | (変更後) | ||
+ | <code> | ||
+ | <!--入力済みの場合に表示--> | ||
+ | <ion-card *ngIf="initValue && rate" color="primary"> | ||
+ | </code> | ||
+ | |||
+ | src/pages/home/home.scss を以下に書き換え。 | ||
+ | |||
+ | <code> | ||
+ | page-home { | ||
+ | h1,h2 { text-align: center; } | ||
+ | table { width: 100%; } | ||
+ | td {text-align: right; } | ||
+ | |||
+ | /*偶数行目の背景を着色*/ | ||
+ | div tr:nth-child(odd){ | ||
+ | background-color: cornsilk; | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | {{:pasted:20170618-172102.png}} | ||
+ | |||
+ | |||
+ | |||
+ | (参考) | ||
+ | |||
+ | 文字の左右・中央揃え【text-align】:CSS入門\\ | ||
+ | http://kumacrow.blog111.fc2.com/blog-entry-287.html | ||
+ | |||
+ | 2012-01-27 | ||
+ | CSS3で表を縞模様にする\\ | ||
+ | http://d.hatena.ne.jp/guimo/20120127/1327617371 | ||
+ | |||
+ | ====Androidアプリの作成==== | ||
+ | |||
+ | VisualStudioCodeのcmd.exeの画面で、Ctrl+C, Y, Enterでサーバを停止してから、以下のコマンドを入力。 | ||
+ | |||
+ | <code> | ||
+ | ionic cordova platform add android | ||
+ | ionic cordova build android | ||
+ | </code> | ||
+ | |||
+ | 途中、何か聞かれたら、YとしてEnter. | ||
+ | |||
+ | {{:pasted:20170618-183404.png}} | ||
+ | |||
+ | 数分かかる。 | ||
+ | |||
+ | {{:pasted:20170618-183606.png}} | ||
+ | |||
+ | どこにandroid-debug.apkファイルが作成されたのか表示される(下図の赤で囲った部分)ので、その場所に保存されているapkファイルを、自分のスマホにメールします。 | ||
+ | |||
+ | {{:pasted:20170618-183656.png}} | ||
+ | |||
+ | {{:pasted:20170618-183952.png}} | ||
+ | ====Androidアプリのインストール==== | ||
+ | メールしたapkファイル(約4MB)を、自分のandroidスマホにインストールします。\\ | ||
+ | 今回は、arrows M03にインストールしてみました。 | ||
+ | {{:pasted:20170618-184414.png}} | ||
+ | ====ソースコード==== | ||
+ | https://github.com/adash333/ionic3-calculate | ||
=====リンク===== | =====リンク===== | ||
前: | 前: | ||
ライン 231: | ライン 363: | ||
次: | 次: | ||
<wrap hi> | <wrap hi> | ||
- | [[github上のionic3アプリのインストール]] | + | [[ionic3でタイマーアプリ]] |
</wrap> | </wrap> |