|
1 | | -# Show me the code |
| 1 | +# Santander Challenge |
2 | 2 |
|
3 | | -### # DESAFIO: |
| 3 | +Link para o desafio: [https://github.com/SantanderTecnologia/TesteiOS](https://github.com/SantanderTecnologia/TesteiOS) |
4 | 4 |
|
5 | | -Em uma tela terá um formulário dinâmico com alguns campos predefinidos, conforme o arquivo JSON disponível no link ([https://floating-mountain-50292.herokuapp.com/cells.json](https://floating-mountain-50292.herokuapp.com/cells.json)) que deverá |
6 | | - ser consumido. Este formulário terá de ser desenhado e exibir uma tela de sucesso quando as informações preenchidas estiverem corretas. |
| 5 | +# Como começar |
7 | 6 |
|
8 | | -Na segunda tela terá o detalhe de um ativo financeiro. As informações devem ser consumidas através do link ([https://floating-mountain-50292.herokuapp.com/fund.json](https://floating-mountain-50292.herokuapp.com/fund.json)). |
| 7 | +1. Clone ou baixe o repositório |
| 8 | +2. Abra o arquivo `SantanderChallenge.xcodeproj` |
| 9 | +3. Execute a aplicação: `cmd + R`. |
9 | 10 |
|
10 | | -O visual do aplicativo está em anexo no arquivo telas.png e em um arquivo do [Sketch](https://www.sketchapp.com) (30 dias grátis, caso não tenha a licença). |
| 11 | +## Environments |
| 12 | +Há dois ambientes configurados. |
| 13 | +- *Development*: |
| 14 | +No ambiente `Development` os dados serão recuperados do Bundle, ou seja, mock. |
| 15 | +- *Production*: |
| 16 | + No ambiente `Production` os dados serão buscados do servidor. |
11 | 17 |
|
12 | | - |
| 18 | +Para alterar o ambiente escolha entre os schemas, ao lado do botão de parar a execução. |
13 | 19 |
|
| 20 | +### Candidato pela: [Zup](https://www.zup.com.br/) |
14 | 21 |
|
15 | | -### # Avaliação |
16 | | - |
17 | | -Você será avaliado pela usabilidade, por respeitar o design e pela arquitetura do app. É esperado que você consiga explicar as decisões que tomou durante o desenvolvimento através de commits. |
18 | | - |
19 | | -* Swift 3.0 ou superior |
20 | | -* Autolayout |
21 | | -* O app deve funcionar no iOS 9 |
22 | | -* Testes unitários (De preferência XCTest). Mas pode usar o que você tem mais experiência, só nos explique o que ele tem de bom. |
23 | | -* Arquitetura a ser utilizada: Swift Clean ([https://clean-swift.com/handbook/](https://clean-swift.com/handbook/) && [https://github.com/Clean-Swift/CleanStore](https://github.com/Clean-Swift/CleanStore) && [https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html](https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)). |
24 | | -* Uso do git. |
25 | | - |
26 | | -### # Dicas para o layout |
27 | | - |
28 | | -* O formulário deve respeitar o conteúdo do cells.json ([https://floating-mountain-50292.herokuapp.com/cells.json](https://floating-mountain-50292.herokuapp.com/cells.json)) . |
29 | | -* Se o texto estiver muito grande, quebre em linhas e exiba por completo. |
30 | | -* O sketch está na proporção do iPhone 6, para iPhones menores/maiores é indicado que os espaçamentos se adaptem proporcionalmente. |
31 | | -* Na tela Fundos, o botão baixar irá abrir um SafariViewController no [google.com](http://google.com). |
32 | | -* A fonte a ser utilizada está em anexo no repositório. |
33 | | - |
34 | | -### # Como interpretar o cells.json: |
35 | | - |
36 | | -```Swift |
37 | | -Enum Type { |
38 | | - case field = 1, |
39 | | - case text = 2, |
40 | | - case image = 3, |
41 | | - case checkbox = 4, |
42 | | - case send = 5 |
43 | | -} |
44 | | -``` |
45 | | - |
46 | | -```Swift |
47 | | -Enum TypeField { |
48 | | - case text = 1, |
49 | | - case telNumber = 2, |
50 | | - case email = 3 |
51 | | -} |
52 | | -``` |
53 | | - |
54 | | -`"type":` tipo da célula; |
55 | | - |
56 | | -`"message":` mensagem que vai aparecer na label para type = text ou placeholder para field; |
57 | | - |
58 | | -`typeField":` tipo do field a ser exibido, para exibir corretamente a validação daquele campo. |
59 | | - |
60 | | -`hidden":` indica se o campo está visível; |
61 | | - |
62 | | -`topSpacing":` espaçamento entre o topo da célula e o topo da label/field/ checkbox; |
63 | | - |
64 | | -`show":` indica o campo que será exibido quando este campo for selecionado. No caso é o id do campo a ser exibido. |
65 | | - |
66 | | -`type":` "send" esse botão irá validar todas informações que foram preenchidas e ir para a tela de sucesso quando tudo tiver ok; |
67 | | - |
68 | | -`risk":` pode ser um int de 1 a 5 |
69 | | - |
70 | | -O tipo `text` a validação é digitou alguma coisa, já ficou válido.<br> |
71 | | -Para "telNumber" o campo deve ser formatado `(##) ####-#### || (##) #####-####` e validado de acordo.<br> |
72 | | -Para "email" o email deve ser válido. |
73 | | - |
74 | | -### # Observações gerais |
75 | | - |
76 | | -Adicione um arquivo [README.md](http://README.md) com os procedimentos para executar o projeto. |
77 | | -Pedimos que trabalhe sozinho e não divulgue o resultado na internet. |
78 | | - |
79 | | -Faça um fork desse desse repositório em seu Github e nos envie um Pull Request com o resultado, por favor informe por qual empresa você esta se candidatando. |
80 | | - |
81 | | -### # Importante: não há prazo de entrega, faça com qualidade! |
82 | | - |
83 | | -# BOA SORTE! |
| 22 | +### Dúvidas / Sugestões: _[email protected]_ |
0 commit comments