Как большой из перехода будет он для движения от C# до [закрытого] Objective C

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

39
задан Keith Adler 14 April 2010 в 21:31
поделиться

5 ответов

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

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

  • Способ создания пользовательского интерфейса в Cocoa на световые годы опережает все, что есть сегодня в .Net framework, Forms или WPF. Поначалу это будет трудно понять, но если вы попробуете это, это будет иметь БОЛЬШОЙ смысл. Это хороший старый Model-View-Controller , основанный на среде Smalltalk, и он, естественно, направит вас на верный путь разработки пользовательского интерфейса.
  • Графика, видео, медиа будут ощущаться как с другой планеты, если исходить из фона .Net. Но, несмотря на их кажущуюся загадочную внешность, предложения Какао очень мощные, хотя и на низком уровне.
  • Анимация принесет огромное облегчение. Какао-анимация просто проста в использовании, и в .Net нет ничего эквивалентного в .Net
  • Если вы это сделаете openGL вместо собственной графики Cocoa, тогда это openGL, и openGL практически одинаков на любой платформе.
  • Сетевое программирование хуже на стороне Какао. У вас есть базовая поддержка, и вы должны признать, что, по крайней мере, API спроектирован так, что действительно сложно делать глупые вещи (это заставляет вас использовать асинхронное программирование, так что больше нет бессмысленности с одним потоком на клиента), но я ' Готов поспорить, вы пропустите сахарные утилиты .Net (WebRequest, WebClient и т. д.)
  • Разбор XML. Поддержка какао просто примитивна.По крайней мере, опять же, синтаксический анализ XML управляется событиями, поэтому он направит вас к более совершенным программам, но его сложно собрать вместе.
  • База данных. Будет другой мир. У вас есть выбор: использовать исходный SQLite или Core Data. Core Data лучше imho. Это высокоуровневый ORM и материал для активных записей, в котором абстрагируются все тонкости базового хранилища. Простой в использовании и мощный, если вы просите его сделать что-то, что он умеет делать. Невероятно сложно заставить его делать то, что он не умеет делать. Верно для любого ORM, в конечном счете. Вы пропустите LINQ, и вам придется забыть о SQL. Суть в том, что опыт программирования БД из .Net просто не переносится в мир Core Data. Альтернатива необработанному SQLite будет выглядеть более знакомой, но очень низкоуровневой, будет больше похоже на программирование ODBC 1990 года, чем 2010 .Net.
  • Программирование кодирования ключевого значения . У этой концепции нет прямого эквивалента .Net. Это может звучать как какой-то простой словарь, но на самом деле он намного мощнее. Он переплетается с механизмом выполнения части Objective [Objective-C] и порождает некоторые изящные уловки. Чтобы эффективно использовать базовую анимацию или базовые данные, вам необходимо понимать кодирование «ключ-значение». Вы можете думать об этом как о размышлении о стероидах. Он может выполнять некоторые из тех же приемов, что и Linq-to-Objects, но нигде не будет столь же элегантным, как Linq.
  • Это C ++.Objective-C - это надмножество C ++, поддерживаемое недавними выпусками gcc, поэтому вы можете вернуться к C ++ в любое время. STL , функторы, метапрограммирование шаблонов , все они работают. Вы можете смешивать и сопоставлять в одном приложении чистый Cocoa и Core Objective-C с C ++.Вы не сможете сделать что-то вроде наследования класса Objective-C как класса C ++, но вы сможете обмениваться данными между классом C ++ и объектом Objective-C. Не уверен, каков текущий статус поддержки boost или Loki .

Во многих областях, плохо охваченных в Какао, есть различные сторонние библиотеки, но я не могу сравнивать все сторонние стороны какао и .Net 3r сторон, у меня есть жизнь ...

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

100
ответ дан 27 November 2019 в 02:03
поделиться

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

Удачи!

31
ответ дан 27 November 2019 в 02:03
поделиться

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

object.function (var arg1)

выглядит как

[object function [var: arg1]]

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

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

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

2
ответ дан 27 November 2019 в 02:03
поделиться

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

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

1
ответ дан 27 November 2019 в 02:03
поделиться

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

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

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

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

6
ответ дан 27 November 2019 в 02:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: