Coding — Macbook для программирования


Содержание

Почему разработчики не должны пользоваться MacBook Pro?

Около десяти лет назад в интернете появилась статья, утверждающая, что “у каждого разработчика должен быть MacBook Pro”, в которой перечислялся ряд причин, например:

  • Лучший дизайн устройств / ОС. MacBook Pro имеет настолько удобный тачпад, что может полностью заменить вашу мышку. Некоторые функции ОС также сосредоточены на удобстве, например Spotlight.
  • Unix-подобный терминал позволяет использовать практически все программное обеспечение из Unix/Linux.
  • Удивительная экосистема программного обеспечения. Приложения для OSX, как правило, разработаны гораздо лучше и удобнее, чем приложения на Windows, особенно приложения для дизайнеров. App Store также делает покупку программного обеспечения намного проще.

Да, эти причины актуальны даже сегодня. Я бы до сих пор радостно водил пальцем по тачпаду, использовал Spotlight для поиска моих приложений, строил диаграммы в OmniGraffle и устанавливал пакеты при помощи команды «brew install», если бы я до сих пор использовал MacBook Pro.

Однако я поменял свои предпочтения, и теперь использую ноутбук линейки Thinkpad вкупе с Ubuntu. В дальнейшем я объясню, почему считаю, что вышеприведенные причины верны и для разработчиков, которые используют Linux.

Если вы работаете со стеком Microsoft, и в этом случае не используете macOS вообще, или создаете приложения на iOS, поэтому вынуждены использовать macOS, эта статья не для вас.

Убийственная особенность: Touch Bar

К концу 2020 года Apple выпустила новое поколение MacBook Pro, оснащенного Touch Bar. Я соглашусь с тем, что Touch Bar был отличным дизайнерским решением, к тому же он облегчил жизнь многим пользователям, которым не нравились традиционные функциональные клавиши, но вместо того, чтобы называть его «убийственной особенностью», как это делали СМИ, я бы сказал, что Touch Bar убил MacBook Pro.

Я, как разработчик, постоянно работаю в приложении Vim. Уверен, многие из вас тоже его используют. Наиболее важной клавишей для пользователей Vim является клавиша «Esc». Мне необходимо нажимать «Esc» каждые несколько секунд, естественно, не глядя на то, где она находится, и самое главное, мне нужно почувствовать само нажатие клавиши. Однако, Touch Bar полностью удалила клавишу «Esc». Из-за этого Vim гораздо труднее использовать.

Touch Bar также избавился от функциональных клавиш, которые очень полезны для отладки. PyCharm, WebStorm, Android Studio или даже Chrome Developer Tools, все эти инструменты для отладки используют F5

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

Совсем другой Linux

В последние годы Linux сильно преобразился. Я использую Ubuntu около года, недавно обновился до версии 18.04 на второй день после релиза. Ubuntu удовлетворяет большинство из моих повседневных потребностей. Посмотрим, что я использую каждый день:

    >Все эти приложения имеют версии на Linux, работают они также хорошо, как и на Mac OSX. LibreOffice является исключением, поскольку MS Office не поддерживает Linux. Да, я считаю, что MS Office и iWork намного лучше, чем LibreOffice, но LibreOffice очень стабильна, и, поскольку я не работаю с документами каждый день, я считаю, что данной программы мне вполне достаточно.

Единственный минус, который я нашел в Linux, это отсутствие приложения для создания диаграмм. OmniGraffle намного лучше, чем Inkscape. К счастью, диаграммы я рисую редко, поэтому могу просто жить бок о бок с LibreOffice Draw или Google Drawings.

Ограничение программного обеспечения

Некоторые программы на Mac OSX работают не совсем хорошо. Одной из самых главных причин моего перехода на Ubuntu послужило ограничение VirtualBox на Mac OSX.

VirtualBox — это бесплатное кроссплатформенное программное обеспечение для запуска виртуальных машин внутри вашей операционной системы. На рабочем столе используется программа «Vargant» (Бродяга), которая по сути является оберткой для VirtualBox. Когда я использовал MacBook Pro, я написал код и запустил его на Ubuntu, работающей в VirtualBox. Поскольку я использую webpack для написания кода на JavaScript в VirtualBox, моя проблема заключалась в синхронизации измененных файлов в VirtualBox. Я перепробовал разные функции и прочел множество советов, однако ничто из этого толком мне не помогло:

  • Сначала я настроил Samba для дистанционного редактирования кода в VirtualBox. Технически это работает, но поскольку мне нужно следить за изменениями файлов в VirtualBox, чтобы перестроить проект, изменения, сохраненные через Samba, не будут немедленно инициировать перестройку. Обычно мне приходилось ждать около 20 секунд после сохранения изменений до восстановления проекта.
  • Я использовал NFS для экспорта кода на MacBook Pro и устанавливал его как отдельный диск в моем VirtualBox с Ubuntu. Технически, это тоже работает, однако для восстановления изменений в проекте потребуется еще больше времени, чем с Samba.
  • Также я настроил общую папку в VirtualBox для сопоставления кода на моем Ubuntu и MacBook Pro. Однако данный вариант мне также не подошел из-за низкой скорости доступа к коду.
  • Затем я разместил два отдельных репозитория, как на моем Ubuntu в VirtualBox, так и на MacBook Pro и локально запустил webpack на моем Macbook Pro. И кажется вот оно — идеальное решение. Изменения кода фиксируются немедленно и завершается за считанные секунды. Однако затем, у меня возникла другая проблема: я не мог зафиксировать код сервера и внешний код в одном коммите. Я должен был выполнять их отдельно и затем синхронизировать репозитории, что делает этот способ для меня неудобным и от которого мне в итоге пришлось отказаться.\

Однако на самом деле, глупо обвинять в этом OSX, так как по сути это проблема VirtualBox, но в любом случае, причиной всех этих проблем послужило то, что наша среда разработки не могла работать непосредственно на OSX. В конце концов я просто удалил OSX и установил Ubuntu на мой MacBook Pro и всё — все мои проблемы просто исчезли.

В этой статье я пытался объяснить, почему, по моему мнению, MacBook Pro больше не является лучшим выбором для разработчиков. Безусловно, он по-прежнему является отличным ноутбуком, например для дизайнеров UI / UX, менеджерам различного уровня и всем тем людям, которым приходится много работать над различными документами и дизайном, однако теперь, для разработчиков есть решение получше! Просто возьмите любой ноутбук и установите на нем Linux!

Спасибо за прочтение! И если вы полностью согласны со мной, то пожалуйста, поделитесь этой статьей с друзьями!

Топ 5 лучших редакторов кода для Windows, Linux и Mac в 2020 году

05.06.2020, 21:04 643 Просмотров 1 Comment

За последние пять лет в технологической отрасли многое изменилось. От крупных разработок в области искусственного интеллекта до надежных интеллектуальных устройств, появилось много новых языков программирования для разработки современных технологий. Согласно недавней статистике, индустрия развития отстает от разработчиков и программистов. По оценкам, к 2020 году технологическая индустрия будет отставать от почти 1 миллиона разработчиков. Мир призывает к эффективным программистам, которые могут писать бесшовный объем чистого и оптимизированного кода в заданные временные рамки. Для написания оптимизированного и безошибочного кода очень важно, чтобы программист выбирал среди лучших редакторов кода.

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

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

Только программист знает сценарий , когда одиночная «;» (точка с запятой), пропущенная в коде из тысяч строк, приводит к неудачному выполнению программы. Эффективными редакторами кода являются те, которые мгновенно уведомляют разработчика о таких и других ошибках, основанных на синтаксисе.

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

1) Notepad ++

