Какой лучший способ изучения программирования iPhone при выходе из Java?
Я начал читать все доступные яблочные документы по этой теме. Быстрый обзор дал мне около 8000 (восемь тысяч) страниц формата PDF A4. Около 10% контента почти равно моему чувству. Прочитав в течение 2 недель, я понял, что буду забывать, что я читал неделю назад. Если я не начну что-то делать со знанием, это как утечка в мозге.
Каковы ваши стратегии обучения?
Ответы
Ответ 1
В Стэнфордском университете есть бесплатный курс (здесь), который можно загрузить с iTunes U. Он содержит как видео, так и файлы PDF, и после каждого лекции есть задания, которые вы можете использовать в качестве идей для разработки.
Из мира Java я думаю, что наиболее трудным для изучения является то, что:
- Управление памятью с подсчетом ссылок вместо GC
- Узнайте, как использовать диспетчеризацию сообщений, чтобы максимально использовать Objective-C
Форумы и документация, предоставляемая Apple, также очень хороши и должны быть ссылкой на все, что вы делаете.
Ответ 2
Вот что я сделал (я исхожу из фона Java/С++):
Запуск
- Зарегистрируйтесь, чтобы быть разработчиком iPhone на http://developer.apple.com (это бесплатно)
- Загрузите iPhone SDK (это содержит, помимо прочего, новейшую версию документации XCode и SDK - оба из которых вы будете использовать очень часто при игре с SDK или при создании приложений).
- Получить Hillegass book. В этой книге очень хорошо описаны основные понятия Cocoa. Я нашел это хорошим способом понять подсчет ссылок в Cocoa (сохранить, освободить, назначить и т.д.).
- Купите оранжевую книгу по программированию на iPhone. Это действительно хорошо. (Я купил книгу Эрики Садун раньше, но это не объясняет вещи с новичка).
- Попробуйте программы.
Это должно привести вас к разумной скорости и разработке базовых приложений.
(Я еще не видел лекции в Стэнфорде, но я думаю, что очень хороший способ начать тоже)
Улучшение работы
- Чтобы получить хорошее представление о концепциях Cocoa, я нашел лучший ресурс для руководства Apple по программированию. Вы должны обязательно прочитать их. У них есть один по почти каждой теме: от свойств NSStrings до Objective 2.0, модели памяти и т.д. Вы найдете их в документации XCode. (Если вы ищете ссылку на класс и т.д., Вы найдете соответствующие руководства по программированию, перечисленные на левой боковой панели).
- Пример кода Apple: вы снова найдете это в http://developer.apple.com. Вы можете повторно использовать и/или адаптировать их.
Теперь вы должны разрабатывать и разрабатывать приложения. Если вы застряли или нуждаетесь в совете, вот некоторые дополнительные ресурсы:
Что делать, если вы застряли
- Список рассылки Cocoa -Dev (это не Cocoa -touch как таковой, но у меня есть очень хорошие ответы отсюда)
- Форумы для обсуждения Apple.
- IRC
(Я не уверен, что приведенный выше список ресурсов достаточно хорош, но другие могут поправить меня)
Ответ 3
напишите код, когда вы читаете/опираетесь на него (например, привет мир, что-то вроде этого). Это единственный способ сохранить вещи.
Ответ 4
Не думай об этом..... сделай это.
Ответ 5
Основы
Узнать Objective-C
Узнать UIKit (ака iPhone)
В отличие от большинства книг, руководство ранчо объясняет иерархию классов, когда вы идете. В противном случае вы получите прекрасные приложения после нескольких шагов, но не сможете летать соло.
Мне нравится читать тему из нескольких книг сразу. У меня почти каждая книга по программированию на iPhone, и я также могу рекомендовать
Сделайте домашнее задание
Я предлагаю вам делать заметки и делать упражнения. Сосредоточьтесь на небольших задачах. Например, создайте проект "Навигационный шаблон приложения" и попытайтесь его понять. Затем добавьте такие функции, как: создать ячейку, удалить ячейку, отсортировать ее, щелкнуть по ячейке, чтобы нажать второй экран. Такие вещи. Вы помните на 50% лучше, когда пишете резюме.
Из-за ограничений GCC, Xcode не такой сложный, как Eclipse. Первое, что вам нужно сделать, - активировать NSZombieEnabled в вашем проекте, чтобы получить более эффективные сообщения об ошибках.
Вы найдете небольшие препятствия и совершите глупые ошибки. Это очень помогает кому-то поблизости помочь вам. Если вы этого не сделаете, существует StackOverflow.
Продвинутый материал
Основные данные - это сопоставление Apple O/R для iPhone. Вы будете использовать его для любых материалов, связанных с базой данных.
Основная графика/анимация лежит ниже UIKit. Чтобы выйти за рамки того, что научит вас большинство книг по программированию на iPhone, вам нужно будет сделать свой собственный чертеж для достижения расширенной настройки пользовательского интерфейса.
Сеансы WWDC - это всегда потрясающие вещи от сотрудников Apple, которые написали структуру UIKit. WWDC 2010 бесплатно для зарегистрированных разработчиков:
Некоторые веб-страницы загружаются полезными советами и трюками:
Следуйте за другими кодерами на Twitters. Перейдите на собрания NSCoder в вашем городе, все приветствуются, даже если вы не программист.
Ответ 6
После того, как вы зарегистрировались с Apple, чтобы использовать iPhone SDK (бесплатно скачать и поиграть, вам нужно заплатить, если вы хотите продать свои приложения в App Store), вы получаете доступ к некоторым действительно замечательным ресурсы разработчиков - форум, документация, образец кода и т.д. Я бы очень рекомендовал использовать эти ресурсы в качестве хорошей отправной точки.
Загрузите несколько базовых примеров приложений от Apple, чтобы понять, как все сочетается. Разработка на iPhone определенно сильно отличается от других видов разработки, поэтому здорово иметь примеры для работы и использования для справки.
Ответ 7
До тех пор, пока я не почувствую окружающую среду, в которой я нахожусь, я, как правило, просматриваю примерный код и/или учебные пособия... но я никогда не буду следовать им точно. Всегда меняйте какое-то значение, детализируйте некоторый метод реализации и наблюдайте за его результатами.
Только следуя инструкциям, я никогда ничего не узнаю. Меняя вещи и видя эффекты, которые она имеет, я узнаю тонну.
Ответ 8
Этот документ является языковым камнем розетки от С++/Java до Objective-C (много вещей для Java-людей там):
http://ktd.club.fr/programmation/fichiers/cpp-objc-en.pdf
Кроме того, обратите внимание, что iPhone очень тяжелый по возможностям через широкие и глубокие классы фундамента, как и Java. Постарайтесь выучить их так же хорошо, как и вы, и имейте в виду, что есть еще более глубокие уровни под Cocoa с вызовами на основе CF C, когда вам требуется больше гибкости.
Хорошо понимайте модель управления памятью, с которой легко справиться. Здесь самое лучшее и простое описание, которое я прочитал о том, как обрабатывать управление памятью при использовании выходов Interface Builder:
http://blog.airsource.co.uk/index.php/2008/12/23/memory-management-and-nibs/
Ответ 9
Я бы добавил что-то к этим очень хорошим ответам - выберите проект и начните работать над ним почти сразу. Я узнаю гораздо глубже, когда мне нужно найти ответ для моей реализации, чем я, когда я читаю без скрытого мотива, кроме "обучения".
Вы можете опубликовать еще один вопрос с запросом идей для своего первого проекта.
Ответ 10
Когда я изучаю любой новый язык, я беру предоставленный образец кода и переписываю его с нуля. Таким образом, если я застрял на том, как сделать что-то, я могу перевернуть на предоставленный образец в качестве ссылки. Я нахожу, что просто переписывание пример кода помогает мне, особенно когда есть большие различия в синтаксисе.
Что касается iPhone, я хотел бы обратить пристальное внимание на управление памятью. На сайте iPhone Dev есть отличный код и документация.