├── README.md
├── api
└── data.json
├── assets
├── clock.png
├── pencil.png
├── rubberbands.png
└── rulers.png
├── mockup-android.png
└── screens
├── 01-list-parentchild.gif
├── 01-list-parentchild.mp4
└── two-line-example-2.png
/README.md:
--------------------------------------------------------------------------------
1 | Teste de Android Developer Nexaas
2 | ===================
3 |
4 | Este teste é apresentado aos candidatos as vagas de Android Developer para avaliar os quesitos técnicos.
5 |
6 | ----------
7 |
8 |
9 | O Desafio
10 | -------------
11 |
12 | Seu objetivo é criar um app com duas telas, uma que exibe uma lista que exibe o resultado de uma API e outra mostra os dados detalhados do item selecionado
13 |
14 | > **Notas:**
15 |
16 | > - A ideia é avaliar a criação de telas com o padrão material design usando todos os componentes do androidx
17 | > - Lembre-se de seguir toda guideline material design (https://material.io/)
18 | > - Para o desenho das telas, não precisa se preocupar com a interface na horizontal;
19 | > - Material de ajuda segue no link (https://material.io/components/lists/)
20 |
21 |
22 | #### Telas
23 |
24 |
25 | | Listagem |
26 | Detalhes |
27 |
28 |
29 |
30 | |
31 |
32 | |
33 |
34 |
35 |
36 |
37 |
38 | #### Consumindo Serviço
39 |
40 | Para consumir o serviço da API Rest
41 |
42 | **Como usar:**
43 |
44 | > - **URL** https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/master/api/data.json
45 | > - **Método**: GET
46 |
47 | Exemplo de resposta
48 | > [{
49 | "name": "Pencil",
50 | "quantity": 1,
51 | "stock": 5,
52 | "image_url": "https://github.com/myfreecomm/desafio-mobile-android/blob/master/assets/pencil.png?raw=true",
53 | "price": 150,
54 | "tax": 162,
55 | "shipping": 50,
56 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nunc magna, gravida ut orci non, egestas venenatis libero. Sed luctus, turpis at porta commodo, ipsum orci volutpat sapien, ut scelerisque diam massa lobortis odioc."
57 | }]
58 |
59 | #### Pré-requisitos
60 |
61 | - Versão mínima do SDK: 21
62 | - Tela deve ajustar em devices menores.
63 | - Utilizar Kotlin
64 |
65 | #### O que esperamos
66 | - Boa arquitetura, pode ser (mvc, mvp, mvvm, clean etc)
67 | - RxJava ou Coroutines
68 | - Testes unitários
69 | - Cache de imagens
70 | - Tratamentos de erros
71 | - Padrão de Projeto e boas práticas de Orientação a Objetos.
72 | - Google AAC (Android Architecture Components)
73 |
74 | #### Plus
75 | - Construir layouts com Constraints
76 | - Trabalhar offline (cache dos dados)
77 | - Injeção de dependência (dagger, koin, kodein)
78 |
79 |
80 | Publicação
81 | -------------
82 |
83 | Crie um **Fork** do repositório para realizar o teste, e depois de finalizado envie um **Pull Request** para nossa equipe interna avaliar
84 |
--------------------------------------------------------------------------------
/api/data.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "Pencil",
4 | "quantity": 1,
5 | "stock": 5,
6 | "image_url": "https://github.com/charleston10/test-android-nexaas/blob/master/assets/pencil.png?raw=true",
7 | "price": 150,
8 | "tax": 162,
9 | "shipping": 50,
10 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nunc magna, gravida ut orci non, egestas venenatis libero. Sed luctus, turpis at porta commodo, ipsum orci volutpat sapien, ut scelerisque diam massa lobortis odioc."
11 | },
12 | {
13 | "name": "Rubberbands",
14 | "quantity": 1,
15 | "stock": 8,
16 | "image_url": "https://github.com/charleston10/test-android-nexaas/blob/master/assets/rubberbands.png?raw=true",
17 | "price": 450,
18 | "tax": 81,
19 | "shipping": 0,
20 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nunc magna, gravida ut orci non, egestas venenatis libero. Sed luctus, turpis at porta commodo, ipsum orci volutpat sapien, ut scelerisque diam massa lobortis odio. Nulla ut tincidunt erat, a mollis tortor. Phasellus vel ligula leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam id semper quam, id efficitur mi. Etiam volutpat eleifend commodo. Duis sed consectetur diam. Morbi mattis justo eget vehicula placerat. Sed commodo, neque a accumsan vehicula, magna libero lacinia dolor, a consectetur turpis odio nec risus. Nullam id dui lacus."
21 | },
22 | {
23 | "name": "Rulers",
24 | "quantity": 1,
25 | "stock": 1,
26 | "image_url": "https://github.com/charleston10/test-android-nexaas/blob/master/assets/rulers.png?raw=true",
27 | "price": 800,
28 | "tax": 0,
29 | "shipping": 100,
30 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nunc magna, gravida ut orci non, egestas venenatis libero. Sed luctus, turpis at porta commodo, ipsum orci volutpat sapien, ut scelerisque diam massa lobortis odioc."
31 | },
32 | {
33 | "name": "Clock",
34 | "quantity": 1,
35 | "stock": 10,
36 | "image_url": "https://github.com/charleston10/test-android-nexaas/blob/master/assets/clock.png?raw=true",
37 | "price": 2200,
38 | "tax": 81,
39 | "shipping": 50,
40 | "description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nunc magna, gravida ut orci non, egestas venenatis libero. Sed luctus, turpis at porta commodo, ipsum orci volutpat sapien, ut scelerisque diam massa lobortis odio. Nulla ut tincidunt erat, a mollis tortor. Phasellus vel ligula leo. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nam id semper quam, id efficitur mi. Etiam volutpat eleifend commodo. Duis sed consectetur diam. Morbi mattis justo eget vehicula placerat. Sed commodo, neque a accumsan vehicula, magna libero lacinia dolor, a consectetur turpis odio nec risus. Nullam id dui lacus."
41 | }
42 | ]
--------------------------------------------------------------------------------
/assets/clock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/assets/clock.png
--------------------------------------------------------------------------------
/assets/pencil.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/assets/pencil.png
--------------------------------------------------------------------------------
/assets/rubberbands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/assets/rubberbands.png
--------------------------------------------------------------------------------
/assets/rulers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/assets/rulers.png
--------------------------------------------------------------------------------
/mockup-android.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/mockup-android.png
--------------------------------------------------------------------------------
/screens/01-list-parentchild.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/screens/01-list-parentchild.gif
--------------------------------------------------------------------------------
/screens/01-list-parentchild.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/screens/01-list-parentchild.mp4
--------------------------------------------------------------------------------
/screens/two-line-example-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/myfreecomm/desafio-mobile-android/eb449fad05c04524f4d1b1a1b4d35a9658cc9e7e/screens/two-line-example-2.png
--------------------------------------------------------------------------------