Notepad ++ — это расширенный и богатый функциональными возможностями сиблок текстового редактора Notepad, который вы найдете в ОС Windows. Существует большая разница в интерфейсе между этими двумя редакторами, которую вы можете заметить сразу после запуска Notepad ++.

Приложение поддерживает различные языки программирования, но обычно известно, что оно является лучшим редактором HTML . Приложение поддерживает цветные строки при написании синтаксиса языка и далее указывает на ошибки в коде немедленно.

Плюсы:

1. Будучи построенным для платформы Windows, он также может работать на Linux, Unix, Mac OS X (используя Wine).
2. Это легкое приложение и запускается быстро.
3. Поддерживает внешние плагины, включая макросы.
4. Интерфейс поддерживает редактирование вкладок.
5. Добавляйте закладки для будущих задач.
6. Перетаскивайте опцию для новичков.
7. Есть возможность поиска и замены текста.
8. Полноэкранный режим.
9. Подсветка синтаксиса.
10. Автоматическое отступы и автоматическое завершение строки.
11. Интегрированный компилятор.
12. Поддержка FTP.
13. Проверка орфографии с сопоставлением файлов.

Минусы:

1. Удаленное редактирование файлов не поддерживает HTTP, SSH или WebDav.
2. Не поддерживает большие файлы.
3. Для запуска приложения в Mac OS X требуется сторонняя программа (Wine).
Цена: Бесплатно.

Вердикт:

Это один из лучших бесплатных текстовых редакторов для кодирования в HTML, CSS, JavaScript и PHP. Многие бесплатные редакторы кода не предоставляют возможность выделения кода в случае какой-либо ошибки в коде, но Notepad ++ поддерживает эту функцию и помогает в написании безошибочного кода.

2) Sublime Text

Sublime text — это еще один легкий текстовый редактор. Он компактный, но мощный. Он предоставляет мощные IDE-подобные функции наряду с Python Scripting с возможностью настройки редактора. Существует много редакторов кода, которые поддерживают черный фон для расширенного просмотра и Sublime Text — один из них.

Плюсы:

1. Многострочный выбор и редактирование.
2. Предлагает кросс-платформенную поддержку.
3. Мгновенное переключение файлов.
4. Удобный для начинающих интерфейс.
5. Черный экран поддерживает режим редактирования без отвлечения.
6. Полностью настраиваемый.
7. Поддержка тем оформления TextMate и Windows
8. Интеграция Haxe и OpenFL через поддержку плагина.
9. Обнаружение и выделение синтаксических ошибкок.

Минусы:

1. Плохая поддержка для Linux.
2. Открытие больших файлов занимает время.
3. Часто сбоит.
4. Часто используемый менеджер пакетов отсутствует в программном обеспечении.
5. Редактор кода не поддерживает параметр печати.
6. Отсутствует панель инструментов.

Цена: Бесплатно для пробных / $ 70 для непрерывного использования.

Вердикт:

Если вы начинаете с основ программирования, Sublime Text — лучший редактор HTML и PHP. Практически все редакторы кода поддерживают эти основные языки программирования, но в добавок они имеют расширенный интерфейс и хорошо подходят для программирования на стороне сервера.

3) Atom


Atom является изобретением величайших умов GitHub и очень похож на Sublime Text. Интерфейс выглядит так же, как клон редактора Sublime Text. Многие программисты чувствуют себя на много более комфортно когда работают в редакторе Atom, поскольку у него более простой и понятный интерфейс по сравнению с Sublime Text.

Плюсы:

1. Простота навигации по интерфейсу.
2. Поддержка палитры команд.
3. Специальные инструменты для разработчиков.
4. Поддержка диспетчера пакетов для поддержки плагинов.
5. Настройка пользовательского интерфейса проще по сравнению с другими редакторами кода.
6. Сообщество GitHub довольно активно решает любые проблемы, если разработчик где-то сталкивается со сложностями во время программирования.
7. Поиск файлов Fuzzy.

Минусы:

1. Медленный по сравнению с другими текстовыми редакторами.
2. CoffeeScript, необходимо было написать пакеты.
3. Нет пакета Corona.
4. Сложность обработки больших файлов.

Вердикт:

Это продукт для разработчиков, созданных разработчиками. Сообщество очень полезно и помогает в решении проблем, с которыми сталкивается любой разработчик. Будучи платформой с открытым исходным кодом, это лучший текстовый редактор для базового и расширенного программирования. Atom — это те немногие редакторы кода, которые регулярно обновляются и получают новые функции, в купе с исправлениями ошибок.

4) Coda

Итак, тут представлен текстовый редактор с поддержкой Mac для программистов, которым нравится скорость и оптимизация в одном редакторе кода. Coda поддерживает OS X 10.7.5 и более поздние версии Mac и является одним из немногих редакторов кода, которые были тщательно разработаны только для систем Mac.

Приложение значительно изменилось с момента его первоначального выпуска в 2007 году. Из простого текстового редактора с предварительным просмотром, он постепенно начал развиваться и получил все нужные функции необходимые для работы с кодом, включая синтаксис, просмотр и загрузку веб-страниц, а Transmit Turbo Engine поддерживает быструю загрузку с удаленного места.

Плюсы:

1. Основные функции интегрированы компактно.
2. Leopard GUI.
3. Автоматическое завершение кода.
4. Редактирование блоков и раскраска синтаксиса.
5. Перетаскивание опции.
6. Поддержка окон терминала для запросов MySQL.

Минусы:

1. Лучше всего подходит для программирования в HTML и CSS.
2. Поддерживает только системы на базе Mac.
3. Поддержка сетевых дисков приводит к частым сбоям.
4. Дорогое приложение по сравнению с другими редакторами кода.

Цена: 7 дней бесплатно / $ 99 для полной версии.

Вердикт:

Coda — лучшая альтернатива дорогим наборам веб-дизайна. Он объединяет все необходимые инструменты, необходимые для разработки веб-сайта с нуля. Coda — лучший текстовый редактор для Mac с учетом цены и возможностей. Приложение также поддерживает уведомления для любых обновлений.

5) Visual Studio

Visual Studio Code — это платформа для разработчиков от Microsoft. Инструмент, однако, является платформой с открытым исходным кодом и может использоваться на любых основных платформах, таких как Windows, Mac OS X и Linux. Самая большая особенность этого редактора кода заключается в том, что он обеспечивает обогащение программирования для разработчиков, не позволяя им загружать массивный файл выпусков Visual Studio размером около 3 ГБ. Это экономит как время, так и пропускную способность. Таким образом, приложение очень легкое и не потребляет большую часть ОЗУ и способствует быстрому доступу и реализации.

Плюсы:

1. Поддерживает более 30 языков программирования, включая основной язык Microsoft ASP.NET, C # и т. Д.
2. Приложение устанавливается за очень короткое время из-за его компактных размеров.
3. Visual Studio Code также имеет переносную версию для загрузки на поддерживаемых устройствах.
4. Позволяет управлять GitHub и предлагает функции отладки.

Цукерберг рекомендует:  Текст с движущимся фоном с помощью jQuery

Минусы:

1. Программное обеспечение занимает огромное время в обновлении в системах Linux.
2. Постоянно просит обновиться.

ТИПИЧНЫЙ ВЕРСТАЛЬЩИК

Всем привет, сегодня мы выясним, стоит ли приобретать macbook air 13 2020 года выпуска в качестве рабочего инструмента. Рассмотрим его использование в таких сферы, как

  • программирование
  • дизайн
  • монтаж видео

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

Чтобы дать конкретный ответ, я наглядно покажу скорость запуска и работу следующих программ:

  • Sublime Text 3
  • Koala
  • Xcode
  • Photoshop CC
  • Illustrator CC
  • Sketch
  • Final Cut Pro

