أي منتج موجود حاليًا في المتجر مهدد بالإصدارات. مشروعنا ليس استثناء. نحن نعمل وفقًا لمنهجية scrum ، وينقسم التطوير إلى العدو ، وعادة ما تكون العدو غير محددة بالوقت ، ولكنها مقسمة إلى فترات زمنية اعتمادًا على نطاق العدو. نتيجة للسباق ، عادة ما يتم إصدار التطبيق إلى المتجر ، والذي يتضمن ميزات جديدة وبعض إصلاحات الأخطاء.
ومع ذلك ، بسبب تفاصيل المشروع ، لا تقع جميع الميزات على الفور في الإصدار عند الانتهاء من السباق. بسبب هذا النهج ، تظهر الميزات التي لا يمكن إطلاقها على المنتج. مع كل هذا ، لم يقم أحد بإلغاء الأخطاء الحرجة والإصلاحات الطفيفة وإصدار الميزات الجاهزة فقط. هناك عدة أنواع من الإصدارات:
- التطور التكراري. الافراج عن الميزات الجاهزة والمتفق عليها.
- وقت مختلف لقبول الميزات. لكل ميزة أولوية مختلفة من جانب العميل ، مما يؤثر بالتأكيد على تواريخ إصدار حتى الميزات الجاهزة.
- البق الحرجة وجيش تحرير السودان. إذا وجدت مشاكل حقيقية في تجميعات المبيعات ، فأنت بحاجة إلى إصلاح الخطأ ونشر التحديث في أقرب وقت ممكن.
في ظروف الإصدارات المستمرة ، يطرح السؤال: "كيف تجري التنمية؟".
بعد كل شيء ، يجب على كل مطور القيام بالمهام ، وإنشاء فروع لهذه المهام ، ودمجها في مكان ما في النهاية.

في البداية ، تم تنظيم نهج فرع الميزة في الاستوديو ، فلنلق نظرة على مفهومه ، ونسلط الضوء على الإيجابيات والسلبيات.

. , , 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.: . , .