node.js、npm、Angular、Ionic、cordova関連の使い方で参考にするURL

完全に自分のためのメモ。
随時更新する。

# node.js関連
## インストール
### windows
https://nodejs.org/en/

### Linux
https://qiita.com/jaxx2104/items/2277cec77850f2d83c7a

# npm関連

## package.jsonの読み方
https://qiita.com/dondoko-susumu/items/cf252bd6494412ed7847

## package-lock.jsonの存在意義
npm v5から作られたファイル。
https://ja.stackoverflow.com/questions/42788/npm-package-lock-json-%E3%81%8C%E3%81%AA%E3%81%9C%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%AE%E3%81%8B%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84
http://kakts-tec.hatenablog.com/entry/2017/06/05/020037

## npmでエラーが発生するとき
### だいたいはこれ
https://qiita.com/M-ISO/items/d693ac892549fc95c14c

### npmで虚弱性っぽい警告が出るとき
npmのv6から導入された、虚弱性のあるライブラリバージョンが使われていると警告（エラー）を出す機能がある。
`npm audit` だが、それに関する対処法は以下が参考になる。
https://qiita.com/hibikikudo/items/0af352acac85fce28ec2

## node.jsのバージョン管理
nodistを使ってみることを考えたが、なかなかPowershellで使うには大変。
https://qiita.com/satoyan419/items/56e0b5f35912b9374305

インストールするだけではPowershellでは使えず下記を参考。
https://qiita.com/nt_tn/items/f3193cde496399b41e51

VSCodeで使うには環境変数のPATHでNodistのパスを一番上にしてからVSCodeを再起動。
さらに、npmのバージョンをnodeのバージョンに合わせるには、`nodist npm match`と打つが、バグがあって、2019/01時点で修正されていないので、手動で修正。
https://qiita.com/TalkWithWater/items/aa7b1becd8fc1344170d

# Angular関連
https://angular.jp/docs

# cordova関連

そもそも、Android用のビルドをするには、JavaとAndroid SDKの環境を整える必要がある。
## Java
JDK1.8系が必要（2018年時点）
https://www.oracle.com/technetwork/java/javase/downloads/index.html
言わずもがな、JAVA_HOMEを環境変数のPATHに追加しておく。


## Android SDK
Android SDKは単品では提供されなくなった。（どちらかというと「sdk-toolを使うようになった」と言う方が正しそう）
以下のAndroid StudioのダウンロードサイトからIDEを落としてくる方法と、コマンドラインツールを落としてくる方法がある。
https://developer.android.com/studio/

1. Andorid Studio（IDE丸ごとだけど、中にSDKManagerがあって、それを使ってSDKを落とす。GUIで使えるからわかりやすい）
2. sdk-tools（cliのツール。binにパスを通すと、sdkmanagerコマンドが使えるようになるけど、使い方がむずい）
https://qiita.com/meeetball/items/578133bfe92372e29ea8

そして、2018年時点、Android Studioでは Android 9系のSDKがデフォルトで入っている。
これがCordovaのビルドに合わないらしい。
Android7.1.1のSDKをSDKManagerで落として対応する必要がある。

落としたSDKのパスは、環境変数のPATHに追加しておく。
あと、sdk-toolsのパスも環境変数に追加しておく。

## インストール～基本的な使い方
https://qiita.com/Futo23/items/ac4f6e29a2a4cf34cb87

リリースビルドはこちらもわかりやすい
https://qiita.com/surume07/items/1bb7118cfd6f75ebd5c1

# Ionic関連

## インストール
https://ionicframework.com/docs/intro/installation/

## 基本的な使い方
https://blog.mitsuruog.info/2015/04/ionic-7days-war.html

よく使うコマンド
https://qiita.com/tq_jappy/items/5905d2f72b1e7f777e28

## 見た目、UIコンポーネント
https://ionicframework.com/docs/components/

# 開発環境

## VS Code
https://code.visualstudio.com/

# そもそもJavaScriptの基本
これまで上から下へ流れるプログラムが中心だったので、非同期処理の作り方に若干苦手意識がある。
その時に参考にするところ。

## Promiseの使い方
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Using_promises

## Ajaxの使い方
https://www.sejuku.net/blog/30245

### サーバ側
https://qiita.com/hilucky/items/9c0e6e74def7accc892b

# ライブラリ
## グラフ系
ゲージ（タコメーター）のUI。
https://www.zingchart.com/docs/chart-types/angular-gauge-charts/
→有料か、ZingChartを使用していること明示してフリー。（以下は公式サイトの画像。見ての通り、ゲージ以外のUIもある）
![画像.PNG](https://cdn.zingchart.io/assets/000/000/040/246.gif)


各種グラフ（ゲージもあり）。
https://golb.hplar.ch/2017/02/Integrate-ECharts-into-an-Ionic-2-app.html
→Apache Licence V2.0であり、このライブラリをしようするにはクレジット（よくヘルプにある「myappについて」で表示されるやつ）に`This software includes the work that is distributed in the Apache License 2.0`と表示すればよいとのこと。
　　→ライセンスについては http://mycode.snow69it.net/998/ を参考とした。