Git Product home page Git Product logo

oishi-kenko-android-enginner-recruitment's Introduction

おいしい健康Androidエンジニア選考課題

このリポジトリは株式会社おいしい健康のAndroidエンジニア向け選考課題です。本課題を与えられた方は下記の説明を読んだ上で課題を取り組んでください。

アプリの仕様

「料理記録」アプリです。 レシピ画面の下部に、実際に作ったその料理の写真をちょっとしたコメントつきで残しておける機能です。 このアプリでは料理記録を一覧で表示しています。

環境

  • Android Studio Chipmunk | 2021.2.1 Patch 2
  • Kotlin 1.7.0
  • Jetpack Compose 1.2.0
  • Java 11
  • Gradle 7.3.3
  • minSDK 23
  • target SDK 33

API エンドポイント

実際のエンドポイントURLは、課題と共にお渡しするエンドポイントURLをご確認ください。 お渡しするURLをlocal.propertiesに記載することで実行可能になります。

ここではhttps://[example.com]として説明します。

パラメータ例

limit : 一度のリクエストで取得する記録数を指定します。指定無しの場合は 10 とします。 offset : 取得する記録のオフセットを指定します。指定無しの場合は 0 とします。

例えば、記録が100件あるとして、51番目から5件の記録を取得したい場合には

https://[example.com]/cooking_records?offset=50&limit=5

と指定します。

レスポンス例

レスポンス例
{
  pagination: {
    total: 100,  # 総レコード数
    offset: 50,  # オフセット
    limit: 5     # リクエスト時指定の取得数
  },
  cooking_records: [
    {
      "image_url": "https://[example.com]/images/51.jpg", # 写真のURL
      "comment": "パンチのきいた辛味が印象的です。",                             # コメント
      "recipe_type": "main_dish",                                         # レシピの種類(main_dish: 主菜/主食, side_dish: 副菜, soup: スープ)
      "recorded_at": "2018-04-21 14:04:22"                                # 記録日時
    },
    {
      "image_url": "https://[example.com]/images/52.jpg",
      "comment": "ごまのコクと酸味がさわやかなタレを添えて。",
      "recipe_type": "main_dish",
      "recorded_at": "2018-04-20 14:04:42"
    },
    {
      "image_url": "https://[example.com]/images/53.jpg",
      "comment": "新鮮なとうもろこしのおいしさ。",
      "recipe_type": "soup",
      "recorded_at": "2018-04-19 14:05:41"
    },
    {
      "image_url": "https://[example.com]/images/54.jpg",
      "comment": "しょうゆとオイスターソースで味付けた具がたっぷり。",
      "recipe_type": "main_dish",
      "recorded_at": "2018-04-18 14:06:12"
    },
    {
      "image_url": "https://[example.com]/images/55.jpg",
      "comment": "豚バラ肉とゴーヤーで、夏バテも吹き飛びそうです。",
      "recipe_type": "main_dish",
      "recorded_at": "2018-04-17 14:07:40"
    }
  ]
}

課題の取り組み方法

事前準備

本プロジェクトを 複製 してください(Forkしないようにしてください)。今後のコミットは全てご自身のリポジトリで行ってください。

課題説明

本プロジェクトを起動すると下記のような状態になります。このリポジトリは不完全な状態なので、Issueを取り組みアプリが完全な状態になることを目指してください。

必要素材

Issueの中に指定のあるデザインは下記から確認できます。アクセスパスワードは課題の依頼時にお渡ししますのでご確認ください。

Issue説明

Issueを確認し課題をお渡しする際に指定されたラベルに対して取り組んでください。 Issueにはラベルを付与していますので、難易度の目安にお役立てください。

指定 事前準備 ジュニア ミドル ボーナス
ジュニア/エントリー 必須 必須 任意 任意
経験者 必須 必須 必須 任意

課題 Issueをご自身のリポジトリーにコピーするGitHub Actionsをご用意しております。 こちらのWorkflow手動でトリガーすることでコピーできますのでご活用下さい。

課題の提出方法

課題が完成したら、リポジトリのアドレスを教えてください。

oishi-kenko-android-enginner-recruitment's People

Contributors

kobayashi-oishi-kenko avatar kosenda avatar

Watchers

 avatar

oishi-kenko-android-enginner-recruitment's Issues

リストアイテムの実装

概要

RecipeListItem の実装は不完全な状態です。次の見た目になるように実装してください。

