Останнім часом я дуже часто бачив це питання (і його варіанти). Мене дивує те, як часто люди відповідають, але як мало хто відповідає .
У мене є свої уподобання (мені подобаються обидва стеки), але саме тут більшість "відповідей" починають іти не так. Це не повинно бути про те, що я хочу (або що хоче хто-небудь інший).
Ось як я б пішов щодо визначення вартості MonoTouch - я, очевидно, не можу бути об'єктивним, але я думаю, що це досить безтурботно:
Це для розваги чи для бізнесу? Якщо ви хочете отримати консультацію в цій галузі, ви можете отримати свої 399 доларів назад дуже швидко.
Ви хочете навчитися платформі зсередини, чи ви просто "хочете" написати додатки для неї?
Вам подобається. Досить, що використання іншого стека розробників дозволить вам отримати задоволення? Знову ж, мені подобаються обидві стеки (Apple і Mono), але для мене MonoTouch робить цей досвід набагато веселішим. Я не переставав користуватися інструментами Apple, але це головним чином тому, що мені дуже подобаються обидві версії . Я люблю iPhone, і я люблю .Net У такому випадку для мене MonoTouch був нерезультативним.
Чи почуваєтесь ви комфортно працювати з C? Я не маю на увазі «Objective-C», але «C» - це важливо, тому що «Objective-C» є C. Це приємна, вигадлива, доброзичлива версія OO, але якщо покажчики дають вам heebie-jeebies, MonoTouch - ваш друг. І не слухайте найсайєрів, які думають, що ви чорт, якщо трапляється, що вам не подобаються покажчики (або С тощо). Я коли-небудь ходив із копією кишенькової довідки IBM ROM BIOS, і коли я писав збірку і змушував комп’ютер у кумедних режимах відео та писав власні шрифти візуалізації шрифту для них та (правда, смішні) системи вікон, я цього не робив ' Не думаю, що динаміки QuickBasic були розпусниками. Я бувQuickBasic Dev (крім решти). Ніколи не поступайтеся дурному махізму. Якщо вам не подобається C, і якщо вам не подобаються покажчики, і якщо ви хочете триматися якнайдалі від ручного управління пам’яттю (і, якщо чесно, то в ObjC це зовсім не погано). .. MonoTouch. І не приймайте за це жодних зубців.
Хочете націлити користувачів або підприємства? Для мене це не має великого значення, але на Edge все ще є люди, і факт полягає в тому, що ви можете створити набагато менший пакет завантажень, якщо використовувати стек Apple. Я граю з MonoTouch, і у мене є пристойний маленький додаток, який, стиснувшись, зменшиться до приблизно 2,7 Мб (коли ви подаєте свою програму для розповсюдження, ви поштовуєте її - коли програми завантажуються з магазину, вони ' знову застебнутий - тож, коли з’ясуєте, чи буде ваш додаток за межею OTA в межах 10 МБ, спочатку застебніть присоску - ви будете приємно здивовані MonoTouch). Але, окрім щастя MT, півмісяця проти майже трьох (наприклад) - це те, що може бути важливим для вас, якщо ви орієнтуєтесь на кінцевих користувачів. Якщо ви думаєте про роботу на підприємстві, кілька МБ взагалі не матимуть значення. І, просто, щоб було зрозуміло - я незабаром буду надсилати додаток на основі МТ в магазин, і в мене немає жодних проблем із розміром. Це мене зовсім не турбує. Але якщо це щось, що стосувалося бви , тоді стек Apple виграє цей.
Робите якісь XML роботи? MonoTouch. Період.
Струнна маніпуляція? Дата маніпуляції? Мільйон інших дрібниць, до яких ми звикли, з раковинами. MonoTouch.
Веб-сервіси? MonoTouch.
Синтаксично вони обоє мають свої переваги. Objective-C має тенденцію бути більш багатослівним там, де потрібно це записати . Ви виявите, що пишете код на C #, який би вам не довелося писати з ObjC, але це йде обома способами. Саме ця тема може заповнити книгу. Я віддаю перевагу синтаксису C #, але, перебравши свою первісну реакцію на об'єктив-С-потойбічний, я досить навчився йому користуватися. Я висміювати нього трохи в переговорах (це є дивним для розробників , які ви використовувати для C # / Java / і ін.), Але правда в тому , що у мене є Objective-C форму плями в моєму серці , що робить мене щасливим.
Ви плануєте використовувати Interface Builder? Тому що навіть у цій ранній версії я вважаю, що роблю набагато менше роботи, щоб створити свої інтерфейси з ІБ та потім використовувати їх у коді. Складається враження, що цілі кроки відсутні у способі здійснення об'єктивної C / IB, і я впевнений, що це так, оскільки цілі кроки відсутні у способі здійснення об'єктивної C / IB. Поки що, і я не думаю, що я достатньо перевірений, але поки що MonoTouch є переможцем у тому, наскільки менше роботи вам доведеться виконати.
Ви вважаєте, що цікаво вивчати нові мови та платформи? Якщо так, iPhone може запропонувати багато, і стек Apple, швидше за все, виведе вас із зони комфорту - що для деяких чортів весело (Привіт - я одна з цих чортів - я жартую з цього приводу і даю Apple важкий час, але мені було дуже цікаво навчатися розробці iPhone за допомогою інструментів Apple).
Є так багато речей, які слід врахувати. Значення настільки абстрактне. Якщо ми говоримо про вартість і чи варта вона, відповідь зводиться до мого першого пункту: якщо це справа, і якщо ви зможете отримати роботу, ви повернете свої гроші.
Отже ... це приблизно так само об'єктивно, як і я. Це короткий перелік того, про що ви можете запитати себе, але це відправна точка.
Особисто (давайте на мить відкинемо об’єктивність) я люблю і використовую і те, і інше. І я радий, що спочатку дізнався стек Apple. Мені було легше встати і працювати з MonoTouch, коли я вже знав свій шлях у світі Apple. Як говорили інші, ви все ще будете працювати з CocoaTouch - це просто буде в середовищі .Net.
Але є більше того. Люди, які не використовували MonoTouch, як правило, зупиняються на цьому - "Це обгортка, бла-бла-бла" - це не MonoTouch.
MonoTouch надає вам доступ до того, що може запропонувати CocoaTouch, а також надає вам доступ до того, що (підмножина). Net може запропонувати, IDE, яким люди відчувають себе більш комфортно (я один з них), краща інтеграція з Interface Builder , і хоча ви не можете повністю забути про управління пам’яттю, ви отримуєте хороший ступінь простоти.
Якщо ви не впевнені, візьміть стек Apple (безкоштовно) та візьміть стек MonoTouch eval (безкоштовно). Поки ви не приєднаєтесь до програми розроблення Apple, обидва будуть працювати лише проти тренажера, але цього достатньо, щоб допомогти вам зрозуміти, чи ви віддаєте перевагу одне іншому, і можливо, чи MonoTouch для вас коштує 399 доларів.
І не слухайте завзятих - вони, як правило, ті, хто не застосував технологію, на яку вони порушили :)