/flutter-engineer-codecheck

This is a code check task for Flutter engineers employment in YUMEMI.

Apache License 2.0Apache-2.0

株式会社ゆめみ Flutter エンジニアコードチェック課題

本プロジェクトは株式会社ゆめみ(以下弊社)が、弊社に Flutter エンジニアを希望する方に出す課題用のプロジェクトです。 本課題が与えられた方は、以下を詳しく読んだ上で課題に取り組んでください。

概要

以下の要件を満たす、Android・iOS で動作するアプリを Flutter で作成してください。

要件

環境

  • IDE・SDK・プログラミング言語については、基本的に最新の安定版を利用すること
  • 最新の安定版以外を利用する場合は、理由も含めて README に記載すること
  • 状態管理パッケージには Provider/Riverpod のいずれかを使うこと
  • サードパーティーライブラリについては、オープンソースのものに限り制限しない

対象 OS バージョン

基本的に Flutter プロジェクト作成時のバージョンにすること

OS Version
iOS 9.0 ~ 15.2
Android 4.1 ~ 12

※ 本プロジェクト更新時点

動作

  • 何かしらのキーワードを入力できる
  • 入力したキーワードで GitHub のリポジトリを検索できる
  • GitHub のリポジトリを検索する際、GitHub API(search/repositories)を利用する
    • github | Dart Package のようなパッケージは利用せず、API を呼ぶ処理を自分で実装すること
  • 検索結果は一覧で概要(リポジトリ名)を表示する
  • 検索結果のアイテムをタップしたら、該当リポジトリの詳細(リポジトリ名、オーナーアイコン、プロジェクト言語、Star 数、Watcher 数、Fork 数、Issue 数)を表示する

デザイン

マテリアルデザインに準拠すること

提出方法

  • GitHub の public リポジトリの URL をお知らせください
  • 別の方法で提出する場合はご相談ください(Git のコミット履歴が分かる形式が望ましいです)
  • この課題とは別のコード(ご自身で公開されているOSS等)をもって課題の提出とすることをご希望の場合はご相談ください

評価ポイント

  • レビューのしやすさ
    • README の充実
    • 適切なコメント
    • GitHub のプルリクエスト機能などの利用
  • Git
    • 適切な gitignore の設定
    • 適切なコミット粒度
    • 適切なブランチ運用
  • 簡潔性・可読性・安全性・保守性の高いコード
  • Dart の言語機能を適切に使いこなせているか
  • テスト
    • テストが導入しやすい構成
    • Unit・UI テストがある
  • UI/UX
    • エラー発生時の処理
    • 画面回転・様々な画面サイズ対応
    • Theme の適切な利用・ダークモードの対応
    • 多言語対応
    • アニメーションなど
  • CI/CD
    • ビルド
    • テスト
    • リント
    • フォーマット
    • 仮のデプロイ環境

上記以外でも高く評価できるポイントがあれば同等に考慮します。

アピールする点があれば、README に箇条書きなどで記載してください。

参考記事

評価ポイントについて詳しくまとめた記事がありますので、ぜひご覧ください。

AI サービスの利用について

ChatGPT等のAIサービスを利用することは、禁止しておりません。

利用にあたって工夫したプロンプトやソースコメント等をご提出頂くことで、加点評価する場合もあります。(減点評価はありません)

また、弊社コードチェック担当者もAIサービスを利用させていただく場合があります。 AIサービスの利用は差し控えてもらいたい等のご要望があれば、お気軽にお知らせください。

Mac をお持ちでない場合について

Mac をお持ちでない場合は課題提出時にその旨お伝えください。 iOS に関連するコード、動作をレビュー対象から除外いたします。