Соответственно в области программирования мы рассмотрим редактор кода Sublime Text 3, программу компилирования css-препроцессоров Koala и Xcode для разработки мобильных приложений.
Для дизайна — Photoshop, Illustrator и Sketch, а для видеомонтажа популярную программу на Mac OS — Final Cut Pro.

Перед тем как мы начнем разбор, расскажу о характеристиках моего ноутбука. Это Macbook Air 2020 года выпуска и у него:

  • Процессор core i5
  • Частота процессора 1.8
  • Оперативная память 8Гб
  • SSD диск на 256Гб
  • Диагональ 13.3 дюйма
  • Разрешение 1440х900

SSD на 256 гб выбрала осознанно. Я понимала, что 128Гб будет мало, с учетом того, какие программы я планировала использовать. Например, была высока вероятность того, что для монтажа видео-ролика мне понадобится делать склейки из 4K видео, которые я буду сбрасывать со своего iPhone. Это видео не стало исключением. Однако, если вы планируете заниматься только веб-разработкой или дизайном, то 128гб вам точно хватит. Все материалы по работе вы можете хранить на своем ноутбуке, а остальной контент, например, фотографии на внешнем жестком диске.

Возможно, кто-то спросить, почему я не выбрала ретину экран, которая есть в про версиях, то у меня есть на это простое объяснение. У меня есть внешняя периферия на случай вывода картинки на экран большего формата. Монитор на 23 дюйма с разрешением 1920×1080 справляется со своей задачей прекрасно. Для моей работы этого более чем достаточно.

Более того, у macbook air характеристики экрана выигрывают даже у моего старенького ноутбука, у которого экран 15 дюймов и разрешение 1366х768.

Для сравнения прикладываю фото, на котором видно, что на сайте википедии мы видим информации больше именно на 13-дюймовом ноутбуке из-за более высокого разрешения.

Хотелось бы также добавить пару слов о тачпаде. Безусловно его отклик в разы лучше, чем у других производителей ноутбуков, однако я не отношу себя группе людей, которые утверждают, что мышь не нужна совсем.
Если дело доходит до серьёзной работы, где крайне важно сконцентрироваться на все 200%, то без мыши не обойтись. Однако если я отдыхаю, просматриваю страницы в соц сетях или выполняю несложную работу, то да, я могу обойтись одним лишь тачпадом.

Идем дальше. Почему выбор пал на ноутбук фирмы Apple? Причин несколько.
Во-первых, мне не хотелось ставить дополнительной системой хакинтош в ноутбук с виндовс, а начать изучать работу программах XCode и Sketch было необходимо, т.к. по мимо разработки сайтов, я занимаюсь прорисовкой мобильных интерфейсов, а иллюстратор в этом плане в разы проигрывает Sketch-у.
Во-вторых, я искала портативный и в то же время мощный ноутбук, т.к. часто выезжаю из города, а работа должна выполняется удаленно. Постоянно возить с собой 4-х килограмовый ноутбук порядком надоело.
В-третьих, мой ноутбук на виндовс действительно пора уже было менять на новый из-за его бесконечных тормозов. Но это уже совсем другая история.

Так и созрела идея покупки макбука. Единственное, у меня вызывало сомнение значение частоты процессора. Напомню, частота процессора в Macbook Air составляет 1.8, в то время как в моем старом ноутбуке это значение доходило до 2.7. Возможно, Вы тоже сомневаетесь в том, что macbook air способен справляться с серьезной работой. Именно поэтому цель этого видео показать насколько хорошо или плохо справляется этот ноутбук с задачами, которые актуальны мне в работе.

Автономность ноутбука

Автономность ноутбука — это первое о чем, хочется рассказать. Разряжается ноутбук примерно за 8-9 часов в режиме спокойной работы, без открытия тяжелых программ, на пониженной яркости. Если вы используете его для просмотров фильмов или усиленно работаете, запустив несколько тяжелых программ, то проработает он меньше — где-то в районе 5-6 часов.

Для теста я решила узнать насколько процентов он разрядится, если я буду вести урок. Кстати о курсах для верстальщиков Вы можете узнать больше пройдя по этой ссылке. Ссылку также продублирую в описании к видео. Итак, занятие длилось 1.5 часа и со 100% он разрядился до 30. Были активны следующие программы:
— скайп с видео-трансляцией и демонстрацией экрана
— Quick Time, которая записывала этот урок
— Photoshop
— Illustrator.

Последние две программы особенно ресурсоёмкие, поэтому результат на мой взгляд более, чем хороший.
Для сравнения, мой старенький ноутбук со 100 процентов до 0 разряжался при такой нагрузке спустя 30-40 минут. Провести урок без подзарядки не удавалось. Поэтому делайте выводы хороший это показатель или плохой.

Macbook Air для программирования

Этот раздел будет интересен веб-разработчикам, а также тем, кто занимается разработкой приложений. Скажу сразу, этого ноутбука Вам будет более чем достаточно. Особенно если вы занимаетесь версткой сайтов. Вам потребуется редактор кода, компилятор Koala, возможно, программы для Git-систем, а также работа с Photoshop, которую частично можно заменить программой Avocode.

Но если Вы разработчик мобильных приложений, то здесь не все так однозначно. В целом работа тоже будет комфортной, но здесь есть 1 нюанс. При запуске симулятора смартфона сам смартфон на родном экране будет обрезаться у всех моделей, экран которых больше чем 4.7 дюйма. Т.е. комфортно работать получится только с iPhone 5, 5s, se. Выглядеть это будет примерно так. Продемонстрирую запуск iPhone X в программе Xcode.
Если у Вас есть внешний монитор, то эта проблема отпадет сама собой. Вы должны оценить помешает ли этот факт комфортно работать с программой или нет. Если у Вас нет внешнего монитора, то правильным решением будет присматриваться к версиям Про, потому что разница в стоимости между air и pro, как раз составляет стоимость хорошего монитора. А разрешение экрана в про версии как раз позволит работать на ноутбуке без подключения лишних устройств.


Macbook Air для дизайна

Этот раздел будет интересен веб-дизайнерам и проектировщикам интерфейсов. Разберем работу в Photoshop, Illustrator и Sketch. Для начала продемонстрирую скорость запуска этих программ.
Как мы видим, фотошоп запускается быстрее всех, однако при одновременной работе в иллюстраторе и фотошоп я задержек не замечаю. Все работает значительно быстрее, чем на виндовс. Единственное, что программы начинают немного подвисать во время демонстрации экрана в скайпе во время проведения уроков, потому что в этот момент идет серьезная нагрузка на видеокарту, которая к слову сказать является интегрированной. Однако я не думаю, что большинство их Вас планируют работать в графических программах, запустив демонстрацию экрана, не так ли?

Также как и в программировании, здесь есть нюанс. Если вы профессионально занимаетесь графикой, особенно 3D графикой или работаете с фотографией, то для Вас лучший выбор — это про версия. Эйр скорее всего Вам не подойдет из-за слабых характеристик видеокарты и экрана. Для работы с веб-интерфейсами и дизайном сайтов — эйр станет неплохим помощником, особенно если вы только учитесь и хотите изучить основы этой специализации. Я могу с уверенностью сказать, как человек, который постоянно открывает по несколько макетов и работает с интерфейсами, что работа в этих программах проходит в комфортном режиме, без тормозов.

Macbook Air для видеомонтажа

