Skip to content

naruogram/flutter_engineer_codecheck

Repository files navigation

Flutter ゆめみコーディング課題

セットアップの仕方

# セットアップの仕方
# flutter version 2.8.1
# Dart version 2.16.2
# cocoapods version 1.11.3

$ git clone [email protected]:yoshiki20010524/flutter_engineer_codecheck.git
$ cd flutter_engineer_codecheck

# パッケージなどの導入
$ flutter pub get
$ flutter gen-l10n

# ビルド
$ flutter run

実際のプロダクト(ios・Android)

機能

基本用件

・何かしらのキーワードを入力できる

・入力したキーワードで GitHub のリポジトリを検索できる

・GitHub のリポジトリを検索する際、GitHub API(search/repositories)を利用する

・検索結果は一覧で概要(リポジトリ名)を表示する

・検索結果のアイテムをタップしたら、該当リポジトリの詳細(リポジトリ名、オーナーアイコン、プロジェクト言語、Star 数、Watcher 数、Fork 数、Issue 数)を表示する

追加した点

・検索した際に、リポジトリ名のみならず、言語、アイコンを表示する

・リポジトリの詳細ページでdescription(リポジトリの説明を表示する)

技術

主要パッケージ

Riverpod 状態管理パッケージ

Freezed データクラスの生成をサポートしてくれるライブラリ

flutter_lints 静的解析のルールを提供してくれるパッケージ

intl 多言語対応のためのパッケージ

アーキテクチャ

ドメイン駆動設計(DDD)

構成

domain : 基本的には通信を生じる処理はここに書く

・service(データベース以外の処理を書く、WebAPIなど)

common : 共通で書く処理(色、helpersなど)

・helpers(フォーマットや共通して使う関数などを書く)

presentation : UI部分

・pages(アプリ上で表示する画面)

・widgets(共通して使うwidgetsなど)

use_case : 状態管理、ユーザーからの行動に対しての処理など

・notifier(ユーザーからの行動に応じた処理など)

・state(状態管理)

l10n : 多言語対応

その他

コード規約 : flutter_lintで実装

テスト : unitテスト、UIテスト

CI : GitHub Actionsで実装

About

Flutter ゆめみコーディング課題

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published