5 книг для начинающих разработчиков Objective-C
Программисты, которые только планируют изучать Objective-C, часто задают вопрос: «Обязательно ли перед этим учить С»? Мы подобрали хорошие книги для новичков, авторы которых по-разному отвечают на этот вопрос. Читайте экспертов и выбирайте, какой способ обучения больше подходит вам.
Программирование на Objective-C 2.0
Автор книги Стивен Кочан занимается программированием на С с момента выхода первого Mac в 1984 году. Он также автор нескольких бестселлеров по языку С, а его книга «Программирование на C для Mac» была включена в официальную подборку Apple Press Library.
Книгу по Objective-С Кочан написал в 2004 году, с тех пор она переиздавалась шесть раз.
Весь материал разбит на три большие части:
- Язык Objective-C (все об основах языка).
- Фреймворк Foundation (описывается работа с обширным набором готовых классов, которые образуют фреймворк Foundation).
- Cocoa, Cocoa Touch и iOS SDK (обзор фреймворков Cocoa и Cocoa Touch, пошаговый разбор того, как разрабатывается простое приложение на iOS с использованием iOS SDK).
Первая глава начинается с написания простой программы на Objective-С и примера кода. Автор вводит новые понятия постепенно – весь материал выстроен так, чтобы к концу книги у читателя было достаточно понимания, чтобы написать первое iOS-приложение. Перед тем, как изучать это издание, разработчик советует немного разобраться с основами программирования – изучить теорию структуры данных и работы с памятью.
В предисловии Кочан пишет, что долго думал, в какой форме преподнести весь материал, которым он владеет. В результате автор решил рассказывать о языке Objective-C отдельно от С:
«Изучение всего языка C перед изучением Objective-C неприемлемо. Процедурный язык C содержит много средств, которые не являются необходимыми для программирования на Objective-C, особенно на уровне новичков. На самом деле обращение к некоторым из этих средств противоречит методологии надежного объектно-ориентированного программирования. Также нет смысла в изучении деталей процедурного языка перед изучением объектно-ориентированного. Это дезориентирует программиста и мешает осваивать объектно-ориентированный подход к программированию. То, что Objective-C является расширением языка С, вовсе не означает, что нужно сначала выучить С. Поэтому я решил, что не буду начинать с обучения языку С и не буду предполагать, что читатель знает С. Вместо этого я принял необычный подход: обучение языку Objective-C и базовому языку С как объединенному языку с точки зрения объектно-ориентированного программирования».
Кочан считает, что программировать на этом языке можно научиться и с нулевым опытом в разработке, если приложить достаточное количество усилий и упорства. Это доказывает практический опыт его учеников и читателей книги, которые регулярно присылают автору положительные отзывы.
У Стивена Кочана также есть видеокурс по Objeсtive-C. Многие разработчики очень положительно отзываются об этих видеоуроках, единственный минус — они доступны только на английском.
Objective-C. Программирование для iOS и MacOS
В предисловии автор Аарон Хиллегасс объясняет, что его подход в обучении будет отличаться от подхода его коллег. Хиллегасс не хочет подробно останавливаться на синтаксисе Objective-C, но планирует большую часть материалов посвятить объяснениям, «как работает программирование и что о нем думают опытные программисты».
Это книга не будет легкой для чтения, предупреждает автор:
«Каждый грамотный программист Objective-C должен достаточно глубоко понимать С. Кроме того, многие идеи, которые в Objective-C выглядят довольно сложными, уходят корнями в простые концепции С. Часто я буду представлять некоторую идею на С, а затем направлять вас к современному аналогу той же идеи на Objective-C».
Автор говорит, что эту книгу бесполезно просто читать. Лучшим способом изучать программирование он считает написание кода, совершение опечаток, их исправление и постепенное привыкание к основным закономерностям языка.
Аарон Хиллегасс – известный разработчик и основатель проекта The Big Nerd Ranch. В 90-х он работал в компании NeXT (основана Стивом Джобсом после ухода из Apple), в 2000 году Apple нанял Хиллегасса, чтобы обучать своих программистов разработке в Cocoa. Позднее Хиллегасс запустил проект The Big Nerd Ranch – компания, которая разрабатывает программное обеспечение для Apple.
У Big Nerd Ranch есть популярные курсы и серия книг по программированию. Все книги Аарона Хиллегасса вышли именно в этой серии и стали классикой среди мобильных разработчиков. У автора есть и другие известные книги по программированию на Objective-C: iOS Programming и Cocoa Programming for Mac OS X (не переведены на русский язык).
Программирование для iOS 7
Автор Мэтт Нойбург настоятельно рекомендует читать эту книгу с iOS Programming Fundamentals и называет эту книгу продолжением. Читать ее нужно с базовыми представлениями о языках C, Objective-C и среде Xcode.
Книга состоит из трех частей, посвященным программированию на iOS:
- Описание языка C (автор считает, что изучать этот язык необходимо и он при написании приложений под iOS используется гораздо чаще, чем многие думают). Введение в программирование на Objective-C. Объектно-ориентированные концепции. Механизмы работы кластеров и экземпляров.
- Среда Xcode (именно в ней разрабатываются приложения под iOS). Все стадии разработки приложения вплоть до их размещения в App Store. Важная глава – о работе программы Interface Builder.
- Язык Objective-С с точки зрения среды Cocoa Touch.
Как отмечает Мэтт Нойбург, книга не рассказывает о том, как с нуля спроектировать и создать успешное приложение. Но он приводит много примеров со ссылками на GitHub, где представлен код из его реальных проектов.
Мэтт Нойбург, в отличие от предыдущего автора, настаивает на изучении Objective-C с основ и в том числе, с изучения языка С. Еще в начале книги он с сожалением говорит о большом количестве программистов, которые пишут приложения для iOS без правильной базовой подготовки:
«Всеохватывающее стремление программировать для операционной системы iOS способствовало возникновению неприятной тенденции – начинать программировать, не умея это делать. Система iOS обеспечивает программиста силами, которые могут показаться совершенно безграничными, но которыми нельзя воспользоваться без серьезной подготовки. К сожалению, я часто сталкиваюсь с программистами, глубоко погруженными в создание интересных приложений, вопросы которых совершенно ясно показывают, что они не знакомы с азами поведения в том мире, в который они так счастливо и беззаботно погрузились».
В первой главе Мэтт Нойбург более детально объясняет, почему для программирования на iOS необходимо в первую очередь изучить язык С:
- Objective-C является надмножеством языка программирования С. Это означает, что Objective-C включает в себя С; все, что верно для С, верно и для Objective-C.
- Часть интерфейса API-системы iOS основана на С, а не на Objective-C.
Для изучения языка С автор советует книгу Брайана Кернигана и Дениса Ритчи (создателя этого языка) The C Programming Language.
iOS. Приемы программирования
Как рассказывает автор Вандад Нахавандипур в предисловии, Objective-C занимает особое место среди языков, на которых он программировал с детства. Его привлекла чистота языка – «каждая команда делает всего одну вещь, и делает ее хорошо».
Автор рассчитывает, что у читателя есть начальный опыт создания приложений под iOS. Поэтому книга больше пригодится как дополнение к более базовым учебникам: в ней описаны удобные способы решения конкретных задач, с которыми сталкиваются и новички, и опытные программисты.
В книге уделено большое внимание обновлениям, которые появились для iOS 7. Автор подробно рассматривает фреймворки и классы, доступные для SDK iOS 7:
- Фреймворк UIKit и его дополнение UIKit Dynamics.
- Технология Grand Central Dispatch, с помощью которой Apple в основном обеспечивает параллелизм в iOS.
- Комплект для программирования карт Map Kit и фреймворк Core Location.
- Синтаксические анализаторы для JSON и XML.
- Библиотека фотографий и фреймворк ресурсов Assets Framework.
- Новейшие возможности Xcode.
- Фреймворк Core Data.
- Фреймворк Core Graphics.
- Фреймворк Pass Kit.
Автор данного издания не настаивает на изучении языка С для разработки приложений под iOS (по крайне мере, ничего не пишет об этом в данной книге):
«Чтобы программировать приложения для iOS 7, вы должны знать основы языка Objective-C, с которым мы будем работать на протяжении всей этой книги. Как понятно из названия, язык Objective-C основан на С, но имеет определенные расширения, которые облегчают оперирование объектами. Объекты и классы имеют фундаментальное значение в объектно-ориентированном программировании (ООП). К числу объектно-ориентированных языков относятся Objective-C, Java, C++ и многие другие».
Objective-C Recipes
Эту книгу опытные разработчики советуют скорее как приложение к предыдущим, но, к сожалению, на русский язык она не переведена.
Автор книги Мэтью Кэмпбелл – ведущий разработчик приложения Tasting Notes (приложение для дегустации вин) и основатель компании Mobile App Mastery. Компания занимается обучением мобильных разработчиков. Он обучил разработке на iOS более 800 программистов, написал несколько книг и работает над новой – Objective-C Syntax Quick Reference.
Это книга рецептов, которые автор составил для себя в процессе работы над мобильными приложениями для iOS. Читатели особенно отмечают первую часть книги, приемы из которой можно сразу применять в работе, даже если вы не до конца разобрались с теорией Objective-C.
Примеры кода понятные – даже новичку удастся с легкостью их повторить. Эта книга не подойдет для изучения Objective-C с нуля, но станет хорошим продолжением прочтения предыдущих материалов, о которых мы говорили, поможет более глубоко погрузиться в разработку.
Кэмпбелл не пишет о том, что для изучения Objective-C нужно заранее изучить язык C. Он не акцентирует внимание на том, как лучше изучать этот язык, а делится результатами своей практической деятельности и, как мы видим из предисловия, большой любовью к этому языку:
«Изучение программирования сегодня – это изучение того, какую форму можно придать миру вокруг нас. У разработчиков Objective-C есть уникальная возможность создавать приложения, которые будут использовать люди по всему миру.
Пользоваться этим языком – одно удовольствие. В то время как другие языки часто кажутся неуклюжими, Objective-C грациозно демонстрирует свою мощь и разнообразие. Проблемы, которые кажутся нерешаемыми в других языках, с Objective-C тают на глазах. Это книга – об изучении Objective-C в его естественной среде. У Objective-С есть своя история о том, как решать проблемы элегантно. И он может рассказать ее в коде».
Освоить востребованную профессию в Аналитике больших данных можно всего за полтора года на курсах GeekBrains.