Подтвердить что ты не робот

Насколько большой скачок будет идти от С# до Objective C

Насколько сложно переносить мои существующие знания в С# на создание приложений для iPad/iPhone в Objective C?

4b9b3361

Ответ 1

Скачок языка в порядке. Как только вы пройдете начальный шок [ и ]. Тем не менее, библиотеки и каркасный шок будут существенными.

Фреймы Cocoa и Touch значительно легче по сравнению с .Net Framework, поэтому, по крайней мере, вы можете взглянуть на яркую сторону, вам будет меньше учиться. Но их основная философия, макет и исторический путь эволюции сильно отличаются от структуры С#/. Net. Будет ли это легко или сложно, трудно оценить. Некоторые личные мнения:

  • Способ создания пользовательского интерфейса Cocoa - это светлые годы впереди всего .Net framework сегодня, Forms или WPF. Сначала это будет сложно понять, но если ваш grok это, он сделает много смысла. Хороший ole 'Model-View-Controller на основе структуры Smalltalk и, естественно, приведет вас к следующему пути справа. проектирование пользовательского интерфейса.
  • Графика, видео, средства массовой информации будут чувствовать себя как с другой планеты при выходе из .Net-фона. Но, несмотря на их кажущуюся тайную внешность, предложения Cocoa очень мощные, хотя и как-то низкие.
  • Анимация будет огромным вздохом облегчения. Cocoa анимация просто проста в использовании, и нет ничего эквивалентного в .Net
  • Если вы создаете openGL вместо Cocoa родной графики, то openGL и openGL практически одинаковы с любой платформой.
  • Сетевое программирование хуже на стороне Cocoa. У вас есть базовая поддержка и вы должны признать, что, по крайней мере, API разработан, который действительно трудно сделать глупым материалом (он заставляет вас использовать асинхронное программирование, поэтому не более одного потока на клиентский не-смысл), но я ' d, вы пропустите утилиты сахара .Net(WebRequest, WebClient и т.д.),
  • Разбор XML. Cocoa поддержка просто примитивна. По крайней мере, опять же, синтаксический анализ XML является событием, поэтому он будет направлять вас к лучшим программам, но сложно собрать.
  • Database. Это будет другой мир. У вас есть выбор перехода на сырой SQLite или Core Data. Основные данные лучше imho. Является высокоуровневым ORM и активным типом записей, с учетом всех тонкостей базового хранилища. Прост в использовании и мощный, если вы просите его сделать что-то, что он знает, как это сделать. Невероятно громоздко заставить его сделать что-то, что он не знает, как это сделать. Правда для любой ORM, в конечном счете. Вы пропустите LINQ, и вам придется забыть SQL. Суть его в том, что опыт программирования DB с .Net просто не переносится в мир Core Data. Альтернатива raw SQLite будет выглядеть более знакомой, но на очень низком уровне, будет больше похожа на программирование ODBC 1990 года, чем в 2010 году .Net.
  • Программирование кодирования по ключевым словам. Эта концепция не имеет прямого эквивалента .Net. Это может звучать как простой словарь, но на самом деле он более мощный. Он переплетается с механизмом времени выполнения Objective part [ Objective-C] и порождает некоторые опрятные трюки. Для эффективного использования Core Animation или Core Data вам нужно будет понять кодировку Key-Value. Вы можете думать об этом как о отражении стероидов. Он может достичь некоторых из тех же трюков, которые могут выполнять Linq-to-Objects, но не будет таким элегантным, как Linq.
  • Это С++. Objective-C является надмножеством С++ и поддерживается недавними каплями gcc, поэтому вы можете вернуться в С++ в любое время. STL, функторы, метапрограммирование шаблонов, все они работают. Вы можете смешивать и сопоставлять в одном приложении чистые Cocoa и Core Objective-C с С++. Вы не сможете сделать что-то вроде наследования класса Objective-C как класса С++, но вы сможете общаться между классом С++ и объектом Objective-C. Не уверен, каков текущий статус boost или Loki поддержка.

Многие из областей, которые плохо относятся к Cocoa, имеют разные сторонние библиотеки, но я не могу вступать в сравнение со всеми сторонними сторонниками сторонних сторон.

у меня есть жизнь...

В целом, я бы подвел итог в ближайшее время: В Objective-C строка ввода выше. Принесите мозг.

Ответ 2

В дополнение к замечательному ответу Remus вам также нужно будет понять и уметь реализовать управление памятью. Если вы выросли на Java или .NET, это может быть чуждо вам. Обратите особое внимание на эту часть уроков, и практикуйте это, намеренно закручивая ее. Вам нужно знать, как выглядят эти ошибки и как они себя ведут.

Удачи!

Ответ 3

Это приличный прыжок в размерах, но вы можете научиться достаточно быстро, чтобы ускориться за несколько дней.

Как только вы получите синтаксис и условные обозначения Objective C, вам нужно будет вникать в библиотеки и фреймворки Cocoa, которые довольно существенны.

Я бы порекомендовал вам получить книгу по разработке Objective C или iPhone или пройти все учебные материалы на http://developer.apple.com сайте.

Как только вы перейдете, ознакомьтесь с этим сайтом для хороших примеров кода для приложений: http://appsamuck.com

Ответ 4

Я думаю, если вы знаете ООП, у вас все будет хорошо. Синтекс не является обычным, как большинство языков программирования, например,

object.function(var arg1)

выглядит как

[функция объекта [var: arg1]]

если я правильно помню.

Если у вас есть идентификатор Apple Dev и iTunes, вы можете перейти в http://developer.apple.com/iphone/index.action, а затем перейти к видеороликам Getting Started (после чего он должен спросить ваш Apple Dev ID в какой-то момент, а затем запустить iTunes). Там у вас есть куча видео. Тот, который называется "Введение в Objective-C и Cocoa Touch", может быть хорошим началом для просмотра.

Надеюсь, что это поможет.

Ответ 5

Язык не сложно, но я обнаружил, что среда разработки не такая гладкая, как VS, несколькими способами. Например, построитель интерфейсов является отличным приложением к среде кодирования, что приводит к случайным проблемам синхронизации, и компилятор не скажет вам, неправильно ли вы набрали имя события.

Сказав, что построитель интерфейса является великолепным. Вам просто нужно помнить, чтобы нажать кнопку "Сохранить", прежде чем переходить обратно в код.