Последний раздел будет особенно интересен тем, кто хочет использовать этот ноутбук для видеомонтажа. Мне сложно дать советы для профессионалов этого дела, однако если Вы хотите создавать небольшие ролики, обрезать видео, делать склейки, добавлять простые спецэффекты или работать с видео формата не ниже 4К, то Макбук Эйр Вас точно не подведет. Программа для монтажа Final Cut Pro будет работать стабильно и вряд ли Вас подведет. Например, это видео создано из склеек 4К видео и программа работала стабильно все это время. Я даже не выключала ее специально несколько дней, чтобы проверить, повлияет ли это как то на скорость работы в остальных программах. Мое заключение — работал ноутбук одинаково стабильно, как до монтажа, так и после того как программа была запущена. Мой ноутбук на виндос этого точно не мог себе позволить, не смотря на то, что на нем установлена видеокарта geforce и имелось 8 гигабайт оперативной памяти.

Какой можно сделать вывод?

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

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

Думаю, Вы сделаете правильный выбор и я немного помогла тем, находится сейчас перед нелегким выбором купить macbook AIR или PRO версию. Обязательно поддержи этот видеоролик лайком и подпишись на канал, если еще не сделал этого. Всем пока!

Видео-ответ на вопрос: «Cтоит ли приобретать Macbook Air 13 2020 года выпуска для программирования, дизайна и видеомонтажа»

Программирование для Mac

Все необходимые утилиты для программистов и разработчиков — от редакторов кода и сред разработки до программ веб-дизайна

Собирайте и анализируйте статистические данные

Интегрированная среда разработки для Mac OS X и iOS

Среда разработки для языка Паскаль

Создавайте сайты без написания кода

Открывайте и просматривайте базы данных Microsoft Access на Mac

Научитесь программировать увлекательным образом

Сервис дистрибуции бета-версий приложений

Создавайте приложения для Android на Mac

Получайте доступ ко всем видам баз данных с вашего Mac

Комплексная среда веб-разработки

Полное решение для создания веб-сайтов

Редактор кода с поддержкой нескольких языков

IDE для разработки веб-приложений

Максимально используйте этот замечательный менеджер баз данных

Отличная программа для просмотра документов CHM с множеством дополнительных функций

Доступ и управление базой данных легко

Мощный и простой в использовании текстовый редактор для совместной работы

Текстовый редактор с открытым исходным кодом, разработанный на GitHub

Лучшая библиографическая база данных

Создание веб-дизайна без каких-либо знаний в области разработки

Панель инструментов разработчика для Firefox

Легкий многофункциональный редактор

Блестящий клиент для Subv ersion

Извлекайте и редактируйте таблицы стилей любой веб-страницы

Отличный менеджер базы данных MySQL

Идеальный текстовый редактор для программистов

Простой бесплатный текстовый редактор с многочисленными функциями программирования

Создать свой блог очень легко

Выполняйте комплексные тесты юзабилити

Редактор интерфейсов и веб-страниц Adobe

Раскройте потенциал лучших Интернет-приложений на своем настольном ПК

Библиотеки PHP для сервера Apache

Самый популярный сервер баз данных на вашем Mac

Coding — Macbook для программирования

Xcode — инструментарий разработки нативных приложений под Mac OS X и Apple iOS, разработанный компанией Apple. Доступна для бесплатной загрузки в App Store, на сегодняшний день является единственным вариантом для написания программ под iOS, с последующим размещением продукта в App Store.

Xcode, начиная с версии 4.3 имеет новый пользовательский интерфейс: единое окно, куда встроен Interface Builder, сам Xcode, Instruments; Помощник, а также новая система анализа кода Debug Console с более сильным «движком», облегчающая исправление ошибок и осуществляющая поиск логических проблем в коде. Программа также получила дополнительный компилятор LLVM (используемый теперь по умолчанию).

Dashcode — инструментарий разработки OS X виджетов для Dashboard, а также мобильных веб-приложений для iPhone Safari и вэб-приложений Safari.


Распространяется бесплатно, для загрузки с сайта https://developer.apple.com/ необходимо зарегистрироваться в качестве разработчика Apple, что тоже абсолютно бесплатно.

Разработка виджетов и веб-приложений рассматривается в разделе Dashcode

MAMP (бесплатная версия) и MAMP-pro (платная) — Для Вэб программирования и отладки на локальном сервере. MAMP расшифровывается как «Macintosh, Apache, Mysql and PHP». Представляет из себя локальный сервер Apache, с установленными практически всеми расширениями, а также сервер MySQL и интерпритатор PHP. Тонкости настроек MAMP приведены в статье Web программирование, MAMP.

По умолчанию в Mac OS установлен Apache, но практически без каких-либо дополнительных библиотек, и утилит конфигурирования, поэтому использование MAMP будет гораздо удобнее. Программа распространяется через официальный сайт MAMP.

Dreamweaver — Наимощнейшая программа, которую, начиная с Dreamweaver CS3 (2007), выпускает Adobe. Предназначена для создания сайтов, поддерживает подсветку кода для ActionScript, ASP, C#, CSS, ColdFusion EDML XHTML, XML, XSLT, HTML, Java, JavaScript, PHP, Visual Basic, VBScript, WML, а также можно добавить собственную подсветку синтаксиса. Кроме того, для многих из этих языков доступно автодополнение кода. Поддержка различных протоколов и очень удобная синхронизация с удаленным сервером.

Распространяется на официальном сайте Adobe.

Try Objective-с

сайта «Try Objective-c — программирование для начинающих»!

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

В системе Mac уже имеется такая среда разработкиXcode позволяющая программировать на разных языках программирования используя: язык Си, язык Си++ или язык objective-c), однако для самого начала лучше установить какой нибудь интерпретатор попроще.

Очень часто для целей обучения основам программирования используется интерпретатор Python ( используемый как интерпретатор командной строки) но подойдет и любой другой.

В данном разделе вы как раз сможете познакомиться с описаниями и возможностями разных программ для программирования и другим полезным софтом для Mac.

  • Просмотров: 39777
  • Автор: M >

Xcode — среда разработки для Mac

Xcode — среда разработки для Mac

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

Xcode это среда разработки специально разработана для создания приложений для платформы Apple — iPhone, iPad, MacOS.
Она совершенно бесплатна и ее свободно можно скачать в AppStore.
Для этого вам конечно же необходимо иметь AppleID — ваш личный идентификатор, который позволяет авторизоваться в iTunes и appStore и совершать покупки.

Как получить свой AppleID мы уже рассматривали ранее:

— вариант создания AppleID с привязкой к кредитной карте и
— вариант создания AppleID без привязки к кредитной карте.

Если вы далее собираетесь работать в качестве разработчика программного обеспечения для платформы Apple, то желательно (но не обязательно) иметь отдельный AppleID который будет использоваться только для этого.

Имея AppleID производите авторизацию в AppStore и скачиваете Xcode .

Стоит заметить, что Xcode предназначен для работы с проектами, как и Visual Studio, который мы рассматривали ранее. По этому для каждого рассматриваемого файла придется создавать отдельный проект.

При первом запуске появляется подобное окно:

Здесь вы выбираете в левой части окна первый пункт для создания нового проекта.

Открывается окно в котором необходимо заполнить некоторые поля:
— Название файла (имя проекта)
— Тип файла — выбираем — С

Далее вам необходимо выбрать место, где будет расположен ваш новый проект.
Для этого можно создать отдельную папку куда они все будут складываться.

После этого откроется окно с созданным проектом.

Поскольку мы будем только знакомиться с основами языка программирования Си и вы можете попробовать использовать для этих целей Xcode, то мы не будем на этом этапе осуществлять подробное знакомство с данной средой разработки.

Для переключения программы в режим редактирования кода надо выбрать в левой панеле файл с именем main.c

Основные моменты по органам управления показаны на скриншоте.
При создании нового файла, как вы заметили, Xcode генерирует начальный код, позволяющий сразу же приступить к программированию.

Данный программный код можно попробовать скомпилировать и выполнить.
Для этого в верхнем левом углу программы Xcode надо нажать на кнопку с треугольником (Run) напоминающую пиктограмму «Play» обычного проигрывателя DVD.

