ユーザ用ツール

サイト用ツール


ionic3で計算アプリ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
ionic3で計算アプリ [2017/06/18] – [ionic3で計算アプリ] adash333ionic3で計算アプリ [2019/02/12] (現在) – [ionic3で計算アプリ] adash333
行 1: 行 1:
 =====ionic3で計算アプリ===== =====ionic3で計算アプリ=====
 + ---// 2019/02/12 更新//
 +Ionic4バージョンは<wrap hi>[[http://i-doctor.sakura.ne.jp/web/doku.php?id=00.ionic4:03.ionic4で計算アプリ|こちらへ]]</wrap>
  
 前回は、ionic3のおすすめの本を紹介させていただきました。\\ 前回は、ionic3のおすすめの本を紹介させていただきました。\\
行 10: 行 12:
  
 この本の第5章「スタンドアロンアプリを作る」を、Ionic3(Angular4)で写経してみます。\\ この本の第5章「スタンドアロンアプリを作る」を、Ionic3(Angular4)で写経してみます。\\
-Angular4用のコードは、下記サイトで配布されています。\\ 
  
-『Angular2によるモダンWeb開発』ダウンロードページ 
-2017年4月10日更新\\ 
-http://ec.nikkeibp.co.jp/nsp/dl/09653/index.shtml 
  
  
行 25: 行 23:
 {{:pasted:20170618-134010.png}} {{:pasted:20170618-134010.png}}
  
-今回は、ionic3を用いて、「元本」と「利息」を入力すると、1年後から10年後までの支払額が出力されるようなアプリを作成します。+今回は、ionic3を用いて、「元本」と「利息」を入力すると、10年後までの支払額が出力されるようなアプリを作成します。 
 + 
 +ソースコードは以下のリンクへ。 
 + 
 +https://github.com/adash333/ionic3-calculate
  
 ====ionic3-calculateアプリの作成==== ====ionic3-calculateアプリの作成====
行 90: 行 92:
  
 ====src/pages/home/home.htmlの変更==== ====src/pages/home/home.htmlの変更====
 +
 +ページの見栄えを作成します。「元本」と「利息」の入力欄と、1年後から10年後までの支払額のリストを表示する枠を作成します。home.htmlをごっそり、以下のように書き換えてください。
 +
 +<code>
 +<ion-header>
 +  <ion-navbar>
 +    <ion-title>
 +      複利計算
 +    </ion-title>
 +  </ion-navbar>
 +</ion-header>
 +
 +<ion-content padding>
 +  
 +  <ion-list>
 +    <ion-item>
 +      <ion-label stacked>元本(円)</ion-label>
 +      <ion-input type="tel" [(ngModel)]="initValue"></ion-input>
 +    </ion-item>
 +    <ion-item>
 +      <ion-label stacked>金利(%)</ion-label>
 +      <ion-input type="tel" [(ngModel)]="rate"></ion-input>
 +    </ion-item>
 +  </ion-list>
 +
 +  <!--入力済みの場合に表示-->
 +  <ion-card *ngIf="initValue && rate">
 +    <ion-card-header>
 +      10年後
 +    </ion-card-header>
 +    <!--結果表示-->
 +    <ion-card-content>
 +      {{calc() | number}}円
 +    </ion-card-content>
 +  </ion-card>
 +
 +</ion-content>
 +</code>
  
 (変更前) (変更前)
行 97: 行 137:
 (変更後) (変更後)
  
 +{{:pasted:20170618-151506.png}}
  
 +<コード解説1>\\
 +<ion-xxx>というところは、全て、ionic特有のUI(見栄え)の表記です。ionicの公式ドキュメントを参照しつつ、入力します。
  
 +<コード解説2>\\
 +<code>
 +[(ngModel)]="initValue"
 +</code>
 +は、Angularの"双方向データバインド"を使用して、ここで入力値(元本と利息)を受け取っています。
  
 +{{:pasted:20180610-185810.png}}
  
 +
 +<コード解説3>
 +<code>
 +<ion-card *ngIf="initValue && rate">
 +</code>
 +の部分は、Angularの"NgIfディレクティブ"であり、「initVlaueとrate両方が存在する場合に、ion-card以下の部分を表示す。」ようにしています。
 +
 +<コード解説4>
 +<code>
 + {{calc() | number}}
 +</code>
 +の部分は、Angularの"片方向データバインド"を使用して、10年後に支払額を以下の場所で表示するようにしています。\\
 +なお、" | number"の部分は、Decimal Pipeによる数値表示の書式設定を行っており、ここでは、3桁ごとのカンマがつけられます。(筆者は詳細を理解しておりません。すみません。。。)
  
 (参考)\\ (参考)\\
行 106: 行 168:
 https://ionicframework.com/docs/components/#overview https://ionicframework.com/docs/components/#overview
  
 +今回は、以下のページを参考に、stacked-labelsを使用しています。\\
 +https://ionicframework.com/docs/components/#stacked-labels\\
 +{{:pasted:20170618-150740.png}}
 +
 +
 +bootstrapのようなgridシステムも利用できます。\\
 +https://ionicframework.com/docs/components/#grid
 +
 +{{:pasted:20170618-144831.png}}
 +
 +====src/pages/home/home.tsの変更====
 +
 +元本と利息の入力を受け取り、10年後の支払額を計算して返すプログラムを記載します。home.tsを、ざっくり、下に置き換えます。
 +
 +<code>
 +import { Component } from '@angular/core';
 +import { NavController } from 'ionic-angular';
 +
 +@Component({
 +  selector: 'page-home',
 +  templateUrl: 'home.html'
 +})
 +export class HomePage {
 +
 +  initValue: number;  // 元本入力欄と双方向データバインド
 +  rate: number;       // 金利入力欄と双方向データバインド
 +
 +  constructor(public navCtrl: NavController) {
 +  }
 +
 +  // 複利計算
 +  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);  // 計算結果を整数に変換
 +  }
 +
 +}
 +</code>
 +
 +<コード解説1>
 +Typescriptなので、以下のように型定義をしっかりしておかなくてはいけません。
 +<code>
 +  initValue: number;  // 元本入力欄と双方向データバインド
 +  rate: number;       // 金利入力欄と双方向データバインド
 +</code>
 +
 +<コード解説2>
 +あとは、calc()という、initVlaueとrateから10年後の金額answerを返す関数を定義します。
 +
 +
 +(変更前)
 +
 +{{:pasted:20170618-152628.png}}
 +
 +(変更後)
 +
 +{{:pasted:20170618-153348.png}}
 +
 +ブラウザの画面で、元本と金利のところに数字を入力すると、自動的に10年後の金額が表示される。
 +
 +{{:pasted:20170618-153426.png}}
 +
 +
 +====明細表示の追加====
 +
 +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
 =====リンク===== =====リンク=====
 前: 前:
行 124: 行 365:
 次: 次:
 <wrap hi> <wrap hi>
-[[github上のionic3アプリのインストール]]+[[ionic3でタイマーアプリ]]
 </wrap> </wrap>

ionic3で計算アプリ.1497764301.txt.gz · 最終更新: 2018/10/07 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki