├── README.md ├── _config.yml ├── font.zip ├── telas.png └── teste_app.sketch /README.md: -------------------------------------------------------------------------------- 1 | # Show me the code 2 | 3 | ### # DESAFIO: 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. 7 | 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)). 9 | 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 | 12 | ![Image](https://floating-mountain-50292.herokuapp.com/telas.png) 13 | 14 | 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.
71 | Para "telNumber" o campo deve ser formatado `(##) ####-#### || (##) #####-####` e validado de acordo.
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! 84 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /font.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InterviewTests/TesteiOS/e32711e64809dae44400e3545bbab6821509ce26/font.zip -------------------------------------------------------------------------------- /telas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InterviewTests/TesteiOS/e32711e64809dae44400e3545bbab6821509ce26/telas.png -------------------------------------------------------------------------------- /teste_app.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/InterviewTests/TesteiOS/e32711e64809dae44400e3545bbab6821509ce26/teste_app.sketch --------------------------------------------------------------------------------