CocoaHeadsBrasil / CocoaHeadsApp

O app oficial do CocoaHeads Brasil (em desenvolvimento)
http://www.cocoaheads.com.br
MIT License
81 stars 33 forks source link

CocoaHeads Brasil 🇧🇷

waffle board Build Status

Quem Somos

CocoaHeads é um grupo formado por desenvolvedores (profissionais e iniciantes), que se organizam para reunir pessoas com a mesma paixão: Programação para os iDevices da Apple (OSX e iOS). Nossos encontros são informais e servem para juntar pessoas que gostam do mesmo assunto que você [programação! :) ]. Promovemos Talks e Palestras dadas por membros do grupo local ou de convidados especiais. Estamos também presentes no Slack, http://iosdevbr.herokuapp.com, onde temos diversas iniciativas como a criação do aplicativo da comunidade, área de #code-help, uma sessão para divulgação de empregos no canal #jobs, falamos também sobre #design e #ux de aplicações além de ter o podcast da comunidade!

Setup inicial

Instalação das Dependências

./setup.sh

Guidelines de desenvolvimento

UI

Usamos um storyboard Main.storyboard para definir o fluxo do app, porém o desenvolvimento da tela não é feito diretamente no storyboard. Para desenvolver uma tela você deve:

  1. Criar um viewController para esta tela
  2. Criar uma view que extenda de NibDesignable
  3. Criar um Xib com o mesmo nome da View.
  4. Definir a classe do File's Owner para a classe da view que você criou
  5. Adicionar uma nova scene no storyboard.
  6. Definir a classe do ViewController para o controller criado no passo 1
  7. Arrastar uma nova View para dentro dele, e definir a classe dessa view para a view criada no passo 2

Com isso, a view será renderizada corretamente no storyboard, mas sua edição será no arquivo Xib criado.

Interação com a View

Devemos seguir alguns conceitos e princípios para separar a lógica de nossa funcionalidade:

  1. O ViewController deve apenas interagir com a view quando esta tiver que mudar de tamanho, ou apresentar outros ViewControllers
  2. Crie uma classe que extenda de ViewModel.
  3. Adicione uma propriedade viewModel para a classe View.
  4. A classe ViewModel deve conter informações sobre o estado da view, e lógicas que alterem esses estados.
  5. A classe View deve monitorar estes estados para alterar visualmente sua aparência.

Quem pode contribuir

Todos desenvolvedores iOS estão aptos a colaborar com essa iniciativa, basta seguir o workflow de contribuição.

Guideline de contribuição

Neste projeto, estamos usando o Github Flow integrado com o Forking Wokflow.

Preparação

Desenvolvimento

Publicação

Features do projeto

Todo o desenvolvimento do app está concentrado no github. Portanto, para gerenciá-lo, usamos issues, labels e milestones.

Issues

Workflow

  1. Quando uma nova issue é criada, ela entra in review. Assim, os participantes do projeto podem conversar a respeito e colaborar com a proposta.
  2. Uma prosposta pode ser negada (Declined) ou transformada em item do backlog do projeto (Onboard).
  3. As issues em onboard podem começar a serem desenvolvidas (In progress).
  4. Quando o desenvolvimento da feature é completado, o desenvolvedor por criar um pull request e associar à issue (Waiting PR review).
  5. Os demais participantes do projeto podem revisar os pull requests (In PR review).
  6. Quando for feito o merge, aquela issue é encerrada (Delivered).

Labels

Progresso

Informativo

Milestone

O projeto, hoje, possui os seguintes milestones:

Motivação da criação do App

O crescimento do número de chapters em inúmeras cidades se fez a necessidade de ter um local onde pudessemos ver e organizar tantos eventos. Assim surgiu a ideia de fazermos o aplicativo do CocoaHeads Brasil com a presença de todos os eventos. A visualização destes além das informações mais detalhadas, além de apresentar a lista de participantes por evento, sorteios e muito mais.

Licença

The MIT License