2008-09-19 2 views
6

Я программировал на C, C++, C# и несколько других языках в течение многих лет, в основном для Windows и Linux, но также и встроенных платформ. Недавно я начал заниматься программированием на iPhone в качестве побочного проекта, поэтому я использую платформы Apple впервые с момента своего Apple II. Мне интересно, что думают другие разработчики, которые приходят в Mac OSX, Xcode и iPhone SDK. Вот мои впечатления, до сих пор:iPhone программирование - впечатления, мнения?

  • Mac OSX: очень запутанным, я, как правило, в конечном итоге с большим количеством открытых окон и не знаю, что там. К счастью, с высоты птичьего полета, без нее я бы потерялся. С оболочкой, по крайней мере, есть все знакомые вещи, так что мне очень помогает.

  • Xcode: не так хорошо, как VisualStudio или Eclipse, в двух средах, с которыми я знаком. Я думаю, что я мог бы привыкнуть к этому, но мне интересно, не будет ли Apple лучше работать с Eclipse. Прежде чем я нашел настройку, где все окна склеиваются, я ненавидел ее, теперь я могу терпеть это.

  • iPhone SDK: странно. Я понимаю стремление Apple контролировать свою среду, но в этот день и в возрасте это кажется немного неряшливым, и их так много не хватает, разрушая добрую волю разработчика.

  • Цель-C: Я знаю об этом годами, но даже не взглянул на нее. Синтаксис отключен, но на самом деле я очень заинтригован этим языком. Я думаю, что это интересный третий этап между C++ и C#, оба из которых мне нравятся. Есть ли вероятность, что Obj-C выйдет из песочницы Mac из-за всплеска популярности технологий Apple?

Любопытный читать ваши мысли,

Эндрю

ответ

5

Я нахожусь в той же лодке, что и вы (несколько). Я развиваюсь на C# в течение 7 лет, начиная с .NET 1.0. За последние пару недель я преподавал себе Cocoa и Objective-C. Вот мои впечатления (примечание к сведению)

  • Согласен с тем, что беспорядок может быть проблемой. Я очень сильно использую пространства при разработке в XCode (поместите XCode в одно пространство, Interface Builder в другое пространство, Инструменты в третьем пространстве). Если у вас нет Leopard (и, следовательно, нет пробелов), используйте Command-H, чтобы скрыть активное окно. Использование этого имеет тенденцию чистить вещи совсем немного (однако было бы неплохо, если бы вы могли командовать h автоматически в текущем окне, когда команда-вкладка в другое приложение).

  • Мне нравится XCode все больше и больше.Я ненавижу Visual Studio - я нахожу ее нестабильной, медленной и хорошо, просто своего рода дрянной IDE. Сравнительно я нашел XCode быстрым, стабильным, и мне нравится, как он организует и фильтрует ваши файлы. Я не слишком использую ярлыки XCode, но я надеюсь, что я смогу быстро переключиться с одного класса на другой (аналогично сочетанию клавиш Ctrl + N в ReSharper). Intellisense может быть лучше в отношении того, как он отображается пользователю, но мне очень нравится, как он по существу создает шаблон, и вы можете ctrl +/перейти к следующему аргументу в сообщении.

  • Я ненавижу документацию в XCode. Система справки сосет, и по какой-то причине это никогда не находит то, что я ищу. Я в конечном итоге просто искал все, что мне нужно знать ... Надеюсь, они улучшат документацию. Это моя самая большая говядина прямо сейчас.

  • Не совсем там, поскольку я просматриваю полную инфраструктуру Cocoa для настольных компьютеров Mac. Пока мне действительно нравится, что я вижу. Одно можно сказать, что было бы неплохо, если бы iPhone SDK разрешал сбор мусора ...

  • Objective-C - Я никогда не использовал его, это мой первый набег на него. Поначалу я был отвлечен синтаксисом и квадратными скобками для обмена сообщениями, но он действительно растет на меня. Это настолько быстро, что можно пропустить метод и просмотреть вызовы сообщений, которые делает этот метод. Чем больше я использую его, тем больше Objective-C просто чувствует себя хорошо ... однако шаблоны/дженерики были бы приятным дополнением к языку.

В общем, мой набег в развитие Mac был приятным, и я рад, чтобы начать работать (сегодня! Яй!) На некоторых реальных проектах макинтош/iPhone.

+0

Что касается классов переключения: лучшее, что я нашел, это Cmd-Shift-D (я думаю) - быстро открыть файл (он находится в меню «Файл»). Выводит окно, в котором вы можете ввести имя файла, и оно автоматически завершается для вас. Не идеально, но лучше, чем с помощью мыши. – Andy 2009-02-03 15:22:41

3

Я согласен с вашими чувствами. Переход от инструментов разработки Microsoft (и eclipse) к XCode является довольно суровым. XCode просто чувствует ... незавершенным в некоторых отношениях. У него, конечно же, нет лака, который я ожидаю от VS и Eclipse.

SDK похож, большая часть его плохо документирована, и есть много отверстий, в которых вы знаете, что что-то должно быть, но это просто не так. Одним из примеров является попытка тщательно контролировать воспроизведение аудио/видео файлов.

Объектив-C, однако, замечательный. Мне очень нравится этот язык, несмотря на его причуды и особенности (сообщения для null - это не исключение во время выполнения?) Как только ваши глаза C++ привыкают к синтаксису, навязчивый анонимный обмен сообщениями действительно заканчивается тем, что действительно здорово играть с (если несколько опасно и подвержено RTE).

+0

I, для одного, абсолютно любят тот факт, что отправка сообщений в нуль ничего не делает. Это устраняет необходимость в большом количестве шаблонов «это нуль?» условия. – seaturtle 2017-11-07 15:04:15

2

Я действительно хочу вскочить и начать разработку приложений для iPhone. Я немного поработал над разработкой Motorola, Blackberry и Windows Mobile, которые были классными и восточными, чтобы получить хорошую документацию, легко получить доступ и установить SDK. До сих пор я чувствую, что Apple немного элитарна в том, что кажется, что их среда разработки доступна только на Mac. Мне также не нравятся их концепции лицензирования. Если вы хотите иметь возможность публиковать приложения, вам необходимо пройти через них, и у них есть последнее слово о том, можете ли вы или нет, или ваше приложение считается приемлемым для работы над их превосходным продуктом. Я убежден в том, что сообщество разработчиков с открытым исходным кодом затрудняет поддержку и производство приложений или iPhone-неофитов, таких как я, даже начать писать приложения для продуктов. В Microsoft много плохо сказано, но я должен сказать, что они получают свои API и SDK там задолго до того, как их продукты выходят на рынок и действительно поощряют программистов всех уровней копаться и участвовать в написании приложений для своих фреймворков и операционные системы.

+1

Я согласен с вашими настроениями в App Store ... Я надеюсь, что когда Android выпустят, Apple вынуждена ослабить свою монопольную дистрибьюцию приложений iPhone ... – cranley 2008-09-19 16:56:18

2

Я работал над несколькими небольшими приложениями для iPhone, и я просто удивлен тем, что они не включают компоненты фреймворка, которые позволяют разработчикам легко обращаться к веб-службам SOAP. Кто-нибудь еще работает в ИТ-среде предприятия, чувствуя боль?

0

Я тоже пришел с фона C# и работал с iPhone SDK с бета-версии 2. Я полностью согласен с тем, что VSK является немного неуклюжим по сравнению с Xcode. Xcode WAY отличается, и совершенно чужой, когда вы начинаете его использовать. Так было VS, хотя в тот же день. После того, как вы пройдете курс обучения, это замечательный опыт. Приложения, которые я разрабатываю, используют серверную часть C# (веб-службу), и я абсолютно не хочу переключаться на VS, чтобы написать код веб-службы из Xcode. Obj-C также довольно забавно использовать, как только вы узнаете, как он работает лучше всего: делегаты (очень отличные от делегатов .NET), сообщения, категории и все остальные странности.

Я проработал некоторое программирование на Java и Flex до .NET, и я всегда ненавидел документы .NET по сравнению с документами Java. Они просто не режут. Я лично нашел документы Xcodes и поисковую систему, чтобы быть не чем иным, как потрясающим.Существует множество руководств PDF, связанных с документами, которые содержат тонны кода примера. Подумайте об этом: iPhone SDK вышел из бета-тестирования около 2 месяцев. Документы показывают уровень зрелости на многие годы. И да, это потому, что Obj-C существует уже более года, а рамки похожи.

В целом, самая большая проблема, которую я обнаружил, заключается в том, что есть много разработчиков .NET, которые прыгают на iPhone победителя и пытаются использовать Obj-C, как если бы это были C# или VB. Они не могут прочитать базовые документы Obj-C, не говоря уже о документах iPhone, а затем они очень расстраиваются и в конечном итоге терпят неудачу. Дискуссионные форумы полны этого сценария. Программирование iPhone непросто. Изучение нового языка непросто. Это требует времени и много try.fail.try. Это не .NET, поэтому теряйте этот настрой, прежде чем вы начнете, и все будет замечательно.

