flutter頑張week day3

今日も頑張ります。今日から作るのは、天気アプリです。外部からデータ引っ張ってくるのは初めてです。

教材ファイルを一度見てみます。ディレクトリは3つ、画面・サービス・ユーティリティとあります。ユーティリティーでは4種の文字フォントがconstantsとしてあります。サービスには、天気の状態数値により天気アイコンを返すウィジットとテキストを返すウィジットがあります。画面は3つあり、全てstatefulウィジットです。背景画像と、テキスト、ボタンがいくつかある感じですね。

 最初に出てきた新語は、async。スマホが自分の位置情報を取得するのは時間がかかったり、どれくらい時間がかかるかわからなかったりする。asyncにすることで、時間かかるものはバックグラウンドでやるよう、することができる。async・Future・awaitは仲良しトリオっぽい。

Futureは変数?で、最初は何もないが、のちに何かになると約束されたもの。型を<>で指定できる。

待つ必要がある場合、メソッドをasyncにし、待ってほしいメソッドの前にawaitをつける。(以下の場合、task3はtask2の終わりを待つ。)
 void task() async {
   task1();
   await task2();
   task3();
}

今回はスマホの位置情報を使うので、ユーザーの許可が必要。
AndroidとiOSそれぞれで許可を請う。
AndroidはAndroidManifestというXmlファイルがあり、i OSはinfo.Plistというものがあり、パッケージの説明にあるようにコピペする。

Runしてみたものの、「許可しますか?」のやつが出てこない。どうにもよくわからんので、パッケージの説明にあるExampleをコピペ。.checkPermissionで許可のやつ呼び出せるのな。なんとかできた。

Widget LifeCycleは、よくわからん。明日復習。

コンパイルエラー以外のエラーの対処方法
try{
エラーになるかもしれないもの
}catch(e){
エラーになったらすること
}

API APIとはApplication Programing Interface.

HTTP Package

StatusCode
200 Ok
404 you skrewed up 
500 i skrewed up,

JSON  ジェイソン。だいたい、XMLかJSON。
{key:value}で書かれる。
jsonDecode[]

この記事が気に入ったらサポートをしてみませんか?