本プロジェクトは株式会社ゆめみ(以下弊社)が、弊社に Android エンジニアを希望する方に出す課題のベースプロジェクトです。本課題が与えられた方は、下記の概要を詳しく読んだ上で課題を取り組んでください。
本アプリは GitHub のリポジトリを検索するアプリです。
- IDE:Android Studio Flamingo | 2022.2.1 Patch 2
- Kotlin:1.8.22
- Java:17
- Gradle:8.1.1
- minSdk:23
- targetSdk:34
※ ライブラリの利用はオープンソースのものに限ります。 ※ 環境は適宜更新してください。
- GitHubから
schema.json
をダウンロードし、app/src/main/graphql
に配置してください。schema.json
の入手方法は以下の記事を参照してください。- GitHub GraphQL のスキーマ情報を取得する|まくろぐ
jp.co.yumemi.android.codecheck.token.GitHubTokneProvider
を開き、自身のGitHubのトークンを入力してください。- この変更はコミットしないでください。
gradle.properties
を用いたトークンの管理は残課題としています。
- GitHubのアカウント名を入力(例:okuzawats)
- GitHub API(
https://api.github.com/graphql
)で対象のアカウントのリポジトリを検索し、結果一覧を概要(リポジトリ名)で表示 - 特定の結果を選択したら、該当リポジトリの詳細(リポジトリ概要、Fork 数、Star 数)を表示
MVP(Model-View-Presenter)アーキテクチャを採用しています。また、画面間の結合を避けるために、画面遷移はNavigatorインターフェースを経由して行っています。
リポジトリパターンを採用しています。各画面は、PresenterからUseCaseを呼び出し、UseCaseからRepositoryの処理を呼び出します。
GitHubのGraphQL APIを用いてリポジトリの検索を行っています。GraphQLのクライアントとして、Apollo Kotlinを使用しています。
Issues を確認した上、本プロジェクトを Duplicate してください(Fork しないようにしてください。必要ならプライベートリポジトリにしても大丈夫です)。今後のコミットは全てご自身のリポジトリで行ってください。
コードチェックの課題 Issue は全て 課題
Milestone がついており、難易度に応じて Label が 初級
、中級
と ボーナス
に分けられています。課題の必須/選択は下記の表とします。
初級 | 中級 | ボーナス | |
---|---|---|---|
新卒/未経験者 | 必須 | 選択 | 選択 |
中途/経験者 | 必須 | 必須 | 選択 |
課題 Issueをご自身のリポジトリーにコピーするGitHub Actionsをご用意しております。
こちらのWorkflowを手動でトリガーすることでコピーできますのでご活用下さい。
課題が完成したら、リポジトリのアドレスを教えてください。
提出された課題の評価ポイントに関しては、こちらの記事に詳しく書かれてありますので、ぜひご覧ください。
ChatGPTなどAIサービスの利用は禁止しておりません。
利用にあたって工夫したプロンプトやソースコメント等をご提出頂くことで、加点評価する場合もございます。 (減点評価はありません)
また、弊社コードチェック担当者もAIサービスを利用させていただく場合があります。
AIサービスの利用は差し控えてもらいたいなどのご要望がある場合は、お気軽にお申し出ください。