1

Я лично считаю, что документация очень хороша на этом этапе. В любом классе Objective C вы можете выбрать-doubleClick, чтобы отобразить документацию для этого термина, и если есть какие-либо примеры проектов, использующих этот конкретный класс, который указан (по крайней мере для многих конкретных классов iPhone).

Также изучите включение помощника по исследованиям, когда вы впервые начинаете, и включите Code Sense (не думайте, что он включен по умолчанию). Комбинация XCode + Interface Builder довольно эффективна, когда вы привыкаете к ней, и, честно говоря, через несколько десятилетий я никогда не использовал лучшего конструктора интерфейса с точки зрения того, как работает интеграция с кодом, или с возможностью разработки интерфейсов, которые разумно изменяют размер без тонна дополнительной работы.

1

Я новичок в iPhone программирования и XCode тоже, после многих лет программирования на многих платформах и у меня сложилось впечатление довольно близко к вашей (с некоторыми отличиями):

  • Mac OSX: Я переключился с Windows около 2 лет назад (как эксперимент), и я остался :) - Я не думаю, что вернусь. Наличие фундамента Unix очень круто, и мне очень нравится графический интерфейс + мне нравится простая простота интерфейса. Мне потребовалось около двух месяцев, чтобы привыкнуть к этому, но я не могу себе представить, как вернуться. Я ненавижу раскладку клавиатуры MacBook и некоторые ограничения на клавиатуру OSX. Забавно, как компания, которая так гордится своими знаниями о юзабилити, может придумать такой паршивый набор решений. Возможно, лучшие примеры не имеют контекстного меню (щелчок правой кнопкой мыши), а также того факта, что вам нужны два ключа для выполнения таких задач, как Home, End, PgUp и т. Д. Мой главный совет - потратить время на обучение столько клавиш ярлыки, насколько это возможно. Я также рекомендую установить & с помощью следующих 3-го приложения сторонних, которые существенно улучшили мой Mac опыт: Quicksilver, Path Finder, 1Password, Things, TextMate, Text Wrangler & Transmit.

  • Xcode: Я полностью согласен с вами. Я думаю, что XCode довольно примитивный. Я сравниваю это с IntelliJ IDEA, что я работаю с большим и он чувствует, как Apple, застряла по крайней мере, 7 лет в прошлом:

    • код навигация настолько примитивно слишком много окон прыгающих вокруг
    • вы должны использовать мышь все время
    • шаблонный очень ограничено и основывается на наивных макро понятий, не имеющих отношения к контексту или обзорного
    • рефакторинга ограничивается лишь несколько простых действий
    • вы даже не можете легко выполнить тривиальным задачи, такие как переопределение метода
    • Код Чувство хорошее, но могло бы быть намного лучше, если бы он понял, набрав ...

    Большая ирония заключается в том, что серьезные разработчики Mac даже не понимают, что у них есть проблемы ... Они так привыкли к беспорядку они должны иметь дело с, что они не могут представить себе лучший мир ... Вместо того, чтобы помогать вам, XCode продолжает мешать. Я могу придумать десятки примеров того, как эта среда отстой, по сравнению с современными Java IDE (Eclipse, IntelliJ), но я считаю, что это пустая трата времени - кажется, что Apple слишком гордится, чтобы учиться у других ... смешно, если учесть тот факт, что изобретатели Java не стеснялись до learn from Objective-C. Мой единственный совет (для меня тоже) - сделать глубокий вдох, когда вы открываете XCode и learn as much as possible from the experts, которые больше привыкли к этой среде.

  • iPhone SDK: это даже хуже того - мы рассматривали перенос our mobile app на iPhone пару месяцев назад, но решили не беспокоиться, потому что мы волновались, что Apple может отказаться от него из магазина приложений, и вы не можете знать (у них есть rejected несколько аналогичное приложение в прошлом на том основании, что оно слишком близко к iTunes!)

  • Obj-C: Я считаю Objective-C довольно приятным и через несколько дней привыкнуть к неудобный синтаксис сообщений, но мальчик, я скучаю по сборке мусора ... Имея дело с распределением памяти и выпуском релизов, это похоже на то, что я возвращаюсь вовремя к моим ранним дням C/C++. Я только начинаю изучать нюансы этого языка, но пока мне нравится то, что я нашел. Есть немало советов, разбросанных вокруг веб о Obj-C наилучшей практике, которые вы не можете найти в официальных документах, и я узнал много из них (смотрите, например, следующее обсуждение here on stackoverflow)

Смежные вопросы