最近、私はオンボーディングのウォークスルーを実施しなければならなかった。
/参照
https://clickup.com/
ClickUp
/を実装する必要があった。
新規ユーザー!これは本当に重要なタスクだった。
/を発見しようとしていたからだ。
https://www.youtube.com/watch?v=AirnL1NxOAw
スーパーボウルで初公開した信じられないほど面白い広告
/%href/
!✨
クリックUp経由
このチュートリアルでは、ClickUpをまだ知らない多くの新規ユーザーが、アプリケーションのいくつかの機能の使い方をすぐに理解できるようになっています。これは、新しいアプリケーションのように、継続的な努力です。
/参照
https://university.clickup.com/。
クリックUp大学
/クリックアップ大学
私たちが追い求めているリソース🚀
幸いなことに、ClickUp Flutterモバイルアプリケーションの背後にあるソフトウェアアーキテクチャのおかげで、アプリケーションの実際のウィジェットを再利用しながらも、この機能を非常に素早く実装することができた!これは、ウォークスルーがダイナミックで、レスポンシブで、アプリの実際のアプリケーション画面と完全に一致することを意味します。
また、懸念事項を適切に分離することで、機能を実装することができました。
どういうことか見てみよう。🤔
関心の分離
ソフトウェアアーキテクチャの設計は、エンジニアリングチームにとって最も複雑なトピックの1つである。全ての責任の中で、将来のソフトウェアの進化を予測することは常に難しい。だからこそ、うまく階層化され、分離されたアーキテクチャを作成することは、あなたやあなたのチームメイトにとって多くの助けとなるのです!
小さな非結合システムを作成する主な利点は、間違いなくテスト可能性です!そしてこれが、アプリの既存画面の代替デモを作成するのに役立った!
ステップバイステップのガイド
さて、これらの原則をFlutterアプリケーションにどのように適用できるだろうか?
私たちがClickUpを作るために使っているいくつかのテクニックを、簡単なウォークスルー例とともに共有しよう。
この例はとてもシンプルなので、その裏にある利点のすべてを悟ることはできないかもしれませんが、複雑なコードベースを持つFlutterアプリケーションをよりメンテナーなものにするのに役立つはずです。💡
アプリケーション
例として、アメリカの人口を年ごとに表示するアプリケーションを作ります。
ClickUp経由
ここには2つの画面があります:
* HomeScreen`:2000年から現在までのすべての年をリストアップ。ユーザーが年のタイルを設定すると、選択された年に設定されたナビゲーション引数で`DetailScreen`に移動します。
* DetailScreen` : ナビゲーション引数から年を取得して
/を呼び出す。
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018 を呼び出す。
datausa.io APIを呼び出す。
/%href/
を呼び出し、JSONデータを解析して関連する人口の価値を抽出する。データが利用可能な場合は、人口とともにラベルが表示されます。
DetailScreen`の実装に焦点を当てよう。非同期呼び出しで最も利息があるからだ。
ステップ1.ナイーブアプローチ
/img/
https://clickup.com/blog/wp-content/uploads/2022/03/image-5-1400x607.png
ナイーブアプローチ ステートフルウィジェット
/ウィジェット
ClickUp経由
私たちのアプリのための最も明白な実装は、全体のロジックに単一の`StatefulWidget`を使用することである。
/参照
https://dartpad.dev/embed-flutter.html?id=b37071f4386ecb27c29332e788999612&split=80&theme=dark
Dartソースコードとデモ
/%href/
ナビゲーション引数 `year` へのアクセス
要求された年にアクセスするには、継承したウィジェット `ModalRoute` から `RouteSettings` を読み込む。
```
void didChangeDependencies() { ``年``のルート設定を変更します。
super.didChangeDependencies();
final year = ModalRoute.of(context)!.settings.arguments as int;
// ...
}
```
HTTP コール
この例では、`http` パッケージの `get` 関数を呼び出して、データを
/からデータを取得する。
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018 からデータを取得する。
datausa.io API
/%href/
を実行し、`dart:convert` ライブラリの `jsonDecode` メソッドで結果の JSON をパースし、`_future` という名前のプロパティで `Future` をステートの一部として保持する。
```
late Future