Tasks

  • レシピタイプの実装(主食主菜 / スープ / 副菜 )
  • 記録日時の実装
  • borderの実装
  • 角丸の実装
  • その他リストアイテムレイアウトの実装

デザインソース

Figma

  • Figmaを開くにはパスワードが必要です。課題お渡し時にお送りしたパスワードを入力してください。

2022-11-05(SAT)

Actionsで上手くもってこれなかったためコピーして追加

既存機能の改善・新機能の実装

本機能は必要最低限の機能しかありません。
以下のシナリオと補足情報を確認して、必要だと思う機能・既存機能で改善した方がいい機能があれば実装してください。

シナリオ

A社では、料理家さんが作ったお手軽レシピを閲覧できる、「たのしいレシピ」というAndroidアプリを提供しています。

「たのしいレシピ」は、当初はレシピの閲覧ができるだけのアプリでしたが、数ヶ月前「料理記録」という機能をリリースしたところ、ユーザからの好評を得るようになりました。

「料理記録」とは、レシピ画面の下部に、実際に作ったその料理の写真をちょっとしたコメントつきで残しておける機能です。

ところが、ユーザがたくさんの料理記録を投稿してくれるようになるにつれ、困った問題が起こってきました。

いちいちレシピビューにいかないと自分がどんな記録を送ったか確認することができないので、自分の記録を探し出すのが難しくなってきたのです。

そこで、 A社の開発チームは、「料理記録アルバム」という名前で、自分の送った料理記録だけを一覧でみられる機能を開発することにしました。

まずは、社内で複数のプロトタイプを作って UI の検討をしたいと考えています。

補足情報

「たのしいレシピ」のユーザの傾向としては、以下のようなことがわかっています。プロトタイプづくりの参考にしてみてください。

料理記録をおくるユーザは、じぶんの写真の見栄えにとてもこだわりがあるようです。
「たのしいレシピ」のユーザのボリューム層は、 30 代前半から 40 代の日本人女性です。
料理記録のひとりあたりの登録数は、平均して 50 前後のようです。
「たのしいレシピ」のレシピには、「主菜」「副菜」などのレシピ種別が登録されています。

レシピ詳細画面の実装

概要

レシピ詳細画面を実装してください。
リストアイテムをクリックしたらそのアイテムの詳細画面へ遷移するようにしてください。

ライブラリなどの指定はありません。利用したいライブラリがあればご自由にお使いください。

詳細画面

Tasks

  • 画面遷移の実装
  • レシピ詳細画面の実装

※本リポジトリの元のコードで実装しずらいところがあれば、ご自由にリファクタリングしてください。

デザインソース

Figma

  • Figmaを開くにはパスワードが必要です。課題お渡し時にお送りしたパスワードを入力してください。

リスト画面のページングを実装する

概要

⚠️ このISSUEは #4 の上位互換です。

本リポジトリのアプリを起動すると5件しかレシピが表示されません。
ページングを実装して5件以上レシピが表示されるようにしてください。

ライブラリなどの指定はありません。利用したいライブラリがあればご自由にお使いください。

Tasks

  • レシピリストのページングを実装する
  • ローディング中は CircularProgressIndicators を表示する

※本リポジトリの元のコードで実装しずらいところがあれば、ご自由にリファクタリングしてください。

デザインソース

Figma

  • Figmaを開くにはパスワードが必要です。課題お渡し時にお送りしたパスワードを入力してください。

local.propertiesにnetwork_base_urlを設定する

本リポジトリは現状のままでは動作しません。local.propertiesnetwork_base_urlを設定する必要があります。
課題をお渡しした際にお送りしたURLを設定してください。

例えば、URLが https://example.comなら以下のようにlocal.propertiesに追記してください。

network_base_url=https://example.com

ヘッダーの実装

概要

下記のデザインを参考にヘッダーの実装をしてください。

必要に応じて下記から画像をExportしてお使いください。

Tasks

  • ヘッダーの実装

デザインソース

Figma

  • Figmaを開くにはパスワードが必要です。課題お渡し時にお送りしたパスワードを入力してください。

UnitTestの追加

本リポジトリにはUnitTestがありません。UnitTestを追加してください。

※本リポジトリの元のコードで実装しずらいところがあれば、ご自由にリファクタリングしてください。

レシピを30件表示する

⚠️ このISSUEは [] の下位互換です。

本リポジトリのアプリを起動すると5件しかレシピが表示されません。
レシピを30件表示されるように修正してください。

ライブラリなどの指定はありません。利用したいライブラリがあればご自由にお使いください。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.