内容へ移動
サルでもわかる機械学習
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
ionic3で計算アプリ
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
=====ionic3で計算アプリ===== 前回は、ionic3のおすすめの本を紹介させていただきました。\\ 今回は、ionic3で計算アプリを作成してみたいと思います。\\ 以下の本を参考にさせていただいています。 <html> <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B06X41LVCB&linkId=5030fbaf2330bf6c6ef9b13e8559301d"></iframe> </html> この本の第5章「スタンドアロンアプリを作る」を、Ionic3(Angular4)で写経してみます。\\ (環境)\\ Windows8.1\\ Node 6.11.0\\ Ionic CLI 3.4.0\\ VisualStudioCode 1.13.1 {{:pasted:20170618-134010.png}} 今回は、ionic3を用いて、「元本」と「利息」を入力すると、10年後までの支払額が出力されるようなアプリを作成します。 ソースコードは以下のリンクへ。 https://github.com/adash333/ionic3-calculate ====ionic3-calculateアプリの作成==== C:/ionic/ フォルダの下に、ionic3-calculateというionic3アプリを作成することとします。 C:/ionic/ フォルダの中で右クリック > Open with Code をクリック {{:pasted:20170618-134916.png}} VisualStudioCodeが起動して、下のような画面になるので、Ctrl + @ を押して、cmd.exeの画面を表示させる。 {{:pasted:20170618-135014.png}} {{:pasted:20170618-135300.png}} cmd.exeで、以下のコマンドを入力して、ionic3アプリを作成する。 <code> ionic start ionic3-calculate blank </code> {{:pasted:20170618-140911.png}} npm installのところで数分待つ。 {{:pasted:20170618-140931.png}} ionic3-calculateフォルダに移動し、ionic serveによりサーバを起動します。 <code> cd ionic3-calculate ionic serve </code> {{:pasted:20170618-141034.png}} すると、1分くらいで自動的にブラウザが開いて、下のような画面になります。ブラウザは、Chromeをお勧めします。このサイトでは、今後、以下のように、左側に縦長のChrome(ブラウザ)の画面を、右側に、VisualStudioCodeの画面を並べて表示することが多いです。 {{:pasted:20170618-141322.png}} サーバを停止したい場合は、VisualStudioCodeのcmd.exeの画面でCtrl+C, Y, Enter で停止することができます。サーバを停止しなくても、VisualStudioCodeでファイルなどを修正すると、それをionicが検知して、自動的に再コンパイルして、数十秒待つと、左側のChromeに変化が反映されます。今回は、分かりやすさを重視して、いったん、Ctrl+C, Y, Enterにより、サーバを停止します。 {{:pasted:20170618-141750.png}} ====アプリ作成直後のファイル構成==== ionic3アプリ作成直後のファイル構成は、以下のようになっています。 {{:pasted:20170618-142258.png}} package.jsonは以下のようになっています。(最初はあまり気にしないでよいと思いますが、@angula/coreと、@ionic/storageのversionは大事だと思います。) {{:pasted:20170618-142441.png}} Ctrl+@で、cmd.exeの画面を出して、ionic serveして、サーバを起動しておきます。 <code> ionic serve </code> ====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> (変更前) {{:pasted:20170618-143228.png}} (変更後) {{: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桁ごとのカンマがつけられます。(筆者は詳細を理解しておりません。すみません。。。) (参考)\\ ionic公式サイト:見栄えについては、こちらの公式サイトを読んで、ionic特有のUI(user interface:見栄え)に慣れておく必要があります。最初は、これがかなり面倒ですが、bootstrapと同様、慣れるしかありません。(bootstrapを利用したい場合は、ionicではなく、Angular4+ng-bootstrpを利用することになります。)\\ 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 =====リンク===== 前: <wrap hi> [[おすすめのIonic3入門書2017年版]] </wrap>\\ [[sidebar|目次]]\\ 次: <wrap hi> [[ionic3でタイマーアプリ]] </wrap>
ionic3で計算アプリ.txt
· 最終更新: 2018/10/07 (外部編集)
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