Код будет скомпилирован (при отсутствии ошибок) и выполнен. При этом внизу окна Xcode откроется дополнительная панель с необходимой служебной информацией и результатом выполнения программного кода.

Следует заметить, что разные компиляторы по разному относятся к программному коду.
Если некоторые подобные программы позволяют производить компиляцию кода написанного несколько некорректно, то другие могут выдать предупреждение или вообще ошибку.

По этой причине могу порекомендовать вам все же воспользоваться программой Dev-C++ для ознакомления с основами языка программирования Си.
Правда для этого надо запускать ее из под Windows.

Компьютерный блог. Статьи, уроки и инструкции

Популярные статьи

  • Почему из продажи исчезают нетбуки? Куда они пропали? (5,00 из 5)
  • Как устроен ПК. Устройство компьютера кратко (5,00 из 5)
  • Как установить Autotune 8.1? Ошибка iLok (5,00 из 5)
  • Как увеличить FPS в играх, отключив HPET? (4,90 из 5)
  • Что лучше: Windows или Linux? (4,67 из 5)
  • Износ компьютера. Причины износа компьютера (4,67 из 5)
  • Как установить MinGW 7.3.0 32bit для QT Creator 5.12.0? (4,60 из 5)
  • Как попасть в БИОС (BIOS) на Windows? (4,60 из 5)

Категории


    Видеоуроки (1)
      Аудио (1)

    Компьютеры и технологии (16)

      Базы данных (2) Полезное (6)

    Программирование (7)

      QT Creator (2) Xcode и Swift (5)

    Сети и Интернет (5)

      Безопасность (3)

    Софт (1)

Свежие комментарии

Я ошибся, у меня всё равно иногда было меньше, пришлось…

Удивительно конечно! Рад, что помог хотя бы косвенно :)

Была такая ситуация, переустанавливал windows 7 один раз, когда комп…

Спасибо, подписывайтесь на рассылку! Будет ещё много интересных статей :)

хорошие заметки. спасибо!

Из твиттера

Рассылка

Главная страница » Программирование » Xcode и Swift » Xcode уроки. Урок 1. Интерфейс IDE Xcode и шаблоны

Xcode уроки. Урок 1. Интерфейс IDE Xcode и шаблоны

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

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

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

Цель урока: ознакомление с интерфейсом и возможностями среды Xcode. Обучение тому, как пользоваться и с чего начать для создания первого проекта. Получение знаний для создания проекта, используя специальные шаблоны среды, а также изменяя основные настройки проекта. Получение представлений о каждом файле проекта Xcode, а также о их основном предназначении.

Краткое описание IDE Xcode

Компания Apple создала мощные наборы инструментов для разработчиков ПО. Все эти инструменты объединены в одном приложении под названием Xcode, который позволяет разработчику создавать, тестировать, развертывать и распространять приложения.

Xcode – это интегрированный программный продукт компании Apple для разработки программного обеспечения для платформ: iOS, macOS, WatchOS и tvOS. Xcode уникален и поддерживает целый ряд технологий, он содержит все, что необходимо разработчику: интуитивно понятный редактор кода с подсветкой синтаксиса, расширенные возможности отладки программ, простой, но многофункциональный интерфейс и многое другое.

Xcode поддерживает языки программирования: C, C++, Objective-C, Java, AppleScript, Python, Ruby, ResEdit и Swift, с различными моделями программирования, включая, но не ограничиваясь, Cocoa, Carbon и Java. Сторонние разработчики добавили поддержку GNU Pascal, Free Pascal, Ada, C#, Perl и D.

Самая первая версия Xcode была выпущена в 2001 году, с тех пор было выпущено целых 9 версий этой программы, которая распространяется в Apple Store абсолютно бесплатно для разработчиков. На сегодняшний день, 9 версия Xcode – это самая свежая стабильная версия. С момента выхода первой версии данной IDE в 2001 году, среда разработки менялась в положительную сторону. Внедрялись новые технологии и наборы инструментов, которые помогали разработчику в процессе создания приложений.

Interface Builder

Interface Builder – Это интерфейсный редактор, который позволяет проектировать и создавать полный пользовательский интерфейс мобильных приложений. Является составной частью IDE Xcode. Компания Apple позаботилась о том, чтобы интерфейс Xcode был дружелюбен и понятен:

На рисунке цифрами обозначены отдельные элементы программы:

  1. В левом краю расположен Project Navigator (навигатор проекта), где отображаются все файлы проекты, которые могут содержать программный код или какие-либо настройки.
  2. Слева в Interface Builder располагается схема документа, где можно посмотреть все визуальные элементы, добавленные в окно приложения, которые будут отображаться на экране устройств. Нажав на стрелочку рядом с «View Controller», можно увидеть иерархию элементов на текущем «экране». На рисунке 3.1 всего один View Controller с одним пустым View.
  3. Данная стрелка расположена слева от главного окна View Controller и указывает на то, что данный лист или «экран» является входным, то есть появляется при первоначальной загрузке приложения на устройстве или эмуляторе.
  4. Внизу Interface Builder видны надписи «w Any», «h Any». Эти надписи значат, что в данный момент редактируется внешний вид приложения, которое будет работать в интерфейсе любого размера.
  5. Наверху маленькие иконки отображают, соответственно, окно самого View Controller’а, First Responder, Exit.
  6. Внизу справа Interface Builder’а четыре иконки для Auto Layout.
  7. Справа вверху Interface Builder’а располагается Inspectors (инспекторы) для выбранного вами элемента. Здесь легко можно настраивать атрибуты элементов интерфейса, таких как: шрифт, размер текста, цвет текста, тени и т.д.
  8. Внизу в панели справа находится библиотека объектов (Libraries), в которой отображаются различные элементы интерфейса, которые можно использовать в проекте.

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

Настройки проекта Xcode и файлы проекта

Если кликнуть по названию проекта (в данном случае “Tip Calculator”), то можно перейти к основным настройкам проекта. В настройках проекта всегда можно изменять некоторые параметры, такие как: версия приложения, разработчик, версия iOS, для которой ведется разработка, устройства, для которых ведется разработка и многое другое.

Файл проекта «AppDelegate.swift» содержит в себе специальный программный код с функциями. Этот файл является важным и содержит следующие некоторые методы:

1) Методы, необходимые для конфигурации и загрузки приложения в память;

2) Методы, которые должны вызываться при сворачивании приложения или, например, при входящем звонке;

3) Методы, которые срабатывают при переходе в фоновый режим работы приложения;

4) Методы обновления информации приложения при переходе в активный режим работы;

5) Методы удаления приложения из памяти при закрытии его пользователем.

Файл проекта «ViewController.swift» содержит в себе основной программный код любого приложения, написанного в Xcode.

Файл проекта «Main.storyboard» является основным при создании интерфейса приложения, ведь именно в нём содержится информация о расположении различных элементов (текстовых полей, кнопок, количества окон и др.). Из библиотеки объектов легко можно перетаскивать элементы будущего интерфейса (label, button, text field и многие др.) и помещать на экран приложения.

Например, на рисунке можно увидеть, что на главном экране приложения добавлены из библиотеки: два TextField, три Lable, Button и Switch. К этим элементам можно привязывать код или выводить какую-либо информацию, а также изменять их размеры, перемещать и менять различные свойства: цвет, шрифт и т.д.

Так как в Xcode можно создать универсальное приложение для устройств с разным размером экрана, то существуют и инструменты, которые помогают настроить адаптацию под различные размеры экрана и ориентации устройства (альбомные или портретные).

Файл проекта «images. xcassets» содержит в себе иконки и изображения, которые в дальнейшем будут использоваться в проекте.

Файл проекта «LaunchScreen.xib» – это то, что показывается пользователю при загрузке приложения. Здесь можно добавлять любые элементы из библиотеки объектов, которые будут создавать общий вид, являющийся, по сути, загрузочной заставкой приложений.

Создание проекта и шаблоны в Xcode

Создать проект в среде Xcode несложно. Чтобы это сделать, необходимо запустить Xcode и выбрать «Create a new Xcode project» на первоначальном экране приветствия.

Apple предоставляет по умолчанию множество различных шаблонов проектов для iOS, каждый из которых полезен для начала работы над различными проектами:

Шаблон Single View Applications самый простой и является отправной точкой для многих приложений. Создаётся совершенно пустой интерфейс, который может изменяться разработчиком по своему усмотрению.


Шаблон Master-Detail App подходит, если планируется, что приложение будет активно использовать элемент UITableView. По умолчанию Xcode создаёт проект, который имеет вид таблицы, куда пользователь может добавить строку, используя в правом углу панель навигации.

Шаблон Page-Based Application создаёт страницу-книгу, позволяя пользователю перелистывать страницы. Такой шаблон подходит, если планируется создать приложение, которое отображает информацию в книжном формате, т.е. пользователь будет просматривать страницы свайпом влево или вправо.

Шаблон Tabbed Applications создаёт панель вкладок и две готовые вкладки. При переключении вкладок происходит переход к разным частям приложения.

Шаблон Games позволяет создавать игры, используя технологии Apple OpenGL ES, GLKit, Scene Kit и Metal.

Для создания базового приложений подойдёт шаблон Single View. После того, как шаблон выбран, необходимо нажать кнопку «Next» для перехода на следующее окно:

Далее необходимо заполнить поля:

Product Name (Название продукта) – название будущего приложения. Название проекта в будущем можно изменить во время разработки.

Team (Команда) – Название команды разработчиков, занимающихся разработкой приложений. В данном случае выбран сертификат одного человека «персональной команды».

Organization Name (Название организации) и Organization Identifier (Идентификатор организации) – поля требуются для указания компании, которая разрабатывает программное обеспечение. Необходимо для того, чтобы подать заявку в App Store для публикации приложения. Идентификатор организации в стиле обозначения обратного имени домена. Например, если название организации «togu», то идентификатор организации будет «com.togu».

Language (Язык) – поле со списком, состоящее из двух языков, на одном из которых будет происходить разработка мобильного приложения: Swift или Objective C.

Разработка на Mac в Visual Studio Code

Visual Studio Code – это новый инструмент разработки приложений на разных платформах. Visual Studio Code поддерживает множество языков программирования, таких как C#, TypeScript, JavaScript, и различные полезные возможности, например, интеграция с системами контроля версий, отладка приложений и другое.

Также важно, что Visual Studio Code работает с технологиями с открытым кодом, что может понравиться многим разработчикам.

Мы подготовили для вас серию видео, где расскажем о работе с Visual Studio Code с использованием разных языков программирования и интеграции с Git, Visual Studio Online и Unity3D.

Как установить Visual Studio Code

Какие возможности предоставляет среда разработки

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

Visual Studio Code определяет, на каком языке язык программирования написан код, и показывает разметку для нескольких поддерживаемых языков, их больше 30. Весь список языков, которые поддерживаются, вы можете найти по данной ссылке.

Code snippets

В Visual Studio Code вы можете вставлять вставлять заранее заготовленные блоки кода, которые можно снабжать параметрами.

Интеграция с GIT

Из этого видео вы узнаете, как установить GIT и пользоваться его локальным хранилищем.

Интеграция с Visual Studio Online

Visual Studio Online – один из популярных провайдеров для Git.

Интеграция с GitHub

Для тех же, кто любит использовать GitHub в качестве провайдера для Git, мы также подготовили инструкцию.

Интеграция с Unity3D

Как интегрировать Visual Studio Code и Unity plugin.

Задачи

Задачи в Visual Studio Code позволяют выполнять любые команды и смотреть результаты работы прямо из среды разработки. Таким образом, могут быть использованы внешние компиляторы, отладчики, средства тестирования.

Отладка в Visual Studio Code

С помощью Visual Studio Code вы можете осуществлять отладку для Node.js проектов и для проектов на Mono. В видео-примере показана работа отладчика на примере интеграции Unity и Visual Studio Code.

Публикация сайта в Microsoft BAzure

Интерфейс Visual Studio Community может быть интегрирован с Azure, что облегчит процесс развертывания веб-сайтов в облаке.

JavaScript

Если вы интересуетесь разработкой веб-приложений, Visual Studio Code также предоставляет возможность работать с JavaScript, Typescript и Node.js – об этом в следующем видео.

От JavaScript к TypeScript

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

По этой причине лучше использовать надстройки, такие как TypeScript, CoffeScript или такие системы, как Dart.

Из этого видео вы больше узнаете о TypeScript и его использовании в редакторе Visual Studio Code.

Интеграция с Node.js

С помощью Node.js вы можете использовать JavaScript не только для веба, но и запускать такие приложения на других платформах, включая Mac, облако, устройства Интернета вещей и другое.

Разработка ASP.NET приложений на Mac

В этом видео мы поговорим о том, как вы можете разрабатывать ASP.NET приложения на Mac.

Поставьте 5 звезд внизу статьи, если нравится эта тема. Подписывайтесь на нас ВКонтакте , Instagram , Facebook , Twitter , Viber .

Вопрос по c#, >

я использую мой Mac большую часть времени на работе. Дома естьЭто мой компьютер с Windows, на котором я программирую с помощью Visual Studio .NET / C #.

Поскольку я хочу программировать снаружи, было бы здорово иметь эквивалентную IDE для моего Mac.

Какое программное обеспечение является лучшим решением в моем случае иметь подобное рабочее место с той же функциональностью?


Я предпочитаю с открытым исходным кодом, но коммерческое программное обеспечение тоже хорошо.

Стань X-кодером: Начинаем кодить под Mac OS с помощью Objective-C

Содержание статьи

Несмотря на то, что для МакОСи можно создавать приложения на C/C++ или Java, Objective-C фактически стал стандартом при разработке под эту операционку. Это произошло благодаря удобному и функциональному API для этого языка — фреймворку Cocoa. Об ObjectiveC и Cocoa мы сегодня и поговорим.

C превращается. в C с объектами

Objective-C появился через год после плюсов, в 1986 году, благодаря работе Brad Cox и Tom Love в компании Stepstone. Они хотели соединить высокий уровень абстракции и повторного использования кода, характерные для объектно-ориентированного программирования, с производительностью и простотой синтаксиса языка С.

Для этого им пришлось модифицировать C, добавив некоторые фичи из Smalltalk, позволяющие работать с объектами. Получившееся объектно-ориентированное расширение языка С впоследствии стало носить название Objective-C — «объектный C». Чтобы понять, как этот продукт скрещивания двух древних языков программирования попал на современные маки и разнообразные мобильные устройства Apple, нужно вспомнить историю яблочной компании. Apple была основана в 1980 Стивом Джобсом и Стивом Возняком.

После многих лет успеха на посту главы компании Джобса сменил бывший управляющий компании Coca-Cola Джон Скалли (John Sculley). Стив покинул Apple и через некоторое время основал новую компанию, назвав ее NeXT. Среди основных задач NeXT было создание операционной системы нового поколения. Для ее разработки было решено использовать среди прочих средств и Оbjective-C — он стал основой для API. Вскоре операционка от NeXT была готова и получила название NeXTStep. Собственно, это и было первое серьезное применение ObjC. Позже NeXT объединила усилия с Sun Microsystems для создания следующей версии NeXTStep — OPENStep (в настоящий момент продолжает свое существование только GNUStep, поддерживаемая сообществом свободного программного обеспечения). В середине 1990-х Джон Скалли покинул Apple, которая стремительно теряла свои позиции на рынке. Для спасения ситуации компания решила создать новую операционную систему взамен устаревающей Mac OS. После нескольких неудачных попыток Apple решила купить компанию, которая уже имеет свою операционку. Этой компанией, как ты уже наверно догадался, стала NeXT. Так Джобс снова оказался в Apple, на основе NeXTStep была создана Mac OS X, а Objective-C занял свое место среди инструментов Mac-разработчика и в API Mac OS X.

