# セットアップの仕方
# flutter version 2.8.1
# Dart version 2.16.2
# cocoapods version 1.11.3
$ git clone git@github.com:yoshiki20010524/flutter_engineer_codecheck.git
$ cd flutter_engineer_codecheck
# パッケージなどの導入
$ flutter pub get
$ flutter gen-l10n
# ビルド
$ flutter run
・何かしらのキーワードを入力できる
・入力したキーワードで GitHub のリポジトリを検索できる
・GitHub のリポジトリを検索する際、GitHub API(search/repositories)を利用する
・検索結果は一覧で概要(リポジトリ名)を表示する
・検索結果のアイテムをタップしたら、該当リポジトリの詳細(リポジトリ名、オーナーアイコン、プロジェクト言語、Star 数、Watcher 数、Fork 数、Issue 数)を表示する
・検索した際に、リポジトリ名のみならず、言語、アイコンを表示する
・リポジトリの詳細ページでdescription(リポジトリの説明を表示する)
Riverpod 状態管理パッケージ
Freezed データクラスの生成をサポートしてくれるライブラリ
flutter_lints 静的解析のルールを提供してくれるパッケージ
intl 多言語対応のためのパッケージ
構成
domain : 基本的には通信を生じる処理はここに書く
・service(データベース以外の処理を書く、WebAPIなど)
common : 共通で書く処理(色、helpersなど)
・helpers(フォーマットや共通して使う関数などを書く)
presentation : UI部分
・pages(アプリ上で表示する画面)
・widgets(共通して使うwidgetsなど)
use_case : 状態管理、ユーザーからの行動に対しての処理など
・notifier(ユーザーからの行動に応じた処理など)
・state(状態管理)
l10n : 多言語対応
コード規約 : flutter_lintで実装
テスト : unitテスト、UIテスト
CI : GitHub Actionsで実装

