Apple, कृपया इंटरफ़ेस बिल्डर को समाप्त करें!

यह पोस्ट ऐप्पल के प्रति गुस्से का रोना है, और फिर भी आशा मुझ में बनी रही। मैं अब 4 साल के लिए एक आईओएस डेवलपर रहा हूं, और पहली बार में एक क्षणिक अपूर्णता की तरह लग रहा था, तुच्छ विवरण वर्षों में पानी के साथ एक चीनी यातना में बदल गया, और आप और मैं हर दिन, अच्छी तरह से, या सप्ताह में कम से कम एक बार आईबी का उपयोग करते हैं।



शायद ऐप्पल इस तरह की आलोचना के लायक नहीं है - सच्चाई यह है कि, बाकी सब कुछ, अच्छी तरह से, या लगभग सब कुछ, अपने सबसे अच्छे रूप में है। ITunes और Apple डेवलपर पोर्टल को छोड़कर (जो हाल के वर्षों में, फिर भी, बहुत बेहतर हो गया है) प्रौद्योगिकी आपको यह ध्यान केंद्रित करने की अनुमति देती है कि आप क्या करते हैं, और IE में यह कैसे दिखेगा, इस पर ध्यान केंद्रित नहीं करता है।

पहले तो मैंने आईबी का उपयोग बिल्कुल नहीं किया, यह मुझे बहुत ही टेढ़ा लग रहा था और अन्य दृश्य संपादकों के बाद मुझे बहुत बुरा लगा। यहां तक ​​कि मैक्रोमेडिया ड्रीमव्यूअर एमएक्स, आईएमएचओ, को यूआई के लिए WYSIWYG संपादकों कहा जाने का एक बेहतर मौका था। लेकिन कई साल बीत गए, और एक अद्भुत बात सामने आई - ऑटोलॉयट - जो कोड में लागू करने के लिए विनाशकारी रूप से असुविधाजनक है। इस कोड में थोड़ा भाग्य:

UIImageView *iv = [[UIImageView alloc] initWithImage:image]; UIView *renderView = [[UIView alloc] initWithFrame:iv.bounds]; NSInteger completedDistance = renderView.bounds.size.width * percentsCompleted; UIView *progressView = [[UIView alloc] initWithFrame:CGRectMake(completedDistance, 0, renderView.bounds.size.width, renderView.bounds.size.height)]; progressView.backgroundColor = RGB_UICOLOR(255, 255, 255, 0.8); renderView.clipsToBounds = YES; [renderView addSubview:iv]; [renderView addSubview:progressView]; 


लेकिन तरह कोड

 NSMutableArray *constraints = [@[] mutableCopy]; [constraints addObject:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.parentView attribute:NSLayoutAttributeWidth multiplier:1 constant:0]]; [constraints addObject:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.parentView attribute:NSLayoutAttributeHeight multiplier:1 constant:0]]; [constraints addObject:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.parentView attribute:NSLayoutAttributeTop multiplier:1 constant:0]]; [constraints addObject:[NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.parentView attribute:NSLayoutAttributeLeading multiplier:1 constant:0]]; [self.parentView addConstraints:constraints]; 


एक डेवलपर की आत्मा को निराशा और अवसाद में डुबो देता है। IB में, शुरुआत के लिए ऑटोलेयूट सेटिंग भी चीनी है, लेकिन जैसे-जैसे समय बीतता जाता है, आप अपने आप को भयानक जाम पर ध्यान न देने के लिए मजबूर करना शुरू कर देते हैं, छोटे दोषों को तब तक सहन करते हैं ... जब तक आपके पास टैंट्रम नहीं होता है और वर्षों तक बिना सोचे-समझे ब्लंडर की संख्या, सभी उचित से अधिक नहीं होती है सीमा। लेकिन कोई विकल्प नहीं है, प्रारूप अनिर्धारित है, कोई तृतीय-पक्ष उपकरण नहीं होगा! यहाँ मेरी छोटी काली सूची है:



इतना ही नहीं, हमने हाल ही में गधे में एक नया दर्द जोड़ा:



Apple के क्रेडिट के लिए, प्रत्येक छींक माउस से बाधाओं को दूर करना संभव था, लेकिन यह मुझे xCode 4 में 4 बार नर्वस ब्रेकडाउन के लिए लाया, और मेरे साथी के दोस्त की भी दिल का दौरा पड़ने से मृत्यु हो गई।

जिन लोगों ने हाल ही में iOS की खोज की, वे "खत्म!" के एक कोरस में गाते हैं, पवित्र रूप से ऐप्पल और स्टीव जॉब्स के आइकन पर विश्वास करते हैं। जिस पर मुझे आपत्ति है: "उन्होंने इसे पूरा नहीं किया!", उनके पास हमेशा एक दर्जन से अधिक महत्वपूर्ण चीजें होती हैं। वास्तव में महत्वपूर्ण, सुंदर चीजें, लेकिन Apple - हम हर दिन आईबी से निपटते हैं, हम पर दया करते हैं, साधारण नश्वर डेवलपर्स!

बिदाई में, मैं एक दिलचस्प चुनाव की पेशकश करना चाहता हूं:

Source: https://habr.com/ru/post/In195390/


All Articles