Разговорчивые объекты

Итак, Objective-C — объектно-ориентированное расширение языка С. А что в нем, собственно, есть такого, чего нет в тех же плюсах? Среди основных достоинств Objective-C нужно перечислить следующие:

  • Синтаксис Objective-C очень прост. Чтобы его изучить, С-программисту понадобится всего пара дней. Он является именно расширением языка С, в него просто добавлены новые возможности для объектноориентированного программирования. Таким образом, абсолютно любая программа на С является программой и на Objective-C (что для С++, вообще-то, неверно).
  • Objective-C — message-oriented language, то есть объекты в нем общаются между собой не с помощью явного вызова инкапсулированных функций, как в C++ или Java, а при помощи отправки друг другу сообщений.

Это позволяет объекту-отправителю легко формировать нужное сообщение во время выполнения приложения, а объектуполучателю — принимать произвольные сообщения, обработка которых не была в нем реализована явно, так как поиск кода, выполняемого при получении объектом сообщения, осуществляется во время выполнения, а не на этапе компиляции программы. Так, если среда выполнения не находит в интерфейсе объекта сигнатуры входящего сообщения, ему все равно дается шанс обработать это сообщение с помощью специального метода. Подобная динамическая реализация вызова методов делает систему более гибкой, лишь незначительно понижая ее производительность.

Язык Objective-C предоставляет широкие возможности для работы с метаинформацией; так, у любого объекта непосредственно на этапе выполнения можно спросить его класс, список методов (с типами передаваемых аргументов) и instance-переменных, проверить, является ли класс потомком заданного и поддерживает ли он заданный протокол (протокол — это список сообщений, на которые отвечает данный объект, некоторое подобие абстрактных классов C++ или интерфейсов Java) и т.д.

Здравствуй, мир!

Линус Торвальдс как-то сказал: «Разговоры — дешевка. Покажите мне код!». Показываю! Вот код HelloWorld , а на Obj-C. Кстати, если у тебя нет под рукой Mac OS X или хакинтоша, можешь попробовать в действии Objective-C и Cocoa c помощью GCC и проекта OpenStep.

Наша первая прога на ObjC

#import
void main()
<
NSLog(@»Hello world!»);
>

Наш HelloWorld сильно напоминает C++, не так ли? Но есть и свои особенности, которые ты, конечно, сразу заметил.

  • #import — директива препроцессора, аналогичная #include, но, в отличие от последней, она не позволяет включить заголовок более одного раза, то есть работает так же, как стражи включения в C++ (#include, разумеется, тоже поддерживается).
  • Cocoa.h — заголовок, содержащий описания функций, классов и констант фреймворка Cocoa, о котором я говорил в начале.
  • NSLog — одна из таких функций. Она выводит текстовое сообщение в stdout вместе с timestamp’ом в начале строки. Помнишь NeXTStep? Префикс «NS» как раз оттуда :).

Строки в Objective-C — отдельная история. NSLog получает на вход не C-строку, а объект класса NSString. Заметил собаку перед строкой в NSLog? Это указание компилятору ObjC создать константу типа NSString — в Сocoa используются не zerro-terminated строки, как в C, а объекты класса NSString или его наследников (NSMutableString например). Создатели Cocoa позаботились о том, чтобы в NSString были реализованы все методы работы со строками, которые тебе чаще всего приходится использовать. Строки можно склеивать, разбивать по разделителю, искать в них подстроки, делать форматированный вывод и много чего другого.

На скриншоте ты можешь видеть код нашего простенького примера в среде XCode и результат его выполнения. XCode — это среда разработки, используемая при написании приложений для Mac OS и iOS. В ней довольно удобно работать, но, как и ко всему новому, к ней нужно привыкнуть. Кроме редактора и отладчика в нее интегрированы средства построения пользовательского интерфейса — «Interface Builder», управления версиями — «SCM» и еще множество всяких полезных фишек. В качестве компилятора используется допиленный Apple GCC. В качестве отладчика — GDB. В настоящий момент на сайте Apple свободно доступна для скачивания XCode 3, пробная версия XCode 4 доступна только для зарегистрированных Appleразработчиков. В общем, качай, устанавливай, пробуй.

Рабочий класс

Раз язык объектно-ориентированный, значит, в нем должны быть объекты. Давай посмотрим, как их создавать и использовать в Objective-C. Каждый класс в коде на Objective-C разделен на интерфейс и реализацию, которые принято хранить в отдельных файлах. Заголовочные файлы получают расширение «h», а файлы с реализацией — «m».

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

// Класс Dog — наследник NSObject
// Разместим его интерфейс в «Dog.h»
@interface Dog : NSObject
<
// Здесь размещаем поля объекта
@private
int Age;
@public
int Color;
>
// После этого идет описание сообщений,
// на которые отвечает объект.
// Перед сообщениями экземпляров ставится «-»,
// а перед сообщениями класса
// (аналог статических методов в C++) — знак «+».
// В описании сообщения указывается имя
// сообщения, список передаваемых параметров
// и тип возвращаемого значения.
— (void) voice;
— (void) setAge: (int) age;
— (int) getAge;
@end
// Реализация сообщений нашего класса (Dog.m)
@implementation Dog
— (void) voice
<
NSLog(@»Woof woof»);
>
// Вообще, для этого есть свойства,
// но о них как-нибудь в следующий раз
— (void) setAge: (int) age
<
Age = age;
>
— (int) getAge
<
return Age;
>
@end

Для вызова метода используется следующий синтаксис:

[my_class_pointer message_name: arg1 arg2_name: arg2 arg3_name: arg3]

Немного непривычно после точек и стрелок C++ и Java, но к такому синтаксису быстро привыкаешь и даже начинаешь считать его удобным. Что интересно, мы можем посылать сообщения нулевому указателю (nil). Результат всегда будет nil.

После того, как класс описан и определена реализация для методов-обработчиков сообщений, можно создавать объекты этого класса.
Для того, чтобы создать объект, нужно сделать две вещи — выделить для него память и инициализировать ее. В Objective-C эти два действия разделены. Это может показаться излишним, но на самом деле придает процессу создания объектов дополнительную гибкость.
Чтобы создать объект Dog, нам потребуется следующая строчка:

Dog * dog1 = [[Dog alloc] init];

alloc — метод класса NSObject. Он выделит необходимое количество памяти под наш объект и вернет указатель на него. После этого мы можем выполнить инициализацию, послав только что созданному объекту сообщение init. Мы не переопределяли обработку сообщений alloc и init, поэтому будут использованы реализации из NSObject. На практике init часто приходится переопределять для того, чтобы произвести какую-то начальную настройку объекта или передать дополнительные параметры. init играет роль конструктора в ObjC.

Теперь, когда мы создали экземпляр класса, мы имеем полное право отправлять ему сообщения:

int age = [dog1 getAge];
[dog1 voce];

Для того, чтобы уничтожить объект и освободить выделенную ему память и (возможно) другие ресурсы, ему нужно отправить сообщение release:

Управление памятью реализовано в ObjC в виде подсчета ссылок. alloc создает объект с числом ссылок, равным единице. release уменьшает количество ссылок для данного объекта на 1. Объект будет уничтожен, когда счетчик достигнет 0. Если тебе когданибудь приходилось использовать COM, то такая реализация управления памятью должна быть тебе хорошо знакома.

