Qualquer produto que esteja atualmente na loja está ameaçado com lançamentos. Nosso projeto não é exceção. Trabalhamos de acordo com a metodologia scrum, o desenvolvimento é dividido em sprints, geralmente os sprints não têm limite de tempo, mas são divididos em períodos de tempo, dependendo do escopo do sprint. Como resultado do sprint, o aplicativo geralmente é lançado na loja, que inclui novos recursos e algumas correções.
No entanto, devido às especificidades do projeto, nem todos os recursos caem imediatamente na versão após a conclusão do sprint. Devido a essa abordagem, aparecem recursos que não podem ser liberados para o produto. Com tudo isso, ninguém cancelou bugs críticos, pequenas correções e apenas o lançamento de recursos prontos. Existem vários tipos de lançamentos:
- Desenvolvimento iterativo. Lançamento de recursos prontos e acordados.
- Tempo diferente de aceitação dos recursos. Cada recurso tem uma prioridade diferente por parte do cliente, o que definitivamente afeta as datas de lançamento dos recursos já prontos.
- Erros críticos e SLA. Se você encontrar problemas reais nas compilações de vendas, precisará corrigir o erro e lançar a atualização o mais rápido possível.
No contexto de lançamentos constantes, surge a pergunta: "Como conduzir o desenvolvimento?".
Afinal, cada desenvolvedor deve executar tarefas, criar ramificações para essas tarefas e, em algum lugar no final, fundi-las.

Inicialmente, a abordagem “ramos de recursos” foi organizada em estúdio, vamos olhar para o seu conceito, destacar os prós e os contras.

. , , FeatureBranch, DevBranch. , , , , FeatureBranch .

, . , 100% , , . , - swift , , , , xib , . , .
?
:
, . , , .
FeatureToggle
, . FeatureToggle , A/B / . , .
, . , . , - , «-» .
:
public final class FeatureToggle {
public enum SomeFeature {
public static var isEnabled = true
public static var useMocks = false
}
}
, . . , , .. , , .
, . , - .
if FeatureToggle.SomeFeature.isEnabled {
} else {
}
, , , « » .

– . FeatureToggle. , , , . , , . , , , , .
:
:
?
, . , , . — . – , . , . , , .
, :
!
P.S.: . , .