Почему большинство программистов выбирают Mac? — Хабр Q&A
Общая идея выше уже описана.Начинал с Windows, потом долго работал на Linux и в конце концов пересел на Mac.
Как выше отметили переход на Mac для программиста оправдан если это web-разработка. Так сложилось что большая часть сайтов работают под unix-системами.
По этой причине под windows не совсем удобно работать. Поэтому приходим к мысли что нужно что-то unix-like.
Сейчас меня забросают минусами, но у всего unix-like IMHO не особо хорошо с интерфейсом (мне лично чего-то не хватает: порой кажется, что окошки зря расходуют место) и самое главное — если заниматься не только кодингом, то нет некоторого софта (типа photoshop etc).
Вообще под linux вполне можно жить, но некоторых типов софта там либо нет, либо он еще развивается.
Плюс нужно так или иначе заниматься ОС. Что-то настраивать/подстраивать. В общем, это как ни крути, а система для гиков. Не то чтобы мне это не нравится, но порой надоедает и хочется просто заниматься кодингом.
Что касается Mac OS, то это UNIX с графической оболочкой которую разрабатывал профессиональный дизайнер. И как ни странно, она просто работает и многие вещи очень неплохо продуманы. Мне не надо постоянно что-то подкручивать после обновления. Думать как поставить какую-то программу потому что конфликт и тп. Устанавливать драйвера на железо через одно место.
Плюс довольно неплохая поддержка производителями железа/софта. IMHO, не сильно хуже Windows.
В общем фактически под этой ОС занимаешься своим делом, а не администрированием.
Насчет цены, она конечно немного завышена (хотя как посмотреть, ведь полноценная ОС идет бесплатно). Но если сравнивать одинакового уровня железо, то разница до скачков курса была не такая уж и большая.
В итоге обычно рано или поздно выбор становится вполне очевидным и осознанным. 🙂
P.S. Нужно понимать что ОС — это всего лишь инструмент. Где-то есть свои уникальные фишки, софт. Кому-то нравятся инструменты от одной компании, кому-то от другой.
Настройка Mac для программистов — CodeRoad
Недавно я перешел на MacBook Pro, так что я все еще очень новичок в программной экосистеме Mac. Какое лучшее руководство или какие советы у вас есть, чтобы быстро освоить использование Mac для разработки как на платформах Mac/Unix, так и на платформах MS (*.NET, SharePoint, SQL Server и т. д.) с использованием VMWare Fusion? Например, я установки NetBeans, FlexBuilder, Eclipse, TextMate, VMWare Фьюжн, OpenOffice, FireFox, тащили Terminal.app моего дока, модернизировали Ruby установки и соответствующие драгоценные камни и так далее… Вещи, которые я не делал, но рассматривал (основываясь на опыте других), включают QuickSilver (это все так отличается от SpotLight?), MacPorts (или Финк?), начало работы с iPhone, Android и так далее. Вы можете сказать по моей неопытности, что я еще не знаю, как лучше всего делать вещи, и не хочу иметь привычку просто устанавливать вещи, а затем оставлять файлы и прочее, что замедляет работу системы.
Обновление: природа моей работы такова, что я всегда работаю с новыми/различными технологиями, некоторые из которых основаны на Windows/MS, некоторые нет, а с Mac (и Fusion) даже вещи на основе MS мне более приятны.
macos development-environmentПоделиться Источник
13 ответов
-
Блоги сетевых программистов (особенно для игр)
Каковы некоторые хорошие блоги сетевых программистов? Меня особенно интересуют люди, которые пишут о многопользовательских играх (MMORPG/RTS/FPS/etc), но любой хорошо написанный блог на эту тему был бы великолепен. Вот хороший блог, который я нашел в другом посте stackoverflow: Сеть Глена Фидлера…
-
Как программист Windows может быть достаточно продуктивным в Mac OS X?
Я использую MacBook Pro уже несколько месяцев дома, и мне было интересно, есть ли хорошая книга или руководство, которое может помочь мне стать лучшим программистом на Mac.
17
Я бы очень рекомендовал MacPorts — вы можете быстро и легко установить новые пакеты с помощью простого
sudo port install package-name
Вместо того, чтобы иметь дело с просмотром веб-сайта, чтобы найти дистрибутив, загрузить образ диска и запустить установщик, или загрузить архивный файл и распаковать его, запустить сценарий настройки и запустить make и т. д.
Поделиться Adam Rosenfield 23 декабря 2008 в 05:46
11
Найдите немного денег и вложите их в дополнительную память для вашего mac. Я знаю, что это, вероятно, не тот совет, который вы хотите услышать, но, честно говоря, это избавит вас от разочарования в долгосрочной перспективе. Apple отправляет этих младенцев с гораздо меньшей памятью, чем они того заслуживают, и взимает плату за расширение arm и ногу. У меня был Mac Pro (четырехъядерный Xeon), который полз до тех пор, пока я не получил немного реальной памяти.
Еще один совет-обзавестись приличной клавиатурой и мышью. Не доверяйте Стиву Джобсу с этим дерьмом «single mouse key for everything». Он работает для ichat, а не для реального программирования. Купите себе настоящую клавиатуру и настоящую мышь с несколькими кнопками. Настройте свою среднюю кнопку прокрутки, чтобы открыть expose или что-то еще, что показывает вам все windows. Настройте четвертую кнопку для увеличения.
Кроме того, судя по вашему описанию, вы действительно не знаете, что именно хотите развить. Если вы занимаетесь специфическими для mac вещами, привыкайте к XCode ASAP и теряйте rest. Если вы хотите заниматься программированием windows, то не знаете, зачем вам использовать mac. Если вы хотите Java, у вас есть Eclipse, вы готовы идти.
Поделиться Uri 23 декабря 2008 в 05:49
9
Установите все материалы Mac dev, XCode и т. д., Чтобы получить компиляторы.
Конечно, Макпортс. Просмотрите их каталог и установите все обычные пакеты, к которым вы привыкли из Linux или других систем, включая связанные с разработкой вещи, такие как flex/bison, emacs, doxygen, m4, perl, python и т. д.
Я предпочитаю «iTerm» встроенному terminal. Не забывайте о том, что многие вещи работают так, как вы привыкли.
Я не дал URLs ни за что из того, что я упомянул. Для этого и существует Google.
Поделиться Larry Gritz 23 декабря 2008 в 06:53
-
Ruby книга для опытных программистов с упражнениями
Я ищу хорошую книгу ruby для опытных программистов (я разрабатывал в C# и Java в течение последних 7 лет), и мне это трудно.
-
MSDN как помощь для python программистов
Я новичок в python, пришедший из C# мира. Есть ли какая-нибудь MSDN-подобная справка, доступная для python программистов, где я могу искать классы, свойства их методов и т. д. Спасибо, Теймур.
5
Во-первых, установите XCode . Это дает вам среду разработки Mac OS X, но самое главное, она также устанавливает GCC, так что вы можете создавать как свои собственные проекты, так и приложения, которые распространяются в виде исходного кода. После этого я бы предложил проверить TextMate, популярный текстовый редактор для Mac OS X (как видно из скринкастов Rails). Если вы являетесь пользователем Emacs/Vim, есть Aquamacs и MacVim .
Поделиться Kyle Cronin 23 декабря 2008 в 05:45
2
Инвестируйте в хороший текстовый редактор. См. следующие вопросы:
https://stackoverflow.com/questions/100084/what-is-a-good-gui-text-editor-for-the-mac Mac text/code editor
А под ‘invest’ я подразумеваю и деньги, и / или время обучения.
XCode-достаточно хороший редактор для Objective-C, но я бы не стал использовать его в качестве основного редактора для всего.
(MacVim-это мой выбор)
Поделиться Sergio Acosta 23 декабря 2008 в 08:27
2
- Установите последнюю версию Xcode (вам это понадобится, даже если вы не разрабатываете приложения macintosh/iphone)
- Установите macports для большинства ваших инструментов OSS (сначала вам понадобится Xcode)
- Для запуска инструментов, которые не являются OSS или windows только install virtualbox я знаю, что есть alernatives (VM fusion имеет высокий рейтинг), но virtual box бесплатен
- Установите IDE, если вы не хотите использовать Xcode в качестве IDE (например, eclipse и netbeans)
Наконец, если у вас есть немного наличных
- Обновите ram, если это необходимо (разработчики sw любят ram, особенно если вы используете виртуальную машину 🙂 )
- Второй дисплей, я не могу представить себе разработку менее чем с двумя дисплеями
Поделиться hhafez 23 декабря 2008 в 09:46
1
Мой выбор для отличного универсального текстового редактора был бы TextWrangler .
Поделиться unclerojelio 20 января 2009 в 19:50
1
Я сделал то же самое в августе этого года, купил Macbook Pro (самый маленький из них, но с 200 Гб 7200 об / мин и 4 ГБ RAM), и я могу рассказать вам о своем опыте.
Я разработчик .NET и программист ASP уже более 10 лет, так что все, что я делал, было связано с Microsoft, никогда, кроме установки и игры с Ubuntu, у меня был опыт работы в мире Linux.
Но мои мысли были заняты разработкой iPhone SDK, и я даже заплатил свою надпись на программе разработчика iPhone, все было прекрасно, я просто обожал свой новый Mac! Но… Программирование Mac-это хобби для меня, и поверьте мне, Fusion, и даже с моими 4 ГБ и помещенными 2 ГБ для каждого OS, движется не так хорошо, как в ноутбуке «normal», поэтому после 4 месяцев борьбы я отформатировал свой ноутбук и создал раздел Bootcamp (WOW, теперь я могу использовать его для Windows!), и Fusion может запустить этот раздел Boot camp как образ Виртуальной машины, и это хорошо для небольших случаев, когда мне нужно что-то быстро сделать.
То, что вы упоминаете и как Uri упоминаете, я не думаю, что вы знаете, что собираетесь делать, имея «bunch» приложений в ноутбуке, действительно говорит об этом, потому что все, что вам нужно, это Eclipse для всего остального и XCode 3.1 с SDK для приложений, связанных с Mac, не более того!
Я был похож на вас, но я понял, что не открывал никаких других программ, которые эти 2, и кроме компиляции кода Objective-C, был ли Mac вашим лучшим выбором?
Поделиться balexandre 23 декабря 2008 в 06:21
1
Вместо vmware fusion, virtualbox.org является бесплатным и стоит посмотреть.
Поделиться frankodwyer 23 декабря 2008 в 11:38
0
Убедитесь, что вы установили инструменты разработчика (XCode) с вашего диска OS (и не пытайтесь установить версию GNU поверх него :P).
Вы уже сделали все, что я сделал, за исключением того, что я использую Virtual Box вместо VMWare.
Поделиться Cogsy 23 декабря 2008 в 05:48
0
Я обнаружил, что OpenOffice очень медленный по сравнению с реальным Microsoft Office для Mac . Если у вас есть какой-то бюджет, я бы рекомендовал это сделать за OpenOffice.
Я могу поддержать рекомендацию для QuickSilver — это одна из лучших пусковых установок, которые я использовал.
Для клиентов IM, если у вас есть контакты за пределами сети AIM, вы можете попробовать Adium -бесплатный чат-клиент multi-IM-network, который имеет удобные вещи, такие как доступные для поиска стенограммы.
Еще одна общая утилита, которую я настоятельно рекомендую, — это меню iStat-оно дает вам монитор в реальном времени CPU, память, диск и т. д. прямо в строке меню.
Поделиться Marc Novakowski 23 декабря 2008 в 07:02
0
QuickSilver-это очень хороший вариант, и да, он немного отличается от Spotlight из-за большого количества плагинов, которые вы можете иметь. Если у вас есть NetBeans, может быть, вам не нужно Eclipse. Я бы даже сказал, что с TextMate (моим редактором тоже) вам тоже не нужен NetBeans 🙂
Я второй MacPorts, он более современный, чем fink, и ближе к системе портов FreeBSD (откуда я родом).
Поделиться Keltia 23 декабря 2008 в 08:42
0
Установите Windows с помощью Boot Camp. Затем вы можете удвоить boot между OSX и Windows, использовать windows как обычно для разработки MS и OSX для других ваших не MS вещей.
Поделиться Ady 23 декабря 2008 в 08:55
Похожие вопросы:
Научные вычисления в Python для MATLAB программистов
Мне было интересно, знает ли кто-нибудь хороший учебник или вводный текст по научным вычислениям на Python/SciPy для MATLAB программистов. Я думал о чем-то похожем на текст Дэвида Хибелера о R для…
Настройка java для MAC
Я пытаюсь скачать java для моего MAC, но я не знаю, какую платформу я должен выбрать непосредственно перед загрузкой, в списке нет MAC OS, так что же я должен выбрать вместо этого? Я использовал…
Графические редакторы для программистов?
Технически это не вопрос программирования, но я считаю, что он все еще актуален для разработчиков программного обеспечения. Мой вопрос таков: какие существуют графические редакторы, ориентированные…
Блоги сетевых программистов (особенно для игр)
Каковы некоторые хорошие блоги сетевых программистов? Меня особенно интересуют люди, которые пишут о многопользовательских играх (MMORPG/RTS/FPS/etc), но любой хорошо написанный блог на эту тему был…
Как программист Windows может быть достаточно продуктивным в Mac OS X?
Я использую MacBook Pro уже несколько месяцев дома, и мне было интересно, есть ли хорошая книга или руководство, которое может помочь мне стать лучшим программистом на Mac. Может быть,…
Ruby книга для опытных программистов с упражнениями
Я ищу хорошую книгу ruby для опытных программистов (я разрабатывал в C# и Java в течение последних 7 лет), и мне это трудно. Либо книги непосредственно ориентированы на начинающих, либо дают лишь…
MSDN как помощь для python программистов
Я новичок в python, пришедший из C# мира. Есть ли какая-нибудь MSDN-подобная справка, доступная для python программистов, где я могу искать классы, свойства их методов и т. д. Спасибо, Теймур.
PHP настройка для Mac
Возможный Дубликат : Каков самый простой способ иметь локальную установку LAMP для веб-разработки на mac OS X? Я новичок в PHP, и на самом деле я не ищу помощи со сценарием, а на самом деле ищу, как…
Scala для младших программистов?
мы рассматриваем Scala для нового проекта в нашей компании. У нас есть несколько младших программистов со знанием только PHP, и мы сомневаемся, что они могут справиться с Scala. Каково Ваше мнение?…
Предоставляет ли Apple установщик development iOS для программистов, которые не владеют устройством Mac?
За последние два месяца я успешно закончил простое приложение Android. Приложение использует фреймворк Qt и поэтому должно быть совместимо и с iPhones. Программное обеспечение для разработки iPhones…
12 книг для изучения языка программирования Objective-C
Сайт KV.BY собрал и опубликовал подборку книг для изучения языка Objective-C. К сожалению, книг на русском до ужаса мало, поэтому основная часть литературы будет на английском. Но есть и плюс: так можно неплохо прокачать знание иностранного языка.
Программирование на Objective-C 2.0
Книги Стивена Кочина становились хитами среди приверженцев С. Сейчас же перед вами книга, которая переиздавалась целых 6 раз, начиная с 2004 года.
Книга разбита на 3 больших раздела:
- Сам язык и все о его основах.
Вы начинаете с создания своей программы. И на основе этого начинается погружение в изучение языка. Понятия вводятся постепенно, чтобы сильно не грузить, но достаточно интенсивно, чтобы к концу книги самостоятельно писать под iOS.
- Знакомство с фреймворком Foundation. По сути, это сборник готовых классов, которые формируют этот самый фреймворк.
- Разбор фреймворков Cocoa, Cocoa Touch и iOS SDK. Освоив эти инструменты, вы узнаете их функционал и сможете написать небольшое приложение для iOS.
В самом начале автор рекомендует потратить время на изучение теории структуры данных и работы с памятью. В этой книге Objective-C идёт отдельно С, так что знание С совсем не обязательно.
Objective-C. Программирование для iOS и MacOSВ отличие от Стивена Кочина, Аарон Хиллегасс, автор книги, полагает, что для изучения Objective-C нужно глубокое понимание С. Соответственно, в книге по верхам рассматривается синтаксис, но очень много места посвящено объяснениям в сфере работы программирования и того, как мыслят опытные разработчики. Автор ратует за опытное изучение языка. А это значит, что будет много кода, ошибки в нем, их поиск и самостоятельное устранение.
Начинающим программистам, не знающих С, скорее всего, книга пользы не принесёт. Тем не менее, к ней стоит вернуться после освоения основ языка.
Objective-C 2.0 и программирование для MacObjective-C — это основной язык для платформ «яблочной» продукции. Книга собрала в себе обширный материал по языку, показывая его способности. Авторы делают упор на описание протоколов и инстанцирования. Не обошли стороной среду разработки Xcode и Cocoa. Читателю также расскажут о сложных концепциях программирования. Например, о ООП, рефакторинге и предикатах.
Objective-C RecipesЭто хорошее дополнение к другим книгам в качестве сборника советов и готовых алгоритмов. Изначально автор ставил цель создать рецепты, упрощающие себе жизнь при создании мобильных приложений. Но получилось так хорошо и обширной, что было принято решение выпустить книгу.
Код понятен и прост, даже начинающие программисты смогут с ним разобраться и внедрить в свои разработки. Автор никак не затрагивает тему того, как изучать Objective-C, но активно делится своими практическими навыками.
Objective-C Programming For DummiesПошаговое руководство по пониманию ООП с Objective-C. Как основной язык программирования для приложений iPhone, iPad и Mac OS X, Objective-C является отражающим, объектно-ориентированным языком, который все программисты должны знать перед созданием приложений.
Предполагая, что у вас нет опыта работы с языками программирования, эта забавная и дружественная книга дает вам четкое представление о Objective-C. Обращаясь к последней версии XCode, отладке, дополнению кода и многому другому, ветеран-автор Нил Голдштейн поможет вам получить прочную основу для этой сложной темы и отфильтрует все ненужные сложные технические термины. Не предполагает предварительных знаний программирования и сохраняет ясный и интересный тон.
Objective-C for Absolute Beginners: iPhone, iPad and Mac Programming Made Easy
Книга для полных новичков в программировании. Эта книга научит создавать приложения для яблочной продукции. Автор проведёт вас по теории, которая затрагивает переменные, проектные структуры данных, классы, объекты и методы.
Также покажет, как выстраивать программную логику. Гарри Беннетт покажет гибкость инструментов разработчиков Apple. А ещё Гарри продемонстрирует, как соединить Swift и Objective-C. А это будет полезно для Swift-программистов.
Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs (Effective Software Development Series)Мэтт Галлоуэй в «Эффективном Objective-C 2.0» собрал 52 метода, рекомендации и реальные примеры кода этого языка. Всё это должно показать возможности и преимущества языка.
Через фрагменты кода автор раскрывает тонкости языка, подводные камни и трудные моменты, которые в конечном итоге научат писать эффективный код для выполнения любых задач. А ещё Галлоуэй показывает отношения и взаимодействия между объектами, учит писать классы, раскрывает возможности платформ Cocoa и Cocoa Touch.
Параллельно с языком Мэтт затрагивает платформу Foundation и современные системные библиотеки (Grand Central Dispatch, например).
Learning Cocoa with Objective-C: Developing for the Mac and iOS App StoresНачните работать с Cocoa и Objective-C и начните разрабатывать приложения на платформах iOS и OS X. Четвертое издание этой книги охватывает все, что вам нужно для создания приложений для iPhone, iPad и Mac.
Вы узнаете, как работать с Xcode IDE, библиотекой Foundation Objective-C и другими инструментами разработчика. Например, Event Kit Framework и Core Animation. Попутно вы будете создавать примеры проектов, в том числе приложение на Objective-C, простое приложение видеоплеера и приложение, которое отображает события календаря для пользователя.
В учебнике раскрыто много тем: жизненный цикл приложения, Cocoa и Cocoa Touch, работа с AV Foundation для отображения видео и аудио, взаимодействие с внешним миром с Core Location и Core Motion.
Pro Objective-C предоставляет исчерпывающее, всестороннее руководство по языку, его времени выполнения и ключевым API. Он объясняет ключевые концепции Objective-C в простой для понимания форме, а также предоставляет подробное описание его более сложных функций. Кроме того, в книгу включены многочисленные практические примеры (выдержки из кода и полные приложения), которые демонстрируют, как применять в коде то, что вы изучаете.
Книга начинается с изучения основных функций Objective-C и ключевых языковых элементов. После рассмотрения основ он приступает к углубленному изучению возможностей динамического программирования Objective-C и системы времени выполнения. Далее в книге рассказывается о Foundation Framework, базовом уровне API, который можно использовать для любой программы Objective-C.
Каждая тема подробно освещена и содержит подробную информацию, необходимую для эффективной разработки кода Objective-C. Наиболее важные особенности подробно рассматриваются. Каждая глава содержит множество примеров, которые демонстрируют как силу, так и тонкость Objective-C.
Эта книга охватывает новейший язык программирования Objective-C. Используйте эту книгу в качестве краткого справочного руководства (например, шпаргалку) для Objective-C.
Для начинающих и для чайников эта книга представляет собой пошаговое руководство по пониманию объектно-ориентированного программирования с помощью Objective-C. Если вы опытный разработчик, который хорошо знает хотя бы один современный язык программирования, эта книга призвана научить вас думать и программировать на языке программирования Objective-C.
Learn Objective-C on the Mac (Learn Series)Это книга для тех, кто хочет научиться программировать собственные приложения в Mac OS X.
Вас ждёт полный курс по основам Objective-C с использованием бесплатных инструментов Xcode Apple, введение в ООП, полный охват наследования, композиции, инициализации объекта, категорий, протоколов, управления памятью и организации исходных файлов, краткая экскурсия по основам Cocoa и AppKit.
Для новичков сюда вставили полезное руководство по обучению для не-C разработчиков. Вам дадут понимание переменных и как создавать собственные структуры данных, работу с файловой системой и прочее.
Objective-C Quick Syntax Reference (Expert’s Voice in Objective-C)Учебник представляет собой сокращенный код и синтаксис языка программирования Objective-C. Предоставлен синтаксис Objective-C в хорошо организованном формате.
В этой книге вы не найдете никакого технического жаргона, раздутых образцов, извлеченных уроков истории или остроумных историй. То, что вы найдете, является кратким, точным и доступным языковым справочником. Книга заполнена полезной информацией и обязательна для любого программиста Objective-C.
Windows, Mac или Linux — Что выбрать для веб-разработки?
1 year ago | 20.6K
Привет с вами Сергей Никонов. Я получаю большое количество вопросов и в этом видео я постараюсь ответить на популярный вопрос — какую операционную систему выбрать для веб-разработки?
Уже много много лет не утихают споры о том, что лучше Windows, Mac или Linux. И в этом нет ничего удивительного, потому что у каждой ОС есть свои плюсы и минусы.
Видео Windows, MacOS или Linux
Итак, начнем с Linux
Linux — обобщенное название, в честь программиста Линуса Торвальдс, который написал так называемое ядро операционной системы (в вкратце, ядро — важное звено в операционной системе, которое координирует работу всех запущенных программ).
Разновидностей операционных систем на базе Linux существует огромное количество, посмотрите например этот список из википедии.
Ты точно найдешь для себя любимый дистрибутив и одна из особенностей таких операционных систем, что ты можешь настроить и изменить систему полностью под свои нужды или даже выпустить свою операционную систему на базе линукс.
Например, ты можешь полностью изменить дизайн, сделать футуристический внешний вид, в лучших традициях фильмов в жанре cyberpunk.

Операционная система на базе Linux создана программистами для программистов.
Дисклеймер
Следующая часть статьи содержит информацию о программном обеспечении, использование которого, в злонамеренных целях запрещено законами большинства стран. Информация носит ознакомительный характер. Автор видео и текста не призывает нарушать законы вашей страны. Ответственность за использование в злонамеренных целях полученную далее информацию ложится полностью на вас.
Есть даже специальные дистрибутивы Linux для хакеров, один из самых популярных — это Kali Linux. В нем из коробки доступны программы для взлома Wi-Fi, программы поиска уязвимостей на сервере, различные брутфорсеры, программы для сканирования сети и много всего полезного, для специалистов по информационной безопасности.
Из плюсов всех дистрибутивов Linux стоит отметить наличие программы терминал. Эта невзрачная на вид программа позволяет полностью управлять компьютером, серверами и многие операции производить через терминал намного быстрее, чем через программы с графическим интерфейсом. Стоит заметить, что большая часть сайтов в интернете работает на серверах на базе Linux. И если ты повседневно используешь Linux, а также программу Терминал, у тебя не будет проблем управлять твоими сайтами через эту программу.
Кстати, если ты совсем незнаком с терминалом Linux, рекомендую пройти мой курс Linux/GIT/Hosting на сайте FructCode. В нем ты узнаешь основы работы с терминалом Linux для веб-разработчика, научишься подключаться к серверам хостинга, на которых будет размещен твой веб-сайт, а также узнаешь что такое контроль версий кода GIT и как его использовать.
А сейчас давайте рассмотрим плюсы и минусы использования Linux
Выбрав ОС на базе Linux, ты найдешь все необходимые программы для разработки.
И редакторы кода, например PHPStorm, один из моих любимых редакторов кода Visual Studio Code, о нем я кстати рассказывал в одном из своих предыдущих видео, ссылка есть в описании.
Также выпускается достаточно большое количество аналогов программ как частными программистами, так и сообществом Linux. Да, еще одно из преимуществ Linux, что это свободная операционная система, пользоваться ей можно бесплатно, поддерживают Linux сообщества программистов и различные компании, как мелкие, так и крупные, например Microsoft.
Из минусов стоит отметить, что не все привычные тебе программы есть в Linux. Например, нет под Linux программы iTunes или в Linux нельзя напрямую установить программы от компании Adobe, например Photoshop, Illustrator и другие. Есть Steam под Linux, но не все игры из своего стима ты сможешь запустить.
Но не спеши ставить крест на этой операционной системе. Например Steam позволяет в Linux запускать некоторые игры в специальном режиме, без дополнительных программ. Для включения этого, пока еще экспериментального режима, в программе Steam нужно нажать буквально несколько кнопок в настройках и с высокой вероятностью, твоя любимая игра запустится в Linux
Что касается других программ и игр, для одних есть аналоги, например альтернативой iTunes для прослушивания музыки может быть не менее крутая программа и сервис под названием Spotify. Многие программы можно запускать с помощью специальной программы, которая называется Wine.
Простыми словами устанавливается программа Wine, скачивается необходимый exe-шник Windows программы и запускается через Wine. Некоторые программы имеют веб-интерфейс и работают в браузере.
Следующий минус Linux — это отсутствие драйверов для некоторых устройств. Но из плюсов стоит отметить, что драйвера под устройство может выпустить как производитель, так и Linux сообщество.
Из плюсов стоит отметить, что существуют Linux дистрибутивы, которые хорошо подходят для слабых компьютеров.
Если ты хочешь попробовать поработать с Linux и не знаешь с какого дистрибутива начать, попробуй Ubuntu. Это достаточно популярный и дружественный дистрибутив Linux. Ubuntu записывается на флешку и устанавливается в пару кликов. Скачать Ubuntu можно здесь.
И да, если ты на каком-нибудь из форумов получишь совет, что лучший дистрибутив Linux — это собранный из исходников или рекомендацию ставить какую-нибудь Gentoo в качестве домашней ОС или все вместе, не трать свое время.

Операционная система MacOS
Следующая операционная система к рассмотрению — это MacOS.
Эта операционная система поставляется вместе с компьютерами компании Apple. Легально вы не сможете установить MacOS на ваш компьютер, если это компьютер не от Apple.
Перейдем к плюсам и минусам MacOS
MacOS — это Unix-подобная операционная система. Простыми словами — это как Linux, только с закрытым исходным кодом, написанная и поддерживаемая только компанией Apple. Плюс в том, что если вы ранее работали в Linux, в MacOS вы найдете привычный терминал, который конечно будет немного отличаться, но функциональность и большинство команд будут как в Linux.
Под MacOS есть огромное количество программ, как для веб-разработки, так и для мобильной разработки под устройства iOS. Иными словами, если вы когда-нибудь заходите попробовать писать приложения для iPhone и публиковать их в App Store, без MacOS вы не сможете это сделать.
MacOS хорошо подходит под веб-разработку. Для этой операционной системы вы найдете все необходимые программы и инструменты. Если ты любишь поиграть в игры, в перерыве от написания кода, под MacOS портировано достаточно большое количество популярных игр.
Mac используют большое количество разработчиков по всему миру из-за надежности MacOS, удобных комплектующих, особенно клавиатуры MacBook удобны для печатания кода.
Из минусов стоит отметить — это цена. Маки достаточно дорогие. Тем не менее, мак служит долго, и при должном обращении на вторичном рынке остается долгое время востребован, поэтому продать БУ мак по выгодной цене не составит труда.
Операционная система Windows
Windows очень популярная операционная система и для Windows есть практически все программы, работает практически со всеми устройствами и в противовес этому минус, что из-за большой популярности под нее пишутся большое количество вирусов, бэкдоров, скрытых майнеров криптовалюты, рекламных программ.
Под Windows есть всевозможные редакторы кода, инструменты для разработки, как и в Linux, но у них есть свои особенности и минусы. Например, если у вас Windows Home, вам потребуются дополнительные действия при работе с Docker или функционал некоторых инструментов для разработки не будет полноценно работать.
Windows часто поставляется вместе с компьютером, однако со временем текущая редакция Windows вам может не подойти для некоторых задач и придется покупать нужную редакцию Windows.
Итак подведем итоги:
Linux
- Подходит для разработки — 5 звезд
- Подходит для универсального компьютера (игры, программы) — 3 звезды
- Кастомизация (настройка для себя) — 5 звезд
- Цена — Бесплатно
MacOS
- Подходит для разработки — 5 звезд
- Подходит для универсального компьютера (игры, программы) — 4 звезды
- Кастомизация (настройка для себя) — 3 звезды
- Цена — Бесплатно.
Легально устанавливается только на компьютеры Mac.
Windows
- Подходит для разработки — 4 звезды
- Подходит для универсального компьютера (игры, программы) — 4 звезды
- Кастомизация (настройка для себя) — 3 звезды
- Цена — Платно
установка — Look At Me
В новом выпуске блога о программировании я перехожу к тому, с чего, пожалуй, следовало начать — какие инструменты нужны для написания кода на Python и как ими пользоваться.
Предыдущий выпуск
Я учусь программировать
на Python: классы и объекты
Мы начали писать игру, но я совсем забыл рассказать об инструментах для работы с Python, о чём меня просили ещё несколько недель назад. В прошлый раз мы ввели понятие классов, и обычно для описания каждого класса используется отдельный файл — а потому мы больше не сможем ограничиваться одним большим куском кода. У нашей игры LAM-40 будет основной скрипт, который будет обращаться к другим скриптам, описывающим классы, с помощью ключевого слова import. Одним из скриптов будет созданный нами в прошлый раз bureaucrat.py. Прежде чем мы продолжим расширять описание этого класса, давайте создадим себе на компьютере простую экосистему для работы с Python.
Для начала зайдите в раздел Downloads на официальном сайте Python, скачайте там последнюю версию интерпретатора языка — сейчас это 3.4.3 — и установите её. На Mac OS X всё будет по-обычному, а на Windows нужно проверить, чтобы на стадии Customize были включены все компоненты, в том числе Add python.exe to Path. После установки на Windows также потребуется перезагрузка. Обратите внимание, что в Mac OS X Python включён по умолчанию — но вторая, а не третья ветка. Чтобы зайти в оболочку интерпретатора третьей версии языка, в Terminal нужно ввести и запустить команду python3, в Windows же следует набрать в «Командной строке» просто python.
Когда вы в первый раз зайдёте в оболочку интерпретатора, советую обязательно просмотреть самое известное «пасхальное яйцо» Python — The Zen of Python, написанный известным энтузиастом языка Тимом Петерсом. Для этого запустите в оболочке команду import this, и вы сможете ознакомиться с основными тезисами философии Python — иначе говоря, как им лучше пользоваться. Вот перевод на русский язык:
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость важна.
Особые случаи не настолько особые, чтобы нарушать правила.
Хотя практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить, то идея плоха.
Если реализацию легко объяснить, то идея, возможно, хороша.
Пространства имён — отличная штука. Давайте делать их больше!
Тем, кому этого будет мало, советую ввести команду import antigravity и посмотреть, куда вы попадёте. Так вы сможете убедиться, что у Python одно из лучших сообществ энтузиастов.
Следующий шаг — работа с PIP, инструментом, который устанавливает сторонние библиотеки Python. Он должен быть доступен вместе со скаченной вами последней версией Python. Чтобы воспользоваться PIP, набирайте команды из терминала или командной строки (внимание! — не из оболочки Python). Возможно, ваша версия PIP будет устаревшей, а потому обновите его, введя команду pip install —upgrade pip. Установить пакеты можно командой pip install, после которой через пробел должно следовать имя устанавливаемой библиотеки — его можно посмотреть в базе. Если у вас нет нужных привилегий, вам могут потребоваться ключевое слово sudo или команда —user. Для удаления библиотек используется команда pip uninstall, для перечисления всех установленных библиотек — pip list. Чтобы посмотреть подсказки, какие команды можно использовать, наберите pip -h или просто pip.
Код на Python можно писать в любом текстовом редакторе — главное, сохранять скрипт с расширением .PY. Впрочем, программировать намного удобнее в специализированном приложении — я использую для этого Sublime Text, но ничто не мешает вам подобрать себе что-нибудь ещё по вкусу и возможностям. Sublime Text хорош удобным интерфейсом, а также тем, что здорово расширяется и с ходу поддерживает основные языки программирования. Вот как выглядит в нём класс, написанный нами в прошлый раз:
На этом, в общем-то, всё — мы готовы приступать к работе. Чтобы запустить скрипт, в терминале или командной строке нужно ввести команду python3 или python, а вслед за ней после пробела — название скрипта с расширением.
Теперь у нас есть все нужные для работы инструменты. В следующий раз мы продолжим писать игру, за которую взялись в предыдущем выпуске блога. Если вам что-то непонятно, пишите комментарии под материалом и в социальных сетях — буду рад и любым другим отзывам. Если вы более опытный в программировании человек, чем я, то с удовольствием выслушаю содержательную критику. Спасибо, и до следующего раза!
Смотрите также:
ПОЛНЫЕ КУРСЫ PYTHON НА CODEACADEMY И TREEHOUSE*
* — платные курсы, но есть пробный период
РАЗВИТИЕ ПРОГРАММИСТСКОГО МЫШЛЕНИЯ НА UDACITY
Официальный сайт PYTHON
Официальный сайт Sublime Text
Mac для чайников — macOS, основы работы для начинающих на Мак
Первичная настройка компьютера
При первом включении компьютера Mac, Вас встретит мастер настройки Setup Assistant.
В процессе настройки Вам предстоит пройти несколько окон на которых Вам будет предложено создать персональную учетную запись Apple ID. Если Вы использовали устройства Apple ранее, такие как iPhone или iPad, то такой идентификатор у Вас уже есть.
Основным предназначением Setup Assistant является создание учетной записи нового пользователя, если у Вас таковой нет на данный момент.
Помимо создания идентификатора Apple ID, мастер установки предложит задать имя и пароль для Вашей учетной записи компьютера. Эта информация потребуется не только для авторизации на компьютере Mac, но и изменения определенных настроек и установки программного обеспечения.
Далее, Setup Assistant запросит разрешение на активацию таких функций как FileVault, iCloud Keychain и Find My Mac.
Здесь остановимся более подробно на новых терминах, которые могут сбить с толку не только новичка, но и бывалого пользователя компьютеров Apple.
FileVault – это система шифрования данных, которая использует алгоритм шифрования XTS-AES-128. Такой механизм защиты пользовательских данных обеспечивает очень высокий уровень безопасности.
Принцип работы FileVault довольно прост — системные и пользовательские данные переносятся с незащищенной файловой системы в зашифрованную область дискового пространства.
После того, как процесс защиты данных завершится, все последующие операции с файлами будут происходить в защищенном режиме автоматически.
iCloud Keychain — это технология Apple, при помощью которой сохраняются личные пользовательские данные — логины и пароли. При активации данной функции, ваши учетные данные будут храниться на macOS в защищенном виде.
Помимо логинов и паролей, iCloud Keychain работает с данными кредитных карт, что позволит Вам мгновенно оплачивать покупки.
Но основным предназначением iCloud Keychain все-таки является автоматический ввод паролей вместо пользователя, что несомненно очень удобно и значительно ускоряет работу, особенно в сети Интернет. Следует также помнить, что на одном компьютере можно хранить несколько связок ключей.
Find My Mac — это сервис компании Apple, который позволяет удаленно отслеживать местоположение не только устройств работающих на iOS, но и компьютеров Mac, часов Apple Watch и гарнитуры AirPods. Данный функционал тесно интегрирован в устройствами работающими на iOS и macOS.
Если Ваш компьютер Mac был утерян, то использование данного сервиса возможно сможет помочь Вам найти его и защитить вашу личную информацию. Однако, чтобы технология начала работать, вам следует настроить Find My Mac, прежде чем он пропадет.
Примечание
Если в процессе первичной настройки Вы не активировали ни одну из описанных выше функций, то Вы всегда сможете это сделать позже.
Запуск программ Windows на Mac
Для некоторых программ Windows не существует адекватного аналога Mac. Благодаря эмулятору Windows «Winebottler» вы также можете использовать программное обеспечение Windows в Mac OS X без необходимости установки параллельной операционной системы.
- Скачайте Winebottler на свой Mac и установите программу. При загрузке убедитесь, что у вас установлена правильная версия для Mac OS X. Перед загрузкой вы увидите рекламу — но программа бесплатна.
- Запустите Winebottler, посмотрите список программ Windows, которые вы можете установить немедленно. Если вы хотите установить одну из этих программ, просто нажмите соответствующую кнопку «Установить».
- После того как вы указали местоположение, например «Документы», все, что вам нужно сделать, это подтвердить «Сохранить».
Затем Winebottler создает приложение для выбранной программы Windows, которое может запускать Mac OS X. Процесс может занять некоторое время. После завершения вы получите сообщение «Префикс создан успешно», который вы должны подтвердить «OK».
После установки программы Windows на Mac с помощью Winebottler ее так же легко запустить, как и программы Mac.
- В Finder перейдите в предопределенное место для программного обеспечения Windows. Там вы найдете файл программы, созданный Winebottler.
- Дважды щелкните файл программы, чтобы запустить программу и использовать ее, как любое другое приложение Mac.
Установите другие программы Windows с Winebottler
Winebottler поставляет большое количество программ для Windows, готовых к установке. Если нужного вам программного обеспечения или игры нет в списке, вы все равно можете установить его.
- Запустите Winebottler и нажмите на вкладку «Дополнительно» выше.
- Следующий экран выглядит немного смущающим на первый взгляд.
Не откладывай. На самом деле важна только строка «Это установщик, запустите его». (см. рисунок).
- Если вы загрузили программу Windows из сети, она содержит файл EXE или MSI. Это запустит программу под Windows. Чтобы сделать программу Mac совместимой, в Winebottler нажмите «Выбрать файл» и выберите соответствующий файл EXE или MSI. Но сначала проверьте, не является ли EXE-файл упакованным. В этом случае сначала найдите файл, например, с помощью бесплатного инструмента «Unarchiver».
- Чтобы запустить программу Windows позже без инструмента Wine на Mac, необходимо создать пакет приложений. Опцию можно найти чуть дальше вниз по экрану. Поэтому поставьте галочку «Автономно: включите Wine.app, чтобы пользователю не нужно было его устанавливать».
- Нажмите «Установить», Winebottler попросит вас указать местоположение и имя файла. Здесь имеет смысл назвать приложение аналогом программного обеспечения Windows.
- При нажатии «Сохранить» Winebottler также запускает установщик Windows.
Следуйте инструкциям по установке, как и следовало ожидать от Windows. Но не меняйте пути.
- Если в конце установки предлагается опция «Пуск», не нажимайте на нее, а выйдите из программы установки. После этого Winebottler работает еще дальше, поэтому вам придется немного подождать.
- Когда эмулятор будет готов, у вас спросят файл запуска. Как правило, вы можете просто подтвердить значение по умолчанию «ОК». Затем вы получите сообщение об успехе от Winebottler. Это подтверждается нажатием «ОК».
- Чтобы запустить программу Windows на вашем Mac, перейдите в Finder к месту, указанному в пункте 5. Он начинается с двойного щелчка по программе, что может занять некоторое время, в зависимости от программы.
Вы хотите использовать не только отдельные программы Windows на Mac OS X, но и операционную систему Windows? Затем прочтите также, как использовать несколько операционных систем в Mac OS X.
Начало работы с программированием на macOS
Уважаемые читатели, позвольте мне поприветствовать вас и начать с того, что это руководство является началом нового пути и новых исследований, поскольку это первое из серии руководств по новой теме: программирование на macOS !
Разработка для macOS и создание настольных приложений — замечательный процесс, если вы хотите пойти по этому пути. Если вы работаете с iOS, как и я, вам будет интересно и одновременно сложно создавать приложения для обеих систем.Что делает его еще лучше, так это один простой факт: между программированием iOS и macOS есть много общего. Несколько фреймворков и SDK, сам язык (Swift), даже стиль кодирования, который использовался, остались почти такими же. Но программирование под macOS не предназначено для людей, уже являющихся разработчиками iOS. Новые программисты, которые начали изучать Swift и хотят создавать свои собственные настольные приложения, также могут последовать их примеру!
Начиная с этого руководства, мы познакомимся и познакомимся с ключевыми концепциями программирования для macOS.Я планирую представить различные темы, для которых я выделю их наиболее важные концепции и покажу методы, практические рекомендации и лучшие практики. Очевидно, что потребуется серия книг, чтобы охватить все, что касается программирования для macOS, а не только серию руководств.
Однако то, что я собираюсь показать вам, начиная с этого руководства и далее, не только поможет вам начать, но и позволит вам создавать полные приложения, и это направит вас на правильный путь, чтобы вы знали, как смотреть дальше. темы, которые вас интересуют.По возможности мы будем проходить процесс создания нового приложения для macOS, которое в конце будет полезно. Что-то, что вы можете взять с собой, когда дочитаете каждый пост.
Итак, еще раз добро пожаловать в новое увлекательное путешествие! Давайте вместе создадим наше первое приложение для macOS!
Наша дорожная карта для изучения программирования на macOS
В этом посте мы познакомимся с основами приложения для macOS, создав простое, но в то же время полезное для многих разработчиков приложение: средство просмотра шрифтов , которое позволит нам выбирать семейства шрифтов, и оно будет отображать PostScript называет доступных шрифтов.Разъяснение, почему это полезно: имя PostScript — это имя шрифта, которое мы пишем в коде при создании объекта NSFont
. Обычно это не то же самое, что и имя файла шрифта, и, не зная PostScript, невозможно создавать объекты шрифтов в коде или добавлять пользовательские шрифты в проекты. Существует ручной процесс раскрытия имен PostScript, как описано здесь, но почему бы не иметь приложение для macOS, которое позволит нам получить его мгновенно?
Наше меню сегодня содержит много ключевых вещей:
- Как создать новый проект macOS.
- Какие самые важные части сгенерированного проекта.
- Что такое оконный контроллер и как настроить содержащееся в нем окно, включая размер, положение, заголовок и многое другое.
- Как добавить графические элементы управления в контроллер представления.
- Как взаимодействовать с этими графическими элементами управления, обновлять их значения и реагировать на действия, запускаемые ими.
- Как создать дополнительные оконные контроллеры.
- Как изменить внешний вид окна так, чтобы оно выглядело как вспомогательная панель или вспомогательная панель .
- Как программно загрузить, представить и закрыть окно.
В этом посте есть еще кое-что для обсуждения помимо перечисленных выше. Мы поговорим о новых классах, которые окажутся чрезвычайно ценными для нашего дела, мы поговорим о настраиваемой логике, которую мы будем реализовывать в различных частях приложения, и мы увидим мелкие или большие детали, которые в конце полный проект.
Вот что у вас будет в руках к тому времени, когда вы выйдете отсюда:
Создание вашего первого приложения для Mac
Запустите Xcode, а затем выберите создание нового проекта:
На первом шаге появившегося руководства выполните следующие действия:
- Выберите платформу macOS .
- Щелкните по опции Cocoa App в разделе Application .
Как только вы это сделаете, пора «крестить» проект и установить всю остальную исходную информацию. Поскольку мы собираемся создать нашу программу просмотра пользовательских шрифтов, почему бы не назвать ее так, Font Viewer ? Задайте это значение в поле Product Name и настройте другие свойства, такие как Team, Organization Name, Organization Identifier. Как правило, убедитесь, что ваше окно выглядит следующим образом:
Наконец, выберите место для сохранения проекта на диске и завершите процесс создания.
Запуск приложения
Открыв проект Font Viewer в Xcode, нажмите Cmd + R на клавиатуре, чтобы запустить приложение. Вот что вы увидите на экране:
Поздравляем! Вы только что запустили свое первое приложение для macOS!
Пока это пустое окно, но это не имеет значения, мы его изменим. Посмотрите и поиграйте с этим. Вы заметите, что стандартное поведение и атрибуты назначаются окну по умолчанию, например, изменение размера, перемещение или переход в полноэкранный режим.Кроме того, на верхней панели есть главное меню, в котором уже есть некоторые общие функции, а некоторые другие просто отключены, так как не запускают никаких действий.
Изучение проекта
Если у вас есть предыдущий опыт разработки под iOS, вы обнаружите, что проект MacOS выглядит примерно так же, как проект iOS. Project Navigator перечисляет все файлы и группы, вкладки , такие как General, Capabilities, Build Settings и т. Д. тоже здесь, и в целом все выглядит знакомо.Однако отображаемые настройки и параметры специфичны для macOS.
В навигаторе проекта вы найдете все файлы и группы, которые Xcode создает по умолчанию для приложения Какао. Что здесь нового (сравнивая снова с проектами iOS), так это файл .entitlements . Это файл со списком свойств, который содержит прав, предоставленных приложению. В большинстве случаев нет необходимости редактировать его вручную. Изменения, внесенные на вкладке «Возможности», обновляют этот файл автоматически.
Кроме этого, автоматически создаются два файла кода. AppDelegate.swift и ViewController.swift . Через некоторое время мы добавим дополнительный код в ViewController.swift. Также есть:
- Файл Main.storyboard для графического дизайна пользовательского интерфейса приложения.
- Каталог Assets , куда должны быть добавлены любые изображения или другие ресурсы, которые должны быть включены в пакет приложения.
- Файл Info.plist , содержащий различные настройки проекта.
Глядя на вкладку General целевой программы просмотра шрифтов, в разделе Identity вы можете найти идентификатор пакета, а также версию и номер сборки.Но что более интересно, так это всплывающее окно Application Category , где вы можете найти все доступные категории приложений, также найденные в App Store. Здесь мы устанавливаем категорию нашего приложения. Какая категория нам здесь подходит? Мы могли бы назначить его в разделе «Инструменты разработчика», поскольку он будет отображать информацию о шрифте, но мы также можем разместить его в категории «Утилиты». Прямо сейчас это не имеет значения, поскольку мы не собираемся его публиковать, но не забудьте выбрать категорию для своего приложения, прежде чем отправлять его в App Store (все еще нормально, если вы этого не сделаете, вы можете выбрать категорию приложения на в App Store, но почему бы не сделать это здесь?).
Если посмотреть немного ниже, вы увидите раздел Deployment Info . Здесь вы указываете минимальную версию macOS, необходимую для запуска вашего приложения. Вы можете запустить его только в macOS Mojave (10.14) или включить его в High Sierra (10.13) или более старых версиях. Помните об этом варианте, если вы когда-нибудь захотите поддерживать старые операционные системы.
Не торопитесь, чтобы изучить все аспекты проекта. Переключитесь на вкладку «Возможности» и посмотрите, какие варианты доступны, или перейдите в «Настройки сборки» и посмотрите, не найдете ли вы там что-то интересное.Когда вы закончите исследование, давайте посмотрим, что содержится в файле Main.storybard .
Изучение главной раскадровки
Если щелкнуть главный файл раскадровки в Project Navigator, автоматически созданный пользовательский интерфейс по умолчанию откроется в Interface Builder. Любое приложение на основе какао содержит три сцены по умолчанию :
- Оконный контроллер , , который управляет содержащимся в нем окном (например, загружает, показывает и закрывает его, сохраняет состояние окна, настраивает его заголовок и т.
Д.).
- Контроллер представления , , который связан с контроллером окна и отображается автоматически вместе с окном. Сцена View Controller — это место, куда добавляются графические элементы управления Cocoa.
- Сцена Application , которая представляет собой графическое представление экземпляра
NSApplication
, который управляет основным циклом событий приложения и ресурсами, используемыми всеми объектами этого приложения (согласно документации Apple). Главное меню приложения со всеми подменю и пунктами меню содержится в этой сцене.
А теперь остановимся на некоторых интересных деталях. Щелкните окно в сцене оконного контроллера и откройте Attributes Inspector на панели инспекторов Xcode. Вот что вы должны увидеть:
Для некоторых из них простое включение или отключение параметров немедленно оказывает визуальный эффект в окне. Для некоторых других это не так. Позвольте мне выделить наиболее важные из них, но если вам нужна информация о вариантах, не упомянутых ниже, не стесняйтесь искать их в Интернете.
- В текстовом поле Title вы можете редактировать и изменять имя окна. Значение по умолчанию — «Окно», но вы определенно не хотите, чтобы приложение с таким названием «понравилось». Кроме того, вы можете просто скрыть его, просто установив флажок Hide Title . Позже вы увидите, как программно изменить этот заголовок.
- Полная строка заголовка может стать скрытой, если снять флажок Строка заголовка . Опасность заключается в том, что пользователи не смогут перемещать окно, но иногда это может быть желательной функцией.
- Включите Прозрачная строка заголовка , чтобы строка заголовка не отличалась от остальной части окна.
- Закрыть опция включает небольшую красную кнопку в левой части каждого окна, которая позволяет вам закрыть его. Если вы отключите это, убедитесь, что у пользователей будет возможность закрыть окно.
- Оставьте Свернуть включенным, если вы хотите, чтобы ваше приложение было свернуто в док.
- Если вы не хотите, чтобы ваше приложение отображалось в полноэкранном режиме, просто отключите параметр Изменить размер .Маленькая зеленая кнопка в строке заголовка окна погаснет.
- Restorable сохраняет конфигурацию окна между запусками ( нормальных запусков, не работает через Xcode ). Отключите это, если вы хотите, чтобы ваше окно отображалось в одном и том же размере и положении каждый раз, когда пользователи запускают ваше приложение.
- Все приложения macOS должны отображать окно при запуске, если только они не являются приложениями-агентами (приложения верхнего меню, мы поговорим о них в следующей публикации) . Итак, окно приложения по умолчанию всегда видно.Однако, если приложение содержит больше окон, то по умолчанию они не отображаются во время запуска. Если вы хотите, чтобы при запуске было видно больше, чем окно по умолчанию, просто включите опцию Visible At Launch для каждого дополнительного окна, в котором вы хотите иметь такое поведение.
- Hide On Deactivate заставляет окно просто исчезать, когда оно больше не находится в фокусе (при переключении на другое приложение). Окно снова появится, когда вы переключитесь на свое приложение через док-станцию или при нажатии Cmd + Tab и его выборе среди других запущенных приложений.
- Включить Release When Closed , чтобы освободить память, выделенную окну после его закрытия. Однако, если окно управляется оконным контроллером, этот параметр просто не учитывается.
- Всегда отображать всплывающие подсказки позволяет отображать маленькие всплывающие подсказки, когда мышь останавливается над элементом управления пользовательского интерфейса. Однако текст всплывающей подсказки должен быть установлен вами для каждого элемента управления, для которого вы хотите отображать всплывающую подсказку. Используйте Identity Inspector, чтобы сделать это для каждого элемента управления вашего приложения.
Оставив остальные параметры по умолчанию, убедитесь, что окно соответствует общей среде macOS и соответствует рабочим процессам, с которыми пользователи уже знакомы. Конечно, вы можете найти дополнительную информацию о них и их назначении, если хотите, я просто выделил здесь самые важные.
Не снимая выделения с окна, покажите Size Inspector . Здесь вы можете установить размер содержимого окна, допустимый максимальный и минимальный размер, а также начальное место окна на экране.
Установка размера содержимого (ширины и высоты) делает очевидным, она изменяет размер содержимого окна по умолчанию. Если оставить минимальный размер содержимого и максимальный размер содержимого снятыми флажками, пользователи могут изменить размер окна и сделать его настолько маленьким или большим, насколько захотят. Чтобы ограничить минимальный размер содержимого, чтобы пользователи не могли уменьшить его дальше, просто установите флажок Minimum Content Size и укажите значения для минимальной ширины и высоты. Аналогичным образом установите флажок Максимальный размер содержимого , чтобы окно не увеличивалось больше, чем указанные вами значения.
Чтобы сохранить постоянный размер содержимого и запретить изменение размера, установите одинаковые значения для минимального и максимального размера содержимого.
По умолчанию окно отображается в нижнем левом углу экрана. Вы можете изменить это, перетащив образец окна в маленькое окно предварительного просмотра экрана или просто изменив исходное положение , значения X и Y . Просто помните: координаты в macOS не похожи на iOS. Точка Y = 0 — это нижняя сторона экрана, а не верхняя.
Windows также может отображаться по центру экрана. Для этого нажмите всплывающие кнопки Пропорционально по горизонтали и Пропорционально по вертикали и выберите По центру по горизонтали и По центру по вертикали соответственно. Образец экрана в Инспекторе размеров будет обновлен, и вы можете проверить это, запустив приложение; окно будет показано в центре экрана.
Настройка пользовательского интерфейса
После этого краткого обзора проекта macOS давайте поработаем над нашим приложением. Для начала выберите Window по умолчанию и откройте Size Inspector на панели инспекторов. Измените размер содержимого на 370 × 250 . Затем выберите представление контроллера представления и сделайте то же самое.
Теперь давайте добавим графические элементы управления в представление по умолчанию для контроллера представления.
Начните с нажатия кнопки библиотеки в Xcode, чтобы открыть библиотеку объектов :
В библиотеке объектов введите всплывающее окно в верхнем поле поиска:
Выберите элемент Pop Up Button и перетащите его в представление контроллера представления.Выберите всплывающий элемент управления, который вы только что перетащили на контроллер представления, и нажмите Cmd + D на клавиатуре, чтобы дублировать его.
Выберите обе всплывающие кнопки и добавьте следующие ограничения: Верх: 20, интервал: 20, конец: 20, Высота: 21 .
Следуя вышеуказанным шагам, давайте добавим также кнопку и метку :
- Снова откройте библиотеку объектов и введите , кнопку .
- Перетащите кнопку , чтобы отобразить вид контроллера под всплывающими окнами.
- Установите ограничения: В конце: 20, Снизу: 20, Ширина: 120, Высота: 21 .
- Дважды щелкните кнопку, чтобы изменить ее заголовок на: Показать все
- Откройте библиотеку объектов в последний раз и введите метка в поле поиска.
- Перетащите объект метки в контроллер представления под всплывающими окнами, но над кнопкой.
- Задайте следующие ограничения для метки: Верх: 20, интервал: 20, конец: 20, высота: 80 .
В итоге ваше представление должно быть похоже на это:
Первая всплывающая кнопка будет отображать все доступные семейства шрифтов в системе , а вторая будет содержать все доступные типы шрифтов (например, полужирный, курсив и т. д.) для любого выбранного семейства шрифтов в первом всплывающем окне.
Label покажет PostScript-имя выбранного семейства и типа шрифтов, отформатированное соответствующим образом.
Наконец, кнопка «Показать все» будет использоваться для одновременного отображения всех доступных типов шрифтов из семейства шрифтов.Подробнее об этом позже.
Свойства IBOutlet и методы IBAction
Вскоре мы придем к необходимости взаимодействовать с элементами управления, которые мы только что добавили, поэтому необходимо создать и подключить к ним свойства IBOutlet и методы IBAction. Откройте файл ViewController.swift и в начало класса добавьте следующие объявления свойств IBOutlet:
@IBOutlet weak var fontFamiliesPopup: NSPopUpButton! @IBOutlet weak var fontTypesPopup: NSPopUpButton! @IBOutlet weak var sampleLabel: NSTextField!
@IBOutlet weak var fontFamiliesPopup: NSPopUpButton!
@IBOutlet weak var fontTypesPopup: NSPopUpButton!
@IBOutlet weak var sampleLabel: NSTextField!
|
Также определите следующие методы IBAction:
@IBAction func handleFontFamilySelection (_ sender: Any) { } @IBAction func handleFontTypeSelection (_ sender: Any) { } @IBAction func displayAllFonts (_ sender: Any) { }
@IBAction func handleFontFamilySelection (_ отправитель: Любой) {
}
@IBAction func handleFontTypeSelection (_ отправитель: Любой) { IBB
9000All (_ отправитель: Любой) {
}
|
Вернуться к Main. файл раскадровки , выберите объект контроллера представления в структуре документа:
На панели инспекторов выберите, чтобы открыть инспектор Connections , где вы найдете все свойства IBOutlet и методы IBAction, объявленные ранее. Выполните подключения следующим образом:
-
fontFamiliesPopup
выход на первую (самую верхнюю) всплывающую кнопку. - Выход
fontTypesPopup
ко второй всплывающей кнопке. - Образец
этикетка
выход на этикетку. - Действие
handleFontFamilySelection (_ :)
для первой (самой верхней) всплывающей кнопки. - Действие
handleFontTypeSelection (_ :)
для второй всплывающей кнопки. - Действие
displayAllFonts (_ :)
для кнопки «Показать все».
Прежде чем мы сделаем простой пользовательский интерфейс, который мы только что создали, пригодным для использования, давайте взглянем на элементы управления, которые мы только что добавили. По умолчанию каждая всплывающая кнопка содержит три элемента, каждый из которых является элементом меню (более о меню и элементах меню в следующей публикации ).Их можно изменить либо двойным щелчком по всплывающей кнопке, а затем двойным щелчком по каждому элементу, либо путем выбора всплывающей кнопки и выделения каждого элемента в структуре документа.
В этом демонстрационном приложении мы будем изменять элементы меню программно, но Interface Builder — хороший вариант для этого, если у вас есть постоянный набор элементов, которые не предназначены для изменения на лету.
Примечание: Элементы всплывающей кнопки всегда могут быть обновлены программно, независимо от того, был ли установлен исходный набор реальных элементов с помощью Interface Builder.
В инспекторе атрибутов вы можете найти все настраиваемые свойства всплывающей кнопки (после ее выбора). Например, вы можете определить выбранный по умолчанию элемент или задать свойства шрифта и выравнивание текста.
Аналогично, свойства метки и кнопки можно изменить в инспекторе атрибутов, если вы выберете объект метки или кнопки в контроллере представления. Не стесняйтесь осматриваться и немного экспериментировать, изменяя любые свойства, которые хотите. Неважно, случайно ли вы «повредили» какой-либо элемент управления; просто удалите его и создайте новый, выполнив шаги, описанные выше.
Еще один интересный момент — это иерархия объектов и фактические содержащиеся объекты в панели структуры документа. Можно было ожидать найти там только всплывающие кнопки, метку и кнопку вместе с их ограничениями. Однако, если вы начнете расширять дерево объектов, вы заметите, что здесь больше объектов, чем мы специально добавили. Помимо пунктов меню во всплывающих окнах (которые вполне можно найти там, поскольку пункт меню на самом деле является другим элементом управления Какао, созданным автоматически), вы также найдете объект cell , идущий в паре с каждым элементом управления.Например, fontFamiliesPopup — это объект NSPopUpButton
, но он содержит элемент NSPopUpButtonCell
, который, в свою очередь, содержит элементы меню. Аналогично, метка, которая представляет собой объект
NSTextField
, содержит элемент NSTextFieldCell
.
Итак, для чего нужны объекты «Cell» ?
Вообще говоря, объект ячейки (любой подкласс «… Cell» ) отвечает за реализацию фактического элемента управления Какао и его функций.Все эти подклассы наследуются от одного и того же предка, NSCell
, который реализует несколько общих свойств и методов, касающихся внешнего вида и поведения элементов управления. Несмотря на то, что мы будем взаимодействовать со всплывающими кнопками, метками и объектами кнопок непосредственно в этом приложении, за кулисами любые визуальные изменения и обновления будут обрабатываться соответствующими подклассами ячеек.
Практически теперь нам не нужно о них беспокоиться, поскольку нам не придется иметь дело с каким-либо подклассом ячеек.Одно общее предупреждение: убедитесь, что вы подключили свойства IBOutlet к фактическим элементам управления, а не к их аналогам в ячейках. Это распространенная ошибка, которая может произойти, если вы выполняете подключение к розетке, нажимая Control и перетаскивая из Interface Builder в редактор помощника (код), и вы не обращаете внимания на то, что является исходным (исходным) объектом перетаскивания. является.
Как оживить приложение
Создание пользовательского интерфейса, даже самого простого, — это достижение. Но без кода мало что может случиться.
Начальная конфигурация
Откройте файл ViewController.swift , где мы начнем с реализации функции в классе ViewController
, которая выполнит некоторую начальную настройку пользовательского интерфейса.
Идите после методов контроллера представления по умолчанию и добавьте следующее:
func setupUI () { fontFamiliesPopup.removeAllItems () fontTypesPopup.removeAllItems () sampleLabel.stringValue = «» sampleLabel.alignment = .center }
func setupUI () { fontFamiliesPopup. fontTypesPopup.removeAllItems () sampleLabel.stringValue = «» sampleLabel.alignment = .center }
|
В первых двух строках мы удаляем все элементы по умолчанию из двух всплывающих кнопок. В двух других строках мы очищаем текст метки по умолчанию и центрируем его. Обратите внимание, что свойство для установки текста метки — stringValue
; не ищите свойство под названием текст
или что-то в этом роде.
Следующим шагом будет заполнение первой всплывающей кнопки фактическими значениями: Все семейства шрифтов , существующие на Mac. Мы добьемся этого, познакомившись с новым классом NSFontManager . Он отвечает за несколько вещей, включая панель «Шрифт» и меню «Шрифт», которые есть во многих приложениях, ведение записей о текущем выбранном шрифте, запуск изменений шрифта и многое другое. Среди его «обязанностей» также включена важная информация о доступных семействах шрифтов и атрибутах шрифтов!
NSFontManager
используется программно через общий экземпляр . Свойство с именем
availableFontFamilies
может дать нам то, что нам нужно: коллекцию (массив) со всеми доступными семействами шрифтов!
Далее мы определяем новый метод, который использует класс NSFontManager
и добавляет найденные имена семейств в качестве элементов в fontFamiliesPopup
:
func populateFontFamilies () { fontFamiliesPopup.removeAllItems () fontFamiliesPopup.addItems (withTitles: NSFontManager.shared.availableFontFamilies) }
func populateFontFamilies () { fontFamiliesPopup.removeAllItems () fontFamiliesPopup.addItems (withTitles: NSFontManager.shared.availableFontFamilies) }
|
Теперь оба метода, которые мы реализовали выше, должны вызываться после запуска приложения и до появления представления. Идите сразу после метода viewDidLoad ()
и добавьте следующее:
переопределить func viewWillAppear () {
super. viewWillAppear ()
setupUI ()
populateFontFamilies ()
}
функция переопределения viewWillAppear () { super.viewWillAppear ()
setupUI () populateFontFamilies () }
|
Давайте посмотрим, что мы уже сделали. Запустите приложение и откройте первое всплывающее окно, в нем вы найдете все доступные семейства шрифтов!
Действия по обработке
Класс NSFontManager
кажется весьма полезным, так как есть более интересные свойства и методы для изучения и использования. Один из таких методов, который особенно интересен, называется availableMembers (ofFontFamily :)
.Он возвращает массив, в котором каждый элемент представляет собой другой массив ( [[Any]]
) с четырьмя различными значениями:
- PostScript имя шрифта в виде строки.
- Тип шрифта, например «Полужирный», «Курсив», «Римский», «Светлый» и т.
Д.
- Вес шрифта как целое число.
- Тип шрифта соответствует как целое число без знака (UInt).
Элемент-массив называется членом семейства шрифтов. Следующий пример, взятый из документации Apple, демонстрирует, что возвращает availableMembers (ofFontFamily :)
:
((«Times-Roman», «Roman», 5, 4), («Times-Italic», «Italic», 6, 5), («Times-Bold», «Bold», 9, 2), («Times-BoldItalic», «Bold Italic», 9, 3) )
((«Times-Roman», «Roman», 5, 4), («Times-Italic», «Italic», 6, 5), («Times-Bold», «Bold», 9, 2), («Times-BoldItalic», «Bold Italic», 9, 3) )
|
Другими словами, с availableMembers (ofFontFamily :)
, мы можем получить все варианты шрифтов, которые поддерживает семейство шрифтов, и отобразить их на всплывающей кнопке fontTypesPopup
.
Перед тем, как мы фактически применим вышеупомянутый метод, давайте объявим следующие два свойства для класса ViewController
, они вам пригодятся немного позже:
var selectedFontFamily: String? var fontFamilyMembers = [[Любой]] ()
var selectedFontFamily: String?
var fontFamilyMembers = [[Any]] ()
|
Теперь нам нужно сделать возможным сохранение выбранного семейства шрифтов и получение содержащихся в нем членов каждый раз, когда выбор fontFamiliesPopup
изменяется.Это должно быть сделано в handleFontFamilySelection (_ :)
IBAction method:
@IBAction func handleFontFamilySelection (_ sender: Any) {
если разрешить fontFamily = fontFamiliesPopup.titleOfSelectedItem {
selectedFontFamily = fontFamily
if let members = NSFontManager.shared.availableMembers (ofFontFamily: fontFamily) {
fontFamilyMembers. removeAll ()
fontFamilyMembers = члены
}
}
}
@IBAction func handleFontFamilySelection (_ sender: Any) { , если разрешено fontFamily = fontFamiliesPopup.titleOfSelectedItem {
selectedFontFamily = fontFamily
, если let members = NSFontManager.shared.availableMembers (ofFontFamily: fontFamily) { fontFamily: fontFamily) { fontFamilyMembers500020002 9000
9000
9000
9000
|
Сначала мы получаем заголовок элемента, который выбирается в шрифте fontFamiliesPopup
; он соответствует названию семейства шрифтов.Мы сохраняем его в свойстве selectedFontFamily
.
Затем мы получаем всех доступных членов выбранного семейства шрифтов с помощью метода availableMembers (ofFontFamily :)
класса NSFontManager
. Эти члены хранятся в свойстве класса fontFamilyMembers
. Важно удалить все предыдущие элементы, существующие в этом массиве! Мы не хотим, чтобы данные из ранее выбранного семейства шрифтов оставались, пока мы выбираем другое! Вот почему
removeAll ()
вызывается перед назначением членов
fontFamilyMembers
.
Однако простое сохранение имени выбранного семейства шрифтов и его членов не имеет реального значения. Нам нужно заполнить их шрифтом fontTypesPopup
, чтобы мы могли видеть и использовать варианты шрифтов каждого семейства. Почему бы нам не создать для этого новый метод? Добавьте следующий в ViewController
class:
func updateFontTypesPopup () { fontTypesPopup.removeAllItems () для члена в fontFamilyMembers { если пусть fontType = member [1] как? Нить { fontTypesPopup.addItem (withTitle: fontType) } } }
func updateFontTypesPopup () { fontTypesPopup.
для элемента в fontFamilyMembers { если разрешить fontType = member [1] as? Строка { fontTypesPopup.addItem (withTitle: fontType) } } }
|
Вот что происходит в вышеуказанном методе:
- Сначала мы удаляем все предыдущие элементы из
fontTypesPopup
. - Мы просматриваем данные каждого члена шрифта в
fontFamilyMembers
и получаем тип шрифта («Полужирный», «Курсив» и т. Д.) Из первой позиции массива, одновременно приводя его к String. Помните, что каждый член — это массив[Any]
. - Мы добавляем каждый найденный тип шрифта как новый элемент во всплывающую кнопку.
Возможно, вы захотите запустить приложение сейчас и просмотреть доступные варианты шрифтов, предварительно выбрав семейство шрифтов. Сделайте это, и довольно скоро вы получите неприятный результат: fontTypesPopup
вообще не получает никакого значения! Но почему?
Что ж, предыдущий метод действительно заполняет доступные элементы семейства шрифтов в fontFamiliesPopup
, но где именно он вызывается? Пока нигде!
Вернемся к методу handleFontFamilySelection (_ :)
IBAction, который необходимо обновить, чтобы он вызывал updateFontTypesPopup ()
, когда доступные члены были получены с помощью метода availableMembers (ofFontFamily :)
:
@IBAction func handleFontFamilySelection (_ sender: Any) {
если разрешить fontFamily = fontFamiliesPopup. titleOfSelectedItem {
selectedFontFamily = fontFamily
if let members = NSFontManager.shared.availableMembers (ofFontFamily: fontFamily) {
// …
updateFontTypesPopup ()
}
}
}
@IBAction func handleFontFamilySelection (_ sender: Any) { , если разрешено fontFamily = fontFamiliesPopup.titleOfSelectedItem { selectedFontFamily = fontFamily
if let members = NSFontManager.shared.availableMembers (ofFontFamily: fontFamily) { // …
updateFontTypesPopup () } } }
|
Отлично, теперь вы можете запустить приложение, выбрать семейство шрифтов, а затем просмотреть доступные элементы во втором всплывающем окне!
Пока все хорошо, но нам еще нужно бежать и дойти до финиша. При выборе элемента шрифта во втором всплывающем окне фактический образец должен быть показан на этикетке sampleLabel
. Мы можем сделать это, если будем обновлять шрифт образца метки каждый раз, когда выбирается вариант шрифта. И вот новинка: как мы можем создать шрифт (объект
NSFont
), используя данные, которые у нас есть?
NSFontManager
снова будет нашим инструментом, поскольку он предоставляет метод с именем font (withFamily: traits: weight: size :)
, который возвращает объект NSFont
. Если задуматься, у нас есть значения для всех параметров, поскольку черты и вес являются частями данных элемента шрифта, которые мы храним в коллекции fontFamilyMembers
.Кроме того, выбранное семейство шрифтов также сохраняется в свойстве selectedFontFamily
. Что касается размера, мы зададим случайное значение, на самом деле это не имеет значения.
В методе handleFontTypeSelection (_ :)
IBAction мы собираемся реализовать всю логику, которая позволит создать новый объект шрифта, который, в свою очередь, мы установим для образца метки вместе с PostScript-именем шрифта.
@IBAction func handleFontTypeSelection (_ sender: Any) { пусть selectedMember = fontFamilyMembers [fontTypesPopup.indexOfSelectedItem] если пусть postscriptName = selectedMember [0] как? Строка, пусть weight = selectedMember [2] как? Int, пусть traits = selectedMember [3] as? UInt, пусть fontfamily = selectedFontFamily { let font = NSFontManager.shared.font (withFamily: fontfamily, traits: NSFontTraitMask (rawValue: traits), вес: вес, размер: 19.0) sampleLabel.font = font sampleLabel.stringValue = postscriptName } }
@IBAction func handleFontTypeSelection (_ sender: Any) { let selectedMember = fontFamilyMembers [fontTypesPopup.indexOfSelectedItem]
if let postscriptName = selectedMember [0] as? Строка, пусть weight = selectedMember [2] как? Int, пусть traits = selectedMember [3] as? UInt, пусть fontfamily = selectedFontFamily {
let font = NSFontManager. traits: NSFontTraitMask (rawValue: traits), weight: weight, size: 19.0) sampleLabel.font = font sampleLabel.stringValue Name }
|
- Сначала мы получаем массив элементов из коллекции
fontFamilyMembers
, который соответствует выбранному в коллекцииfontTypesPopup
. - Поскольку массив
selectedMember
содержитAny
значений, необходимо их соответствующим образом преобразовать. Кроме того, мы проверяем, чтоselectedFontFamily
действительно содержит значение, а не ноль. - Вот изюминка метода. Мы создаем новый объект
NSFont
, используя все значения, собранные выше. Обратите внимание, что для чертыNSFontTraitMask
. - Созданный шрифт устанавливается на образец метки.
- Имя шрифта PostScript установлено на этикетке.
Запустите приложение еще раз, и на этот раз у вас будет как образец выбранного шрифта, так и его имя PostScript!
Внимание к деталям
Наше небольшое приложение работает, но некоторые детали остались нетронутыми. Давайте пройдемся по ним.
Что касается первого, очевидно, что при запуске приложения нет образца шрифта. Более того, во всплывающей кнопке fontTypesPopup
не содержатся элементы шрифта, пока мы не обновим выбранное семейство шрифтов.Чтобы обойти это, мы вернемся к одному из первых созданных здесь методов — populateFontFamilies ()
. В нем мы должны вызвать метод handleFontFamilySelection (_ :)
IBAction и запустить таким образом сбор доступных членов семейства шрифтов:
func populateFontFamilies () { // … handleFontFamilySelection (сам) }
func populateFontFamilies () { // …
handleFontFamilySelection (self) }
|
Это исправляет отсутствующие значения во втором всплывающем окне при запуске приложения, но не исправляет отсутствующий образец шрифта. Чтобы образец метки автоматически отображал образец шрифта первого элемента, найденного во всплывающей кнопке
fontTypesPopup
, нам необходимо обновить метод updateFontTypesPopup ()
, как показано в следующем фрагменте:
func updateFontTypesPopup () { // … fontTypesPopup.selectItem (at: 0) handleFontTypeSelection (сам) }
func updateFontTypesPopup () { // …
fontTypesPopup.selectItem (at: 0) handleFontTypeSelection (self) }
|
Сначала мы автоматически выбираем первый элемент во всплывающем окне. Затем мы вызываем метод handleFontTypeSelection (_ :)
IBAction, чтобы создать шрифт на основе выбранного элемента и обновить образец метки.
Наконец, еще одна деталь, которая покажет нам общую технику, выходящую за рамки специфики демонстрационного приложения…
Обновление заголовка окна
В заголовке окна нашего приложения написано «Окно» (если вы не изменили это в Interface Builder), но не было бы неплохо, чтобы оно отображало имя выбранного семейства шрифтов?
Программный доступ к окну прост и осуществляется через свойство view
(главное представление) контроллера представления, как вы увидите ниже. Перейдите к методу
handleFontFamilySelection (_ :)
IBAction и добавьте следующую строку:
@IBAction func handleFontFamilySelection (_ sender: Any) { если разрешить fontFamily = fontFamiliesPopup.titleOfSelectedItem { // … view.window? .title = fontFamily } }
@IBAction func handleFontFamilySelection (_ sender: Any) { , если разрешено fontFamily = fontFamiliesPopup.titleOfSelectedItem { //…
view.window? .Title = fontFamily } }
|
В окне теперь отображается выбранное семейство шрифтов!
Завершение приложения с помощью нового оконного контроллера
Наше небольшое приложение на данный момент работает отлично, и все шаги, представленные до сих пор, уже показали некоторые важные инструкции по программированию для macOS. Однако кнопка «Показать все» еще не работает, и это та часть, на которой мы сосредоточимся здесь. Это даст нам возможность изучить и поговорить о большем количестве вещей, которые сделают этот пост более полным и ценным.
Назначение кнопки «Показать все» — представить новое окно , в котором варианты шрифтов выбранного семейства шрифтов будут отображаться все вместе, отформатированные на основе имени PostScript каждого шрифта. Это может показаться не таким уж важным, учитывая, что мы уже можем видеть их одну за другой с помощью всплывающих кнопок, которые у нас есть. Тем не менее, сделав это, мы узнаем:
- Как добавить дополнительный оконный контроллер.
- Как изменить внешний вид окна по умолчанию и представить его как панель .
- Как загрузить и представить новый оконный контроллер программно.
- Как передать данные другому контроллеру представления, который принадлежит другому контроллеру окна.
- Как программно закрыть окно.
Итак, если все это звучит для вас интересно, продолжайте читать.
Добавление нового оконного контроллера
Вернуться к Main.storyboard , давайте добавим на холст новый оконный контроллер вместе с контроллером представления.
Примечание: Дополнительные оконные контроллеры не требуются в файле Main.storyboard. Вы можете создавать новые файлы раскадровки для их размещения. Здесь мы поместим их все в главную раскадровку, чтобы упростить задачу.
- Нажмите кнопку «Библиотека », чтобы отобразить библиотеку объектов .
- Удалите все предыдущее содержимое в поле поиска или просто введите Окно .
- Перетащите объект оконного контроллера в пустую область холста.
Вы заметите, что вместе с оконным контроллером также добавлен прикрепленный контроллер представления!
Какие панели вы предпочитаете?
Теперь давайте посмотрим, как мы можем изменить внешний вид по умолчанию, чтобы наше новое окно выглядело как вспомогательная панель.
Сначала щелкните новое окно, а затем покажите Identity Inspector . Взгляните на раздел Custom Class , где класс окна автоматически устанавливается на NSWindow
.
Щелкните это поле, введите: NSPanel и нажмите клавишу Return на клавиатуре.
А теперь переключитесь на Attributes Inspector . В начало добавлен новый раздел под названием Panel ! Значение по умолчанию во всплывающем окне Style — Regular Panel , что означает нормальный внешний вид окна. Поддерживаются еще два типа панелей:
Оба они предназначены для существования как вспомогательных окон , которые содержат дополнительные параметры или информацию к содержимому, отображаемому в главном окне.
Измените стиль панели и просмотрите все параметры; посмотрите, как изменяется внешний вид окна. Панель HUD похожа на панель Utility с очевидным графическим отличием. Он более темный и полупрозрачный. Кроме того, на панели окна доступна только кнопка закрытия.
Закончив изучение настроек стиля панели, выберите HUD в качестве стиля для нашего нового окна.
Предлагаем вам прочитать здесь Руководство по интерфейсу пользователя для панелей.
Находясь в Инспекторе атрибутов, установите текст «Отображение шрифтов» (без кавычек) в качестве заголовка окна.
И последнее, прежде чем мы перейдем к следующему шагу. Откройте инспектор Identity и в текстовом поле Identifier в разделе Identity введите значение: fontsDisplayStoryboardID . Через некоторое время вы поймете, зачем нам это нужно.
Контроллер отображения шрифтов
Наряду с оконным контроллером в проект был добавлен новый контроллер представления.Это подводит нас к необходимости создать новый подкласс NSViewController
, который мы подключим к этому новому контроллеру представления. Нажмите Cmd + N на клавиатуре и выберите Cocoa Class в разделе Source .
Нажмите Далее и измените поле Подкласс: на NSViewController . В поле Class введите FontsDisplayViewController . Завершите создание нового файла.
Снова на Main.storyboard , щелкните объект View Controller и установите для FontsDisplayViewController
значение поля Class в Identity Inspector .
Затем щелкните по основному виду контроллера представления и отобразите Size Inspector . Установите его размер 480 × 400 .
Давайте теперь добавим в представление два новых элемента управления Какао.
- Откройте библиотеку объектов и найдите текстовое представление .
- Из результатов выберите объект Scrollable Text View и перетащите его в представление.
- Задайте следующие ограничения: Сверху: 20, В начале: 20, В конце: 20, Внизу: 60 .
- Снова в библиотеке объектов найдите кнопку , элемент управления .
- Перетащите на вид объект Push Button .
- Задайте его ограничения: Снизу: 20, Ширина: 70, Высота: 21, Выровнять по горизонтали в контейнере .
- Дважды щелкните по нему и измените его текст на: Закройте .
Мы будем использовать текстовое представление для отображения всех доступных шрифтов семейства шрифтов в формате.Кнопка будет использоваться для закрытия окна.
Примечание: Добавлять кнопку для закрытия окна на самом деле не обязательно, поскольку на самой панели есть кнопка закрытия. Однако мы делаем это здесь явно по причинам обучения; чтобы увидеть, как мы можем программно закрыть окно.
Теперь в файле FontsDisplayViewController.swift давайте объявим свойство IBOutlet для текстового представления и метод IBAction для кнопки:
@IBOutlet var fontsTextView: NSTextView! @IBAction func closeWindow (_ sender: Any) { }
@IBOutlet var fontsTextView: NSTextView!
@IBAction func closeWindow (_ отправитель: Любой) {
}
|
Наконец, в файле Main. раскадровки , щелкните, чтобы выбрать объект контроллера отображения шрифтов и из Connections Inspector подключите выход
fontsTextView
к текстовому представлению и действие closeWindow (_ :)
к кнопке.
В пользовательском интерфейсе, который мы создаем, есть одна неприятная вещь, и это белый текст в темном и полупрозрачном окне HUD. В раскадровке это нормально и терпимо, но кому это нужно при использовании приложения?
Итак, откройте FontsDisplayViewController.swift и добавьте следующую функцию:
func setupTextView () { fontsTextView.backgroundColor = NSColor (белый: 1,0, альфа: 0,0) fontsTextView.enclosingScrollView? .backgroundColor = NSColor (белый: 1,0, альфа: 0,0) fontsTextView.isEditable = false fontsTextView.enclosingScrollView? .autohidesScrollers = true }
func setupTextView () { fontsTextView.backgroundColor = NSColor (белый: 1. fontsTextView.enclosingScrollView? .BackgroundColor = NSColor (white: 1.0, alpha: 0.0) fontsTextView.isEditable = false fontsTextView.enclosingScrollView? .AutohidesScrollers = true 000} 000} 000 |
Вышеуказанное:
- Делает фон текстового поля прозрачным.
- Делает фон прокрутки, содержащей текстовое представление, прозрачным.
- Делает текстовое представление недоступным для редактирования.
- Автоматически скрывает полосы прокрутки.
Мы вызовем setupTextView ()
прямо перед появлением представления:
переопределить func viewWillAppear () { super.viewWillAppear () setupTextView () }
переопределить функцию viewWillAppear () { super.viewWillAppear ()
setupTextView () }
|
Загрузка и представление оконного контроллера
Пользовательский интерфейс вспомогательной панели готов, поэтому давайте посмотрим, как он выглядит, когда приложение работает. Прежде чем мы загрузим и представим новый оконный контроллер, мы должны объявить следующие два свойства в файле FontsDisplayViewController.swift :
var fontFamily: String? var fontFamilyMembers = [[Любой]] ()
var fontFamily: String? var fontFamilyMembers = [[Any]] ()
|
Нам нужны они оба, так как мы собираемся передать имя выбранного семейства шрифтов и его членов из класса ViewController
в FontsDisplayViewController
.Мы увидим, как мы будем их использовать через некоторое время. Просто объявить их пока достаточно.
Итак, приступим к презентации нового оконного контроллера. Откройте файл ViewController.swift и перейдите к методу displayAllFonts (_ :)
IBAction. Помните, что этот метод действия связан с кнопкой «Показать все» в окне по умолчанию нашего приложения, поэтому любой добавленный здесь код будет выполнен при нажатии этой кнопки.
Идея представления оконного контроллера, который был создан графически в файле раскадровки, состоит в том, чтобы инициализировать объект NSStoryboard
и попросить его создать экземпляр этого оконного контроллера.Объект NSStoryboard
инициализируется путем предоставления имени раскадровки, но не очень простым способом. Вот он:
let storyboardName = NSStoryboard.Name (stringLiteral: «Main») let storyboard = NSStoryboard (name: storyboardName, bundle: nil)
let storyboardName = NSStoryboard.Name (stringLiteral: «Main») let storyboard = NSStoryboard (name: storyboardName, bundle: nil)
|
Как видите, инициализатор NSStoryboard
не принимает строковое значение в качестве аргумента (также известного как имя раскадровки).Вместо этого он ожидает значение NSStoryboard.Name
, где Name
— это псевдоним типа String. Стоимость пакета
можно оставить равным нулю.
Теперь, когда объект раскадровки инициализирован, мы можем создать экземпляр нашего оконного контроллера. Для этой цели мы будем использовать идентификатор раскадровки , который мы ранее установили в Interface Builder :
.let storyboardID = NSStoryboard.SceneIdentifier (stringLiteral: «fontsDisplayStoryboardID») если разрешить fontsDisplayWindowController = storyboard.instantiateController (withIdentifier: storyboardID) как? NSWindowController { }
let storyboardID = NSStoryboard.SceneIdentifier (stringLiteral: «fontsDisplayStoryboardID»)
если разрешить fontsDisplayWindowController = storyboard.instantiateController (withIdentifier: storyboardID) as? NSWindowController {
}
|
instantiateController (withIdentifier :)
— это метод класса NSStoryboard
, который создает экземпляр оконного контроллера в приведенном выше коде. Он возвращает
Any? Значение
, поэтому необходимо:
- Убедитесь, что значение nil не возвращается, выполнив условное развертывание.
- Приведение к типу
NSWindowController
.
Примечание. Помимо оконных контроллеров, также можно создать экземпляры контроллеров представлений с помощью метода instantiateController (withIdentifier :)
, если для них был установлен идентификатор раскадровки в Interface Builder. Вот почему этот метод возвращает значение Any
вместо объекта NSWindowController
.Наш долг — привести к правильному типу.
Кроме того, в приведенном выше фрагменте вы видите, что идентификатор оконного контроллера не задан как обычное строковое значение. Вместо этого должно быть указано значение NSStoryboard.SceneIdentifier
, где SceneIdentifier
— это псевдоним типа String.
Предположительно в этот момент был создан новый оконный контроллер. Однако этого недостаточно, мы должны получить доступ к его контроллеру представления содержимого и передать ему выбранное семейство шрифтов и его коллекцию элементов.
NSWindowController
имеет свойство с именем contentViewController
, которое представляет контроллер представления, присоединенный к контроллеру окна. Мы будем использовать его, и после доступа к нему мы передадим желаемые значения:
если разрешить fontsDisplayVC = fontsDisplayWindowController.contentViewController как? FontsDisplayViewController { fontsDisplayVC.fontFamily = selectedFontFamily fontsDisplayVC.fontFamilyMembers = fontFamilyMembers }
, если разрешить fontsDisplayVC = fontsDisplayWindowController.contentViewController как? FontsDisplayViewController { fontsDisplayVC.fontFamily = selectedFontFamily fontsDisplayVC.fontFamilyMembers = fontFamilyMembers }
|
Наконец, мы можем представить окно следующим образом:
fontsDisplayWindowController. showWindow (ноль)
fontsDisplayWindowController.showWindow (ноль)
|
Выше приведены шаги, необходимые для программного создания экземпляра оконного контроллера, получения его контроллера представления содержимого и, в конечном итоге, представления их всех.Справа идет метод displayAllFonts (_ :)
в одном куске:
@IBAction func displayAllFonts (_ sender: Any) {
let storyboardName = NSStoryboard.Name (stringLiteral: «Main»)
let storyboard = NSStoryboard (name: storyboardName, bundle: nil)
let storyboardID = NSStoryboard.SceneIdentifier (stringLiteral: «fontsDisplayStoryboardID»)
если позволить fontsDisplayWindowController = storyboard.instantiateController (withIdentifier: storyboardID) как? NSWindowController {
если разрешить fontsDisplayVC = fontsDisplayWindowController.contentViewController как? FontsDisplayViewController {
fontsDisplayVC. fontFamily = selectedFontFamily
fontsDisplayVC.fontFamilyMembers = fontFamilyMembers
}
fontsDisplayWindowController.showWindow (ноль)
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 |
@IBAction func displayAllFonts (_ sender: Any) { let storyboardName = NSStoryboard.Имя (stringLiteral: «Main») let storyboard = NSStoryboard (name: storyboardName, bundle: nil)
let storyboardID = NSStoryboard.SceneIdentifier (stringLiteral: «fontsDisplayStoryboardID») fontsDisplayStoryboardis = instantiateController (withIdentifier: storyboardID) как? NSWindowController {
если разрешить fontsDisplayVC = fontsDisplayWindowController.contentViewController как? FontsDisplayViewController { fontsDisplayVC. fontsDisplayVC.fontFamilyMembers = fontFamilyMembers }
fontsDisplayWindowController.showWindow (nil) } }
|
Теперь вы можете запустить приложение и нажать кнопку «Показать все». Контента пока не будет, но у вас будет первая панель HUD!
Отображение шрифтов
В этой части мы собираемся отобразить все варианты шрифтов, содержащиеся в выбранном семействе шрифтов, один за другим в текстовом окне.Точнее, названия шрифтов PostScript. Кроме того, каждый отображаемый вариант шрифта будет отформатирован в соответствии с тем шрифтом, который он представляет.
Мы достигнем этого, создав строку с атрибутами , которая будет содержать все имена PostScript, разделенные символом новой строки «\ n» , и добавив новые атрибуты шрифта для каждой отображаемой строки. В конце эта атрибутированная строка будет назначена текстовому просмотру.
Давайте начнем с создания нового метода в классе FontsDisplayViewController
.Назовем его showFonts ()
, и первое, что мы сделаем, это убедимся, что название семейства шрифтов существует.
func showFonts () { охранник let fontFamily = fontFamily else {return} }
func showFonts () { guard let fontFamily = fontFamily else {return} }
|
Помните, что fontFamily
должно получить свое значение при нажатии кнопки «Показать все» в главном окне приложения.
Затем давайте объявим следующие две переменные:
var fontPostscriptNames = «» var lengths = [Int] ()
var fontPostscriptNames = «» var lengths = [Int] ()
|
fontPostscriptNames
— это строка, которая будет содержать все имена PostScript, которые будут отображаться в текстовом окне.
lengths
— это массив, в котором будет храниться длина каждого имени PostScript.Я объясню, зачем нам это нужно, позже.
Теперь давайте соберем все имена PostScript из членов семейства шрифтов и построим отображаемую строку. В то же время мы будем хранить длину каждого имени:
для члена в fontFamilyMembers { если пусть postscript = member [0] как? Нить { fontPostscriptNames + = «\ (постскриптум) \ n» lengths.append (postscript.count) } }
для члена в fontFamilyMembers { , если postscript = member [0] as? Строка { fontPostscriptNames + = «\ (postscript) \ n» длины.добавить (postscript.count) } }
|
И снова строка fontPostscriptNames
состоит из добавления к нему имени каждого шрифта PostScript и символа новой строки «\ n».
Имея строковое значение, которое мы хотим отобразить, мы можем создать строку с атрибутами , которая будет отформатирована позже:
пусть attributedString = NSMutableAttributedString (строка: fontPostscriptNames)
пусть attributedString = NSMutableAttributedString (строка: fontPostscriptNames)
|
Вот что будет дальше: мы еще раз пройдемся по всем членам семейства шрифтов, и для каждого из них мы создадим новый объект шрифта ( NSFont
) на основе данных каждого члена.
for (index, member) в fontFamilyMembers.enumerated () { если пусть weight = member [2] как? Int, пусть traits = member [3] as? UInt { if let font = NSFontManager.shared.font (withFamily: fontFamily, traits: NSFontTraitMask (rawValue: traits), weight: weight, size: 19.0) { } } }
для (index, member) в fontFamilyMembers.enumerated () { , если let weight = member [2] as? Int, пусть traits = member [3] as? UInt { , если let font = NSFontManager.shared.font (withFamily: fontFamily, traits: NSFontTraitMask (rawValue: traits), weight: weight, size: 19.0) {
} } }
|
Мы будем использовать объект шрифта выше, чтобы создать новый атрибут , который мы добавим к attributedString
, которую мы инициализировали ранее.
Теперь впереди сложная часть. Любой атрибут, добавляемый к строке с атрибутами, должен указывать диапазон текста, к которому он будет применен. .Этот диапазон представляет собой значение
NSRange
, которое состоит из двух различных значений: , местоположение и , длина . Местоположение указывает индекс начального символа, с которого начинается диапазон, а длина показывает, на сколько символов будет распространяться диапазон.
Учитывая тот факт, что мы хотим, чтобы каждая строка нашего текста имела разные атрибуты из-за разного шрифта, мы должны вычислить диапазон текста, к которому будет применен каждый шрифт . И здесь становится кстати массив длины
.Каждый новый диапазон начинается там, где остановился предыдущий диапазон, и его длина будет равна соответствующему значению в массиве lengths
. Первый диапазон начинается с нуля.
Следующий код показывает, как мы вычисляем начальное местоположение для каждого диапазона и как мы создаем новый диапазон:
var location = 0
if index> 0 {
для i в 0 .. var location = 0 if index> 0 { for i in 0. location + = lengths [i] + 1 } } let range = NSMakeRange (location, lengths [index]) В случае, если индекс Последняя строка показывает, как создается диапазон. Наконец, теперь мы можем создать новый атрибут для каждого шрифта:
attributedString.addAttribute (NSAttributedString.Key.font, значение: шрифт, диапазон: диапазон)
attributedString. Все вышеперечисленное произойдет для каждого отдельного элемента, найденного в массиве Вот как мы это делаем для всего текста. Как вы увидите, указать диапазон в этом случае намного проще, чем то, что мы делали ранее:
attributedString.addAttribute (NSAttributedString.Key.foregroundColor, значение: NSColor.white, диапазон: NSMakeRange (0, attributedString.string.count))
attributedString.addAttribute (NSAttributedString. Наконец, атрибутная строка готова со всеми установленными атрибутами. Пришло время назначить его текстовому представлению, точнее, свойству
fontsTextView.textStorage? .setAttributedString (attributedString)
fontsTextView.textStorage? .SetAttributedString (attributedString) Примечание: В задачи данного руководства не входит углубляться в подробности об атрибутированных строках и атрибутах или обсуждать различные концепции, такие как свойство хранения текста в текстовом представлении. Не стесняйтесь искать дополнительную информацию, если вышеуказанное ново для вас. Вот метод
func showFonts () {
охранник let fontFamily = fontFamily else {return}
var fontPostscriptNames = «»
var lengths = [Int] ()
для члена в fontFamilyMembers {
если пусть postscript = member [0] как? Нить {
fontPostscriptNames + = «\ (постскриптум) \ n»
lengths. 1 2 3 4 5 6 7 8 9 10 11 12 13 140002 13 14 18 19 20 21 22 23 24 25 26 27 28 29 30 000 35 36 37 38 39 func showFonts () { guard let fontFamily = fontFamily else {return} var fontPostscriptNames = «» var lengths = [Int] () для участника в font для члена if000FamilyMembers postscript = member [0] как? Строка { fontPostscriptNames + = «\ (postscript) \ n» длины.append (postscript.count) } } let attributedString = NSMutableAttributedString (string: fontPostscriptNames) для (index, member) в fontFamilyMembers. , если let font = NSFontManager.shared.font (withFamily: fontFamily, traits: NSFontTraitMask (rawValue: traits), weight: weight, size: 19.0) { var location = 0 if index> 0 { for i in 0 .. location + = lengths [i] + 1 } } let range = NSMakeRange (location, lengths [index]) attributedString.addAttribute (NSAttributedString.Key.font, value: font, range: range) } } } attributedString.addAttribute (NSAttributedString.Key.foregroundColor, значение: NSColor.white, диапазон: NSMakeRange (0, attributedString.string.count)) fontsTextView.textStorage? .setAttributedString (attributedString) 000} 000
Не забудьте позвонить:
переопределить func viewWillAppear () {
// …
showFonts ()
}
функция переопределения viewWillAppear () { //. showFonts () } Готово! Запустите приложение сейчас, выберите любое семейство шрифтов и нажмите кнопку «Показать все». Вы получите все доступные варианты шрифтов в одном месте: И последнее, что нужно сделать, это включить кнопку «Закрыть», чтобы можно было закрыть окно при нажатии на нее. Сделать это очень просто, как вы можете видеть рядом:
@IBAction func closeWindow (_ sender: Any) {
Посмотреть.окно? .close ()
}
@IBAction func closeWindow (_ sender: Any) { view.window? .Close () } Мы подошли к концу урока! Из всех предыдущих частей стало совершенно очевидно, что создание приложения для macOS включает в себя множество шагов и деталей, и в этом посте были выделены наиболее важные из них с учетом нашей сегодняшней дорожной карты. Здесь нам удалось создать небольшое приложение с несколькими графическими элементами управления в его пользовательском интерфейсе, мы реализовали код для получения нужной нам информации о шрифте, для визуального обновления элементов управления и для «игры» с окнами. Вступив в процесс создания всего этого, у нас была возможность познакомиться с важными концепциями и поговорить о стандартных методах и практиках. Я надеюсь, что этот пост станет руководством к вашим усилиям по созданию собственных приложений для macOS. Не забудьте ознакомиться с документацией Apple и рекомендациями по человеческому интерфейсу, если вы застряли или просто хотите убедиться, что играете по правилам.До скорой встречи! Для справки, вы можете скачать полный проект на GitHub. Взлом с помощью macOS научит вас фреймворкам Swift и macOS через реальные проекты AppKit и SwiftUI. Книга включает в себя такое же исчерпывающее введение в Swift, что и «Взлом с помощью Swift», но также содержит подсказки и подсказки, которые помогут вам безболезненно перенести имеющиеся у вас навыки работы с iOS в macOS. Hacking with macOS включает 18 проектов AppKit и еще три проекта SwiftUI, которые помогут вам максимально эффективно использовать эту мощную платформу. Начните писать код на Swift, создав приложение для просмотра изображений и изучив ключевые компоненты пользовательского интерфейса: окна, представления таблиц, изображения и контроллеры разделения представления. Расширьте свои знания о NSTableView, добавив второй столбец, а также узнайте о случайных числах, вводе и проверке текста и кнопках. Вернитесь в проект 1 и добавьте кнопку на панели инструментов, чтобы пользователи могли делиться выбранным изображением с помощью почты, сообщений, AirDrop и других средств — это проще, чем вы думаете! Повысьте эффективность просмотра веб-страниц, просматривая одновременно несколько сайтов, и все это благодаря NSStackView и структуре WebKit. Бонус: добавьте элементы управления на Touch Bar! Фреймворк MapKit позволяет нам рисовать карты в любом разрешении, а затем вставлять булавки в нужное место — он идеально подходит для веселой игры о столицах мира! Ваши приложения macOS должны иметь возможность изменять размер в соответствии с потребностями ваших пользователей, и Auto Layout может сделать это — вы указываете правила, а он сделает все остальное. Познакомьтесь с NSCollectionView впервые, а затем добавьте поддержку перетаскивания изображений, чтобы пользователи могли создавать домашние видео с водяными знаками из своих любимых изображений. Узнайте, как NSGridView позволяет равномерно размещать элементы управления пользовательским интерфейсом на экране, а затем использовать его для создания игры с сопоставлением изображений с некоторыми специальными эффектами! GCD — это мощный фреймворк, который позволяет вам планировать работу в разное время и в разных потоках, и этот методический проект дает вам все, что вам нужно знать. Посмотрите, как легко разместить значок и меню вашего приложения прямо в строке состояния macOS, а затем создать приложение для отображения погоды в вашем регионе с помощью JSON и GCD. SpriteKit встроена физика, поэтому в этом проекте вы создаете основанную на физике игру с лопанием пузырей с таймерами, звуковыми эффектами и многим другим. Анимация в macOS непростая, но — это мощно. NSDocument предлагает отличные функции, такие как управление версиями, автосохранение и многое другое, и этот проект объединяет его с Core Graphics для создания приложения для редактирования снимков экрана. Создайте динамичный тир SpriteKit, сочетающий в себе анимацию, поддержку нового уровня, настраиваемый курсор мыши и ввод с клавиатуры. Вернитесь к проекту 12 и узнайте, как можно добавить поддержку отмены и повтора с помощью мощного класса UndoManager какао и всего лишь нескольких дополнительных строк кода. Используйте привязки, чтобы создать приложение, которое отслеживает книги, которые вы прочитали, их авторов и ваш рейтинг в звездах, при этом при написании менее 20 строк кода. Нет, правда! Развивайте свои знания SpriteKit, создав красочную игру с подбором мячей, а также впервые опробовав узлы формы и эмиттеры частиц. Практикуйте свои навыки работы с привязками какао, создав преобразователь температуры по Фаренгейту в Цельсию, основанный на кодировании «ключ-значение» и наблюдении «ключ-значение». При создании проектов вы узнаете все это и многое другое: Взлом с помощью macOS следует тому же подходу, который я использовал для взлома с помощью Swift: небольшие автономные проекты, которые обучают индивидуальным методам, начиная с нуля, так что вы получаете огромную библиотеку готовых проектов, которые вы можете развивать дальше или использовать в качестве основы для чего-то совершенно новый. Загрузите содержание AppKit Скачать бесплатный 24-страничный образец Хотите создать собственное приложение? Для этого вам нужно выучить язык программирования. Выпущенный в 2014 году, популярность Swift среди программистов продолжает расти.Swift — это язык с открытым исходным кодом, поэтому вы также можете писать приложения для Linux. Есть много способов изучить Swift, и многие уроки можно проводить в свободное время, иногда бесплатно. Многие из этих руководств и руководств основаны на предположении, что вы уже знаете, как программировать на другом языке, или знакомы с концепциями программирования. Если вы новичок в программировании, вы можете сначала подготовить себя к основным концепциям программирования.Существует несколько онлайн-курсов, таких как Khan Academy, Udemy, Coursera и Lynda.com, в которых есть вводные курсы. Вы также можете посетить местный общественный колледж, если считаете, что вам было бы полезно учиться в классе и в компьютерном классе. Цены различаются, и некоторые учебные заведения предлагают помощь в оплате обучения. Если вы уже знакомы с основными концепциями кодирования или просто хотите погрузиться в жизнь и посмотреть, как это происходит, вы можете приступить к изучению Swift. Вот как. Первый шаг — загрузить Xcode, приложение Apple для создания программного обеспечения.Xcode включает Swift, и это бесплатно. Вы можете скачать его, щелкнув ссылку ниже, которая приведет вас в App Store. Загрузить Xcode Следующий шаг — взглянуть на ресурсы Apple Swift. Это бесплатные руководства, образцы кода, видео и документы, к которым вы можете получить доступ, и вам не нужна учетная запись разработчика. Перейти в ресурсы Apple Swift Apple предлагает образец кода для всех, кто изучает Swift. Если вы студент или совсем новичок в программировании, сделайте свой первый набег на Swift с Swift Playgrounds. Загрузить Swift Playgrounds Swift Playground на испанском языке. У Apple есть много замечательных ресурсов в iBooks Store. Лучше всего то, что они бесплатные. Вы можете найти их с помощью приложения iBooks на вашем устройстве iOS или Mac. Дайте им попробовать. Введение в разработку приложений с помощью Swift. В разделе iTunes U в iTunes Store есть много контента, связанного с Swift.Вот несколько курсов, которые стоит попробовать. (Примечание. Начиная с сентября 2017 года iTunes U будет находиться в разделе «Подкасты» в iTunes Store. The Swift Playgrounds: Курс Learn to Code 1 & 2 — отличный компаньон в приложение Swift Playgrounds. Если вы чувствуете, что могли бы извлечь пользу из дополнительного обучения или хотите пройти более формальный курс, есть несколько онлайн-курсов, которые вы можете пройти с помощью сторонних сервисов.Вы должны будете платить за каждый курс, а цены различаются. Вот несколько онлайн-курсов. На Coursera есть серия из четырех частей, посвященная разработке приложений Swift для iOS, которая проводится совместно с Университетом Торонто. Envato Tuts + имеет несколько курсов Swift, но убедитесь, что тот, который вы изучаете, предназначен для текущей версии Swift; у них все еще есть курсы для Swift версий 1 и 2. На Lynda.com есть несколько курсов Swift.У каждого курса есть предварительный просмотр видео, поэтому вы можете увидеть, нравится ли вам инструктор. Курсы Thinkful дорогие, но вы учитесь с наставником, который встречается с вами через видеочат. Udacity предлагает бесплатный курс для начинающих и бесплатный курс для разработчиков. Они также предлагают (за плату) более структурированную программу «наноразмеров». В Udemy есть несколько курсов Swift, предназначенных как для начинающих, так и для более опытных программистов.У них есть много курсов, которые, кажется, охватывают одни и те же темы, но каждый курс предлагается другим инструктором. Прежде чем записаться на курс, посмотрите звездные рейтинги и прочтите отзывы. Подкасты — отличный способ дополнить ваши уроки. Слушайте и узнавайте от разработчиков об их опыте создания приложений с помощью Swift. Swift для начинающих Бойси Г. Питр учитывает развивающиеся особенности этого быстро принятого языка. Книга поможет вам написать код Swift, используя Playgrounds, чтобы мгновенно увидеть результаты своей работы. Он дает вам прочную основу для ключевых концепций языка Swift, включая переменные, константы, типы, массивы и словари. Книга разделена на одиннадцать глав и охватывает следующее содержание: Глава 1 знакомит с Swift В главе 2 рассказывается о работе с коллекциями Глава 3 рассказывает о взятии под контроль Глава 4 рассказывает о написании функций и замыканий В главе 5 рассказывается об организации с классами и структурами В главе 6 говорится о формализации с помощью протоколов и расширений В главе 7 рассказывается о работе с Xcode Глава 8 говорит о том, как сделать приложение лучше В главе 9 рассказывается о переходе на мобильные устройства с помощью Swift В главе 10 рассказывается о том, как стать экспертом В главе 11 рассказывается о движении вниз по склону Книга содержит подробные инструкции, достаточно иллюстрации и наглядные примеры. Если вы новичок в Swift, эта книга для вас. Книга разделена на одиннадцать глав и охватывает следующее содержание: Глава 1 знакомит с Swift В главе 2 рассказывается о работе с коллекциями Глава 3 рассказывает о взятии под контроль Глава 4 рассказывает о написании функций и замыканий В главе 5 рассказывается об организации с классами и структурами В главе 6 говорится о формализации с помощью протоколов и расширений В главе 7 рассказывается о работе с Xcode Глава 8 говорит о том, как сделать приложение лучше В главе 9 рассказывается о переходе на мобильные устройства с помощью Swift В главе 10 рассказывается о том, как стать экспертом В главе 11 рассказывается о движении вниз по склону Книга содержит подробные инструкции, достаточно иллюстрации и наглядные примеры. Если вы новичок в Swift, эта книга для вас. На создание языка программирования Swift ушли годы, и с момента его создания он продолжает развиваться, добавляя новые функции и возможности. Часто называемый «Objective-C без C», вы можете рассматривать этот язык как превосходящий Objective-C во многих аспектах.В этом блоге мы осветим основы Swift и лучшие книги для изучения программирования на Swift в 2020 году и в будущем. Swift — это в основном скомпилированный язык программирования, созданный для приложений iOS, tvOS, macOS, watchOS и Linux. Это объектно-ориентированный, универсальный, многопарадигмальный, императивный, блочно-структурированный и функциональный язык. Этот язык программирования был создан Apple с использованием современного подхода к шаблонам проектирования программного обеспечения и безопасности. Вскоре после своего появления Swift стал одним из ведущих языков программирования в сообществе разработчиков Apple, заменив старый Objective-C.Он приобрел свою популярность из-за некоторых его функций, которые трудно было сопоставить. К ним относятся: Подробнее: Задачи быстрого программирования для начала работы Теперь давайте перейдем к лучшим книгам, которые помогут вам изучить язык программирования Swift. Если вы думаете, что уже знакомы с языком программирования Swift или iOS SDK, то приготовьтесь поднять свои навыки на более высокий уровень с помощью этой книги. Это книга, которая является продолжением бестселлера под названием «Начало разработки iPhone с помощью Swift» и поможет вам изучить все советы и приемы, связанные с отладкой и организацией кода Swift, передачей данных между контроллерами представления с использованием нескольких -поточное программирование с помощью Grand Central Dispatch и разработка приложений для нескольких языков. Изучите все основы разработки iOS, а также фреймворк Cocoa Touch, Xcode IDE и последнюю версию Swift. Это полностью обновленное руководство по программированию на Swift научит вас объектно-ориентированным концепциям, правильному способу использования инструментов разработки Apple и выявлению основных функций, необходимых для приложений iOS от Cocoa. Это также идеальная книга, если вы хотите создать приложение для iOS, научившись делать это правильно.Хотя эта книга не научит вас создавать приложение на iOS, но объяснит вам все основы наряду с основами iOS. Это поможет вам понять все основы языка Swift. Я считаю эту книгу одной из лучших для изучения основ программирования на Swift. Это практическое руководство поможет вам получить ценный практический опыт работы с языком программирования с открытым исходным кодом Swift.«Learning Swift» поможет вам писать код с помощью последней версии Swift, создавая работающее приложение для iOS с нуля. Это работает для всех, независимо от того, являетесь ли вы опытным программистом или программистом с небольшими знаниями или без них. Две трети этой книги посвящены объяснению того, как писать приложения для iOS. Эта книга в основном предназначена для типичного разработчика Apple, который больше всего интересуется разработкой для iOS. Эта книга поможет вам превратить ваши навыки из начинающего в функционального разработчика iOS.В нем объясняются все концепции, инструменты и методы, которые требуются любому типичному разработчику Apple для создания профессиональных приложений iOS с использованием iOS 10, Swift 3 и Xcode 8. По завершении этой книги у вас будут все навыки и уверенность, необходимые для проектирования и создавайте свои собственные приложения для iOS. Я всегда предпочитаю версию в мягкой обложке, так как она удобна для написания и выделения в книге.Вы правы, эта книга толстая, как словарь, но не такая тяжелая. Эта книга включает более 1000 страниц содержания, которое не доставит вам трудностей при чтении. Это идеальная книга для вас, если вы не носитель английского языка. В отличие от многих книг, которые включают типичный английский и сложные фразы, он включает простые слова и легкий для понимания английский. Авторы хорошо поработали, объяснив все термины и концепции языком непрофессионала. Вы даже можете прочитать его, если не знаете кодирования. Эта книга поможет вам развить полное понимание грамматики, связанной со Swift, и всех элементов эффективного стиля Swift со всеми тщательно подобранными примерами и объяснениями. Более того, эта книга также получила поддержку Big Nerd Ranch. Для всех вас, кто не знаком с ранчо Big Nerd Ranch, значит, они участвовали в обучении и разработке какао, вероятно, 2 десятилетия. И эта книга оправдывает их поддержку. Он позволит вам пройти все этапы и процессы разработки приложений для iOS и подходит для всех.Независимо от того, являетесь ли вы опытным программистом или просто новичком, который начал программировать, он идеально подойдет вам, чтобы изучить различные способы создания эксклюзивных приложений для iOS, раскрывая все секреты. Вы изучите все строительные блоки для создания отличного приложения, такого как Xcode, Swift и другие, углубившись в разработку приложения. В этом полном руководстве по программированию на Swift вы найдете четкие инструкции, разбитые на основные вопросы каждого из них. Эта книга поможет вам углубить свои навыки программирования на Swift, объясняя вам все основные методы и алгоритмы кодирования. Это поможет вам вспомнить важные вещи, которые вы забыли, изучая примеры в поиске, кластеризации, графиках и многом другом.Классические задачи информатики в Swift также помогут вам найти классические решения для всех ваших сложных и новых проблем. Автору удалось соединить основные концепции информатики с реальными проблемами, связанными с приложениями, производительностью, данными и даже собеседованиями. Эта книга включает в себя отличное сочетание протокольно-ориентированных, объектно-ориентированных и функциональных примеров. Если вам нужно что-то, что поможет вам освоить все навыки концептуально для создания профессионального программного обеспечения, связанного с платформами Apple, такими как Mac или iOS, тогда это книга, которая вам нужна. Это также поможет вам в работе на сервере с Linux. Swift in Depth включает в себя несколько поучительных объяснений, конкретных объяснений и увлекательных упражнений, которые помогут вам в кратчайшие сроки изучить все мощные методы, такие как эффективная обработка ошибок, обобщения, расширенные шаблоны Swift и протокол-ориентированное программирование.Его автор Тьерд Вин показывает все трудности открытия техник Swift, которые он понял на собственном горьком опыте в простейшей форме. Beginning iOS 12 и Swift App Development отправят вас в практическое, увлекательное и прагматичное путешествие по изучению разработки приложений для iOS 12 с использованием языка программирования Swift. Изучив эту книгу, вы сможете создать свое первое приложение за считанные минуты.Эта книга очень ясная, по существу, а ее содержание написано так, чтобы не тратить зря ваше драгоценное время. К тому времени, когда вы дочитаете эту книгу, вы приобретете все навыки, необходимые для создания приложения и его отправки в Apple Store. Эта книга для учеников iOS научит вас создавать свои собственные приложения для iPad и iPhone с помощью четырех увлекательных и увлекательных уроков.Все практические руководства подробно описаны по созданию нового приложения для iOS с нуля. Кроме того, если вы новичок, эта книга вам понравится, поскольку автор шаг за шагом проводит вас через все концепции, подробно описывая все.Кроме того, автор этой книги любезно подчеркивает или повторяет определенные концепции для полного изучения. Mastering Swift 5 включает в себя все ключевые функции Swift 5, которые подробно объясняются с полными наборами примеров. Эта книга поможет вам получить знания и все навыки, связанные с программированием на Swift, от основ до популярных функций программирования на Swift, таких как универсальные шаблоны, параллелизм и управление памятью. Одна из лучших частей, которые мне понравились в этой книге, — это то, что она ориентирована не только на программирование для iOS, но и больше вращается вокруг языка Swift. Это полезно, так как 99% всех знаний, полученных из этой книги, можно использовать для разработки iOS, MacOS и Server Side Swift. Если вы новичок, эта книга будет разворачиваться с базового введения в разработку iOS, и по мере вашего продвижения она даст вам представление о Xcode и Swift.В случае, если вы уже являетесь опытным программистом, вы можете сразу же изучить все новейшие функции iOS 12. Это также даст вам представление о сложных темах дизайна iOS, таких как анимация и жесты, которые дадут вашему приложению дополнительное преимущество перед другими. «Программирование iOS 12 для начинающих» — отличная книга для изучения всех новых разработок Swift 4. С тех пор, как я ее прочитал, я нашел эту книгу потрясающей. Лучшая часть заключалась в том, насколько автор объяснил все концепции языка и проектов вместе со всеми примерами. Это действительно очень помогло мне развить кое-какие практические знания о Swift и Xcode. Очень легко понять все концепции и следовать им. Не только это, но и «От нуля до iOS Hero» научит вас всем инструментам, интерфейсу и сборкам, помимо всей базы ваших знаний.По мере вашего прогресса становится все сложнее и сложнее. В эту книгу включены все примеры кода и картинки, которые действительно упрощают обучение. Вы хотите создавать приложения для iOS, которые могут превзойти остальные? Если да, то это практическое руководство — идеальное решение для ваших нужд. Swift очень дружелюбно для начинающих программистов, а также является языком программирования промышленного качества, который столь же приятен и выразителен, как и любой язык сценариев. Хотя этот ресурс не книга, а руководство, которое поможет вам проверить свои эксперименты с кодом.Вы можете сразу увидеть свои результаты без головной боли при создании или запуске приложения для iOS. Подробнее: Почему предприятия предпочитают разработку мобильных приложений на Swift Несомненно, что сегодня язык программирования Swift стал одним из самых популярных и широко используемых языков для разработок, связанных с iOS. Я надеюсь, что вы найдете этот список полезным и начнете со всех этих книг, чтобы изучить один из самых простых, но важных языков программирования для программирования, связанного с Apple. Если вы считаете, что мы упустили какие-либо книги, о которых стоит упомянуть, оставьте комментарий в разделе ниже. Программа Apple «Час кода» возвращается в розничные магазины Apple с 4 по 10 декабря! Вы можете записаться на семинары в своем магазине, посетив Apple.com / retail. Если вы присоединитесь к Apple или работаете самостоятельно, вот несколько отличных ресурсов для обучения программированию. Скорее всего, вам потребуются миллионы лет, чтобы использовать весь контент, доступный на наших компьютерах, телефонах и планшетах — в Интернете и App Store так много всего, и каждый день появляется все больше. Но что, если вы хотите, чтобы сделал своим собственным контентом? Этот мир может быть намного темнее и страшнее, если вы не знаете, с чего начать. Есть масса отличного контента по созданию веб-сайтов, созданию электронных книг, написанию автоматизированных рабочих процессов для повышения производительности и даже созданию ваших собственных приложений.Но когда вы начинаете с нулевого шага, куда вы идете? С кем ты разговариваешь? VPN-предложения: пожизненная лицензия за 16 долларов, ежемесячные планы за 1 доллар и более Я помню, как был в темноте. Я впервые начал заниматься HTML в 1998 году, когда сайтов с практическими рекомендациями было немного. В течение следующего десятилетия я наткнулся на самообучение HTML, CSS, PHP и Javascript, сделав несколько ужасных обходных маневров, включая Python, который для меня казался таким же страшным, как и одноименная змея.А затем, в 2010 году, я снова начал весь процесс, изучая, как создавать электронные книги. Я терялся больше раз, чем могу сосчитать. Я сделал много-много ошибок. Но: я вышел из почти двух десятилетий экспериментов с любовью к программированию. Программирование дает вам возможность не только наслаждаться проектами других людей, но и говорить: «Я могу это сделать!» и стройте свои собственные увлечения. Вы формируете отличные навыки решения проблем и действий по устранению неполадок — шаги, которые я использую почти каждый день в других областях.А если вам нравятся логические головоломки, программирование — отличный способ избавиться от этого зуда. и делают что-то особенное для вас. Язык, который вы изучаете, может быть полезен в самых маловероятных ситуациях: поскольку я знал HTML и CSS, я получил множество разовых веб-заданий от друзей и знакомых, которые не хотели рисковать в этих водах. В первые годы после учебы в колледже мне платили арендную плату за эти работы; Именно HTML и CSS помогли мне получить мою первую работу в Apple и работу по созданию электронных книг в Macworld. И, как и при изучении реальных языков, если вы поймете один язык программирования, вам будет намного легче узнать другие. Хорошая новость в том, что вам не нужно спотыкаться в кодировании и самообучаться, как я. Сейчас 2017 год, и у вас есть выбор отличных интерактивных ресурсов для обучения программированию. В то время как мне приходилось полагаться на доброту случайных интернет-незнакомцев и HTML-полезности, вы можете быстро освоить основы практически любого навыка кодирования с помощью подходящих руководств. Вот некоторые из моих любимых отправных точек: Если вы никогда раньше не касались кода и простая мысль о написании чего-либо со скобками и шевронами пугает вас, попробуйте одну из этих программ. Apple уже много лет сотрудничает с компанией, чтобы помочь в проведении семинаров «Час кода», и легко понять почему: уроки веселые, красочные и представляют код скорее как головоломку Lego, чем бесконечные строки текста. . И что еще лучше: вы можете проходить курсы на своем Mac, ПК или мобильных устройствах. Khan Academy предлагает большой ассортимент онлайн-классов, чтобы вы могли насладиться разнообразием тем, но я включил их в список специально для их программы по информатике. Если вы хотите глубже погрузиться в теорию и строительные блоки кодирования, этот курс отлично справится с этим — и вас тоже развлечет! Если вы хотите с головой окунуться в веб-разработку, Khan Academy также предлагает учебные пособия «Час кода» для создания анимаций Javascript, создания веб-страниц или баз данных.А если вы хотите учиться на ходу, у Khan Academy есть отличное приложение для устройств iOS. Готовы заняться реальной веб-разработкой? Codecademy — невероятный бесплатный ресурс для изучения практически всех основных языков веб-программирования. Веб-сайт предлагает пошаговый интерактивный курс по созданию веб-страницы, а также множество руководств для веб-языков и систем, таких как Javascript, Ruby on Rails, базы данных SQL и Git. Codecademy очень просты в использовании, и весь ваш прогресс автоматически сохраняется, так что вы можете вернуться к нему в любое время.К сожалению, в настоящее время веб-сайт плохо работает с устройствами iOS, но они отлично работают в браузере Mac или ПК. Если вы хотите изучить разработку приложений для iOS, язык Apple Swift — идеальное место для начала, а веб-сайт Learn Swift собрал массу материала для начинающих и продвинутых пользователей. Хотя нет сайтов, предлагающих бесплатные интерактивные руководства по Swift (о которых я знаю — читатели, если у вас есть отличный сайт, который можно порекомендовать, опубликуйте его в комментариях!), Это не означает, что вам нужно полагаться исключительно на текстовую документацию. Есть отличные ресурсы, такие как We Heart Swift, если вам нужны интерактивные платные учебные материалы, или обширная библиотека Swift от Apple для текста, видео и всего, что между ними. Я кодирую веб-сайты на HTML более 18 лет, но до сих пор почти каждый день использую Google, чтобы перепроверить фрагмент кода или интегрировать инструмент Javascript с открытым исходным кодом. Ваша поисковая система — один из лучших инструментов, которые у вас есть для поиска ответов или информации о ваших проблемах с кодированием: скорее всего, у кого-то еще в сети была эта проблема до вас, и она была решена. Хотите ли вы научиться создавать веб-сайт, создать электронную книгу для iBookstore, которая не отстой, получить представление о прекрасном рабочем процессе приложения для автоматизации iOS или упростить программирование приложений с помощью Swift, мы надеемся, что сможем ответить ваши вопросы и дать вам хорошую отправную точку. Есть тема, которую вы бы хотели, чтобы мы изучили? Дайте нам знать об этом в комментариях. Обновлено ноябрь 2017 г .: обновленное содержимое за 2017 г. Учебное пособие по macOS для начинающих и пользователей ПК, которое служит введением в использование компьютеров Mac и macOS. Приведенный выше вводный видеоурок по macOS предназначен для пользователей ПК и начинающих пользователей компьютеров Mac. Компьютеры Mac — отличные инструменты, которые в большинстве случаев более удобны для пользователя, чем компьютеры с Windows. При этом, если вы никогда раньше не использовали Mac, важно научиться ориентироваться в macOS и выполнять основные задачи и операции. Finder — это эквивалент проводника Windows для macOS. Это приложение на Mac, которое всегда работает в фоновом режиме и позволяет пользователям взаимодействовать с файлами и папками. Если щелкнуть значок Finder в доке внизу экрана, откроется окно, позволяющее пользователям получить доступ ко всей файловой системе компьютера. Открытие окна Finder в macOS аналогично открытию «Мой компьютер» в Windows. Spotlight — очень мощный инструмент системного поиска, встроенный в macOS.Пользователи могут получить доступ к Spotlight с правой стороны верхней панели инструментов или нажав командную клавишу + пробел. Spotlight ищет файлы, папки, электронные письма, приложения — практически все на вашем компьютере. Пользователи могут легко отказаться от использования папок, полагаясь на Spotlight. Магазин приложений предоставляет пользователям безопасное место для загрузки программного обеспечения и игр для macOS. У Apple очень строгие правила утверждения приложений, опубликованных в App Store.Имея это в виду, большая часть программного обеспечения, доступного в App Store, безопасна в использовании и не содержит вирусов. Некоторые приложения бесплатны, а другие можно приобрести. Преимущество покупки программного обеспечения в App Store заключается в том, что вы получаете пожизненное право собственности. Ваши покупки будут привязаны к вашей учетной записи Apple и доступны для бесплатной переустановки на новый компьютер. Safari — это мощный веб-браузер, разработанный Apple и предустановленный на всех компьютерах с macOS.Он конкурирует с Google Chrome и Mozilla Firefox по скорости, функциональности и дизайну. Как и большинство современных веб-браузеров, Safari имеет полноценную систему закладок. Пользователи могут синхронизировать закладки на устройствах MacOS и iOS. Видео выше начинается с пошагового руководства по пользовательскому интерфейсу macOS. Представлена информация относительно меню Apple, системных настроек, прожектора и док-станции.Зрители узнают, как использовать Finder для создания папок и организации файлов. Если вы еще не выполнили обновление до macOS и все еще используете старую версию Mac OS X, приведенное ниже руководство должно быть более похоже на вашу установку.Это руководство было записано с использованием Mac OS X 10.9 Mavericks.
После просмотра этих руководств пользователи почувствуют себя комфортно, перемещаясь по системе macOS.
.
равен нулю, что означает, что это первый член в массиве fontFamilyMembers
, местоположение также устанавливается на ноль (начало текста). В любом другом случае местоположение представляет собой сумму всех длин предыдущих диапазонов, включая символ «\ n» , который считается дополнительным символом в каждой строке (поэтому «+ 1» добавляется к каждой длине). NSMakeRange () Функция
принимает два аргумента: местоположение и длину диапазона.
addAttribute (NSAttributedString.Key.font, value: font, range: range)
fontFamilyMembers
, или, другими словами, в для (index, member) в fontFamilyMembers.enumerated () {...}
цикл. Есть еще один атрибут, который мы должны добавить ко всему тексту после окончания цикла. Это цвет текста. По умолчанию черный цвет — это цвет текста в текстовом окне. Но поскольку мы используем панель HUD, которая уже темная, мы должны придать тексту светлый цвет.
Key.foregroundColor, значение: NSColor.white, диапазон: NSMakeRange (0, attributedString.string.count))
textStorage
текстового представления:
showFonts ()
вместе с его кодом: append (postscript.count)
}
}
пусть attributedString = NSMutableAttributedString (строка: fontPostscriptNames)
для (индекс, член) в fontFamilyMembers.enumerated () {
если пусть weight = member [2] как? Int, пусть traits = member [3] as? UInt {
if let font = NSFontManager.shared.font (withFamily: fontFamily, traits: NSFontTraitMask (rawValue: traits), weight: weight, size: 19.0) {
var location = 0
if index> 0 {
для i в 0 ..
enumerated 9 [если 2] как? Int, пусть traits = member [3] as? UInt {
..
Закрытие окна
Сводка
Определенно есть еще что изучить и обсудить, и в будущих публикациях мы сосредоточимся на новых и новых материалах о программировании для macOS.
Hacking with macOS — научитесь создавать приложения для macOS с Swift 5.2, используя реальные проекты
Проект 1: Storm Viewer
Проект 2: Коровы и быки
Проект 3: Социальные сети
Проект 4: Обозреватель сетки
Проект 5: Столицы
Проект 6: Автоматическая компоновка
Проект 7: Фото-воспоминания
Проект 8: Нечетный
Проект 9: Гранд Сентрал Диспетч
Проект 10: WeatherBar
Проект 11: Проблема с пузырями
В Проект 12: Анимация
В этом проекте мы создаем песочницу для анимации, чтобы помочь вам найти способы оживить ваш пользовательский интерфейс.
Проект 13: скрининг
Проект 14: Тир
Проект 15: UndoManager
Проект 16: Книжный червь
Проект 17: Три в ряд
Проект 18: Обвязки
Как изучить Swift, язык Apple для создания приложений для iOS и macOS
К счастью, у Apple есть язык для написания приложений для Mac, iPhone и iPad, и вы также можете весело провести время, изучая его. Он называется Swift.
Как изучить Swift: начало работы
Apple Как изучать Swift: учебные пособия и курсы Apple
Swift Playgrounds — это приложение iOS для iPad, которое использует интерактивность для изучения языка. Вы изучаете основы Swift, используя реальный код для решения ряда головоломок. По мере продвижения вы опираетесь на более сложные концепции. Это интересный способ освоить Swift, даже если вы опытный программист, и он бесплатный.
Apple Как изучить Swift: iTunes U
Это больше не отдельный раздел.)
Как изучать Swift: сторонние онлайн-курсы
Как изучать Swift: подкасты
Прочтите нашу политику в отношении партнерских ссылок для получения более подробной информации.
5 лучших книг по Swift для начинающих в 2021 году — Книги по кодексу
Он учит вас передовым методам от опытного разработчика Mac и iOS. В книге подчеркивается, как использовать Xcode, Playgrounds и REPL.
Он учит вас передовым методам от опытного разработчика Mac и iOS. В книге подчеркивается, как использовать Xcode, Playgrounds и REPL.
Лучшие книги для изучения быстрого программирования в 2020 году и за его пределами
Лучшие книги по языку программирования Swift
1. Разработка профессионального iPhone на Swift 5
Если вы знаете основы программирования на Swift или iOS, то это одна из лучших книг, которая поможет вам улучшить свои навыки и знания в области программирования на Swift.
2. Основы программирования iOS 10 с помощью Swift: Swift, Xcode и Cocoa Basics 1st Edition
3. Изучение Swift: создание приложений для macOS, iOS и других версий — 3-е издание
4. iOS 10 в Swift 3
Некоторые из лучших вещей в этой книге были:
Контент настолько хорошо организован, что весь текст состоит из двух строк, включает диаграммы, изображения, снимки экрана и другие элементы для объяснения контента. В отличие от других подобных книг, в ней нет длинных скучных абзацев или важной информации, сжатой в несколько строк.Эта книга более удобна для читателя, поскольку в ней правильные абзацы и хорошо иллюстрированное содержание.
5. Быстрое программирование: Руководство Big Nerd Ranch — 2-е издание
6. Swift: Полное руководство для начинающих, среднего и продвинутого уровней. Подробные стратегии освоения программирования на Swift
Хотя эта книга дороже любой другой подобной книги, она также является одной из лучших.Он включает четкие инструкции и руководства, которые упрощены до основных проблемных областей.
7. Классические задачи информатики в Swift: основные методы для практикующих программистов, 1-е издание
Более того, вы также обязаны создать повторно используемый код фреймворка вместе с несколькими примерами функций, связанных с расширенным Swift, который включает расширения протокола и универсальные шаблоны.Даже код игровой площадки включен в каждую главу, которая проста для чтения, хорошо документирована и подробно объяснена.
8. Swift in Depth — 1-е издание
9. Начало разработки приложений для iOS 12 и Swift: разработка приложений для iOS с помощью Xcode 10, Swift 4, Core ML 2, ARKit 2 и др.
10. Ученик iOS: начало разработки iOS с Swift 4.2
Четыре его руководства охватывают 4 разных приложения, которые сильно отличаются друг от друга. Каждое следующее приложение более продвинутое, чем предыдущее. При совместном изучении они охватывают все, что требуется для создания ваших собственных приложений.
11. Освоение Swift 5: глубокое погружение в последнюю версию языка программирования Swift — 5-е издание
12. Программирование iOS 12 для начинающих: вводное руководство по разработке приложений iOS с помощью Swift 4.2 и Xcode 10 — 3-е издание
2 и iOS 12 путем реализации новых функций. К ним относятся пользовательские уведомления пользовательского интерфейса, последние уведомления, карты и Sirikit.
13. От нуля до героя iOS: быстрое развитие для детей и подростков
14. Высокопроизводительные приложения для iOS: оптимизируйте код для улучшения приложений, 1-е издание
Если вы разработчик приложений с предварительными знаниями о создании приложений, это руководство предоставит вам все основные методы и советы, которые помогут вам решить многие из ваших общих проблем с производительностью, связанных с приложениями.Высокопроизводительные приложения для iOS не только научат вас разрабатывать приложения, но также помогут оптимизировать ваши приложения для iOS, которые обеспечат беспроблемную работу даже в случае слабой или плохой сети.
15. Документация по быстрой разработке
Программирование
Подведение итогов!
Он предоставляет несколько функций наряду с его простотой и легкостью в освоении, что привлекает огромное количество программистов со всего мира.В этой статье я перечислил некоторые из лучших книг, которые действительно помогли мне изучить и отточить мой язык программирования Swift.
Люди тоже читают:
Рекомендуемые курсы:
Как научиться программировать, когда не знаешь, с чего начать
Зачем вообще нужно учиться программировать?
Отличные ресурсы для начала изучения кода
Code.org
Ханская академия
Кодекадемия
Learn Swift
В случае сомнений ищите!
Давайте узнаем вместе!
Руководство по macOS для начинающих — AnsonAlex.com
Основные характеристики macOS:
Finder
Прожектор
Магазин приложений
Safari
Об этом руководстве по macOS для начинающих
В учебном пособии по macOS рассматриваются следующие темы:
Mac OS X Учебное пособие для старых компьютеров