Значение счетчика можно увеличивать, посылая объекту сообщение retain. Кстати, начиная с Objective-C 2.0, стала доступна сборка мусора, ее можно совмещать с классическим управлением памятью с помощью подсчета ссылок. Кроме явного уничтожения объекта, ты можешь добавить его в пул временных объектов (NSAutoreleasePool), послав сообщение autorelease. Так часто поступают, например, при возвращении объектов методы классов Cocoa (метод stringByAppendingString объектов NSString, например).

NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
NSString *str;
// Проинициализируем строчку и добавим
// ее в pool
str = [[[NSString alloc] init] autorelease];
// .
[pool drain]; // Здесь объект str будет уничтожен

В этом кратком обзоре ObjC следует, пожалуй, сказать еще об исключениях Objective-C. Обработка ошибок времени выполнения в С трудоемка и может порождать множество других ошибок. На самом деле в C есть два варианта обработки ошибок времени выполнения — возвращение значения функцией и изменение значения глобальной переменной (errno например). В обоих случаях необходимо проверять результат работы каждой функции, выполнение которой может вызвать ошибку.

Код нормального процесса исполнения и код обработки ошибок смешивается, что не есть хорошо. К счастью, в ObjC, как и в C++, есть механизм исключений.

Вот пример обработки исключительной ситуации в ObjC:

Обработка исключений в Objective-C

Cup * cup = [[Cup alloc] init];
@try
<
[cup fill];
>
@catch ( NSException * exc )
<
NSLog ( @»Exception caught: %@», exc );
>
@finally
<
[cup release];
>

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

«Кокао» для кодера

После экскурса по Objective-C можно поговорить о доступных фреймворках МакОСи. Куда же без них? Фреймворк сделает за тебя всю грязную работу, чтобы ты мог спокойно заниматься основной задачей.

Для разработки нативных приложений под МакОСь распространение получили два фреймворка — Cocoa и Carbon. Если ты пишешь под Мак или под iOS на Objective-C, то твой выбор — Cocoa.

Cocoa — это продукт эволюции программных сред NeXTSTEP и OPENSTEP, которые разрабатывались компанией NeXT. Перекочевав на Mac OS X, фреймворк сильно изменился, и в нем появилось множество новых классов. Все они, как в С# или Java, являются наследниками одного класса — NSObject.

В Cocoa представлены базовые типы, такие как NSNumber и NSString, различные контейнеры (NSArray, NSDictionary), обертки для системных объектов и т.д. Давай-ка опробуем Cocoa и Objective-C в действии и создадим небольшое консольное Cocoa-приложение.
В Сети существует множество веб-сервисов. Некоторые из них просто предоставляют информацию в удобном формате, например, в XML.

Одним из таких сервисов является сервис Российского Центробанка, предоставляющий информацию о текущих курсах валют. По адресу www.cbr.ru/scripts/XML_daily.asp можно получить XML’ку следующего вида:

Создадим класс ObjC RCBDayly, который будет скачивать эту XML’ку, парсить ее и предоставлять данные в удобном для нас виде. Исходник нашего класса ты можешь увидеть на врезке.

На этом примере ты можешь видеть, как легко в Cocoa работать с сетью и XML. При создании подобных приложений можно обойтись, конечно, и средствами POSIX, а вот если ты хочешь создать GUI-приложение, без Cocoa тебе не обойтись. Но об этом как-нибудь в другой раз.

Заключение

Разнообразные гаджеты от Apple производятся и продаются по всему миру в огромном количестве. Всех их объединяет то, что на них работает Mac OS X или iOS и, если ты хочешь освоить разработку под эти операционки, знания Objective-C тебе очень пригодятся. До встречи в эфире!

Исходник нашего XML-парсера

// Импортируем классы Cocoa
#import
// Опишем интерфейс нашего класса
@interface RCBDayly : NSObject
<
@private
// NSMutableDictionary — аналог map в C++
NSMutableDictionary * Valutes;
>
// Конструктор принимает на вход URL веб-сервиса
-(RCBDayly ) initWithContentsOfURL:(NSURL)url;
// Для доступа к данным класса будем использовать
// метод getValueForCharCode.
-(NSString ) getValueForCharCode:
(NSString *) char_code;
@end
// А теперь — реализация
@implementation RCBDayly
-(RCBDayly
) initWithContentsOfURL:(NSURL) url
<
// Проинициализируем базовый класс — NSObject
[super init];
// Подгружаем xml,ку с указанного URL
NSError * err = nil;
NSXMLDocument * cbr_xml =
[[NSXMLDocument alloc] initWithContentsOfURL:url
options:0 error:&err];
if (err != nil && [err code] != 0)
<
// Не повезло. Возможно, сервис недоступен, или
// XML-парсер не смог разобрать документ.
// Выяснить, что именно произошло, нам поможет
// locolizedDescription из NSError
NSLog(@»Error:%@», [err localizedDescription]);
// Освободим память, выделенную под наш объект
[self release];
return nil;
>
// Создадим NSMutableDictionary
Valutes = [[NSMutableDictionary alloc] init];
// Нам потребуется массив XML-элементов
NSArray * nodes = nil;
// Заполним его элементами «Valute» из XML’ки
nodes = [[cbr_xml rootElement]
elementsForName: @»Valute»];
// Для каждой валюты получим ее CharCode и
// Value (курс)
for (int i = 0; i 0 && [values count] > 0)
<
// Добавим пару CharCode — Value в наш
// NSMutableDictionary
[Valutes setObject:
[(NSXMLElement *)
[values objectAtIndex: 0] stringValue]
forKey:[(NSXMLElement *)
[names objectAtIndex: 0] stringValue]];
>
// Вернем указатель на себя, как любой нормальный
// конструктор
return self;
>
// В этом методе мы просто обеспечиваем
// доступ к private-полю Valutes
-(NSString
) getValueForCharCode:
(NSString*) char_code
<
return [Valutes objectForKey: char_code];
>
@end
int main(int argc, char *argv[])
<
// Создадим пул для временных объектов,
// которые генерит, например, [NSURL
URLWithString]
NSAutoreleasePool * pool =
[[NSAutoreleasePool alloc] init];
// Создадим объект класса RCPDayly и
// инициализируем его нужным URL
RCBDayly * dayly_values =
[[RCBDayly alloc] initWithContentsOfURL:
[NSURL URLWithString:
@»http://www.cbr.ru/scripts/XML_daily.asp»]];
if (dayly_values == nil)
<
// Произошла ошибка при инициализации класса
return -1;
>
// Почем сегодня доллар? :)
NSLog([dayly_values getValueForCharCode:@»USD»]);
[pool release]; // Освободим пул, а вместе с ним
// и все временные объекты.
return 0;
>

Cocoa Framework

Cocoa — набор классов и функций Objective-С, предоставляющих доступ к сервисам Mac OS X для пользовательских приложений. Поскольку для взаимодействия с классами Cocoa необходима среда выполнения ObjC, разработка с использованием этого фреймворка возможна только на Objective-C. Для Сocoa существует возможность кроссплатформенной разработки под Linux и Windows благодаря проектам GNUStep и cocotron.

Carbon Framework

Carbon — процедурный фреймворк Mac OS X, предназначенный для использования в приложениях на C/C++. Он предоставляет обратную совместимость с более ранними версиями Mac OS (например, Mac OS 9).

В настоящее время возможности Carbon для работы с Mac OS X становятся все скромнее. Так, например, невозможно получить доступ к GUI из приложения Carbon для 64-битного окружения — Apple отдает предпочтение Cocoa.

Цукерберг рекомендует:  Оператор сравнения - IF A=B Then...
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих