Giter Club home page Giter Club logo

test-mobile's Introduction

Mobile Test - GitHub Users List App

Make sure you read the whole document carefully and follow the guidelines in it.

Context

We are building an App, which is used to list Github user profiles.

Requirements

Design

https://www.figma.com/file/voov7DANpki5YtI6Jt5d6E/github_userlist_test?node-id=0%3A1

User Stories

  1. As a user on app first launch,
    • When I reach the home page
    • Then I should see a list of GitHub users.
    • Each user item on this page should display as below:
      • avatar at left and center vertically
      • right part has a button, when I tap it, it will switch between FOLLOW and FOLLOWED, The FOLLOW state can be a local strategy
      • next to avatar has two lines of text which vertically centered with avatar
      • first line contains name and score, you can use login and score
      • score is always aligned next to name on the right with a small margin
      • when name is too long and pushes score to the edge of button, keep score displayed in full and shrink name label by trimming the end of text (ex. "verylongname... 109.45402")
      • second line is URL, you can use html_url
    • And I should see a search box
  2. As a user on the home page,
    • When I tap on a user item
    • Then I should see the user's details
  3. As a user on the home page,
    • When I focus on to the search bar
    • And enter search terms
    • Then I should see the corresponding new result lists based on the search terms real time
  4. As a user on the home page,
  • When I pull the list down
  • And the list reach Top
  • Then I should see the list refresh
  1. As a user on the home page,
  • When I scroll up
  • And the list reach bottom
  • Then I should be able continue scrolling to see next page's data
  1. As a user on the user details page,
  • Then I should see:
    • the header view which is fixed and won't animate when the list scrolls
    • the avatar of this user which is the same as displayed in the homepage
    • the name of this user which is the same as diplayed in the hompage
    • the button has the same status as on the homepage for the same item
    • the repositories list which has the same cell style as the homepage, but different datasource
      • avatar: owner.avatar_url
      • name: name
      • score: stargazers_count
      • url: html_url
      • button is hidden in this case
  1. As a user on the homepage or on the user details page
  • When I tap on the button in header view
  • And the button status is switched between FOLLOW and FOLLOWED
  • Then I back to the homepage, the row which has the same user will have the same button status as in the user details page

Functionality

Bonus

  • Write clear documentation on how it's designed and how to run the code.
  • Write good in-code comments.
  • Write good commit messages.
  • Use Jetpack Compose for Android.
  • Use SwiftUI for iOS.

Advanced requirements

These are used for some further challenges. You can safely skip them if you are not asked to do any, but feel free to try out.

  • Animate the header view when list view scrolls on user detail page

What We Care About

Feel free to use any open-source library as you see fit, but remember that we are evaluating your coding skills and problem solving skills.

Here's what you should aim for:

  • Good use of current Android & Swift best practices.
  • We are usually interested in how you use Structs, Enums, Extensions, and Protocol Oriented Programming etc.
  • Good testing approach.
  • Extensible code.

FAQ

Where should I send back the result when I'm done?

Fork this repo and send us a pull request when you think it's ready for review. You don't have to finish everything prior and you can continue to work on it. We don't have a deadline for the task.

What if I have a question?

Create a new issue in the repo and we will get back to you shortly.

test-mobile's People

Contributors

jhonny-me avatar kuno avatar makara avatar quentinberder avatar seazon avatar swordsman-inaction avatar xeodou avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

test-mobile's Issues

About the product request,I have two questions.

The first one is
"As a user on the home page,
When I tap on a user item
Then I should see the user's details"
It means to jump a webview page with "html_url"?

The second is
"As a user on the item details page,
Then I should see user's home page loaded with the home page URL"
It means to load the "html_url" in the web view?

three questions about server and client

@makara
Hi, Because I am unfamiliar with the requirement of server development, I want to ask the following three questions:

  1. Does the server have to connect to the database for data storage, or can just directly generate temporary data for client access
  2. Is it necessary to provide a cloud service for public network access to the api, or just to localhost access?
  3. Is there any requirement for the minSdkVersion support for android client?

can't find news api

"As a user on the home page,
When I focus on to the search bar
And enter search terms
Then I should see the corresponding news result lists based on the search terms real time"

I searched github api doc, but can't find some apis can return news. maybe I misunderstand what you mean, can you help me?

why do we need a scan function?

Since the QR-code is generated by API's return value,all i need is call the API,get data, generate QR. So in which part do i need the camera scan function? Or you mean scan QR from other device?

two questions about requirements.

1, my task is only QR-generator.md, or includes User-flow.md?
2, in QR-generator, the UI mock includes a qr-scan screen, but there's no mention of it in the text. Is it included? If so, I need detailed requirement of this feature, like what to do with the data read from qr-scan.

About requirement.

Hi,I am not very sure about the requirement.Is it just the introduction of QR-generator.md,or includes the other one user-flow.md.

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.