Как стать автором
Обновить
-4.29

Разработка под macOS *

Пишем под настольную ОС Apple

Сначала показывать
Порог рейтинга
Уровень сложности

Запускаем Vagrant на MacOS Apple M1/M2

Время на прочтение5 мин
Количество просмотров11K

Очень часто в разработке возникает необходимость поднять локальное окружение для отладки каких-либо рабочих моментов. В своей работе я постоянно пользуюсь Vagrant для тестирования инфраструктурного кода, например ansible-ролей.

Vagrant остаётся одной из самых популярных утилит для подобных задач, имеет гибкий синтаксис и поддержку базовых алгоритмических структур – можно поднимать N и K машин в цикле, используя заранее вводимые переменные, а потом еще и ansible-inventory генерировать на выходе, разбивая машины по группам.

Долгое время я оставался пользователем MacBook на процессоре Intel, но больше так продолжаться не могло – пришлось сменить компьютер, хотя я и знал о некоторых особенностях работы М1 с виртуальными машинами.

В этой статье я расскажу, как настроить и запустить Vagrant на процессорах Apple M1/M2 и вернуться в привычный рабочий режим.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии10

SwiftUI в 2022. Что нового?

Время на прочтение4 мин
Количество просмотров5.1K

Всем привет, с вами я, Наиль Габутдинов, iOS разработчик.

Apple выпустила первый SwiftUI в 2019 году, предлагая тем самым новый подход создания приложений в декларативном стиле. SwiftUI 4.0, представленный этим летом на WWDC 2022 вместе с iOS 16 и macOS 13 включает в себя много нововведений для более качественных и универсальных приложений под разные платформы Apple с меньшим количеством кода.

Давайте посмотрим, что нового.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Простой mp3-плеер с графическим интерфейсом на Go

Время на прочтение7 мин
Количество просмотров8.6K

Мы продолжаем рассматривать разные платформенные применения Go (ранее мы посмотрели как использовать Go для микроконтроллеров, веб-приложений, разработки API, создания мобильных приложений) и сегодня поговорим об использовании Go для создания приложений для настольных компьютеров на примере реализации несложного mp3-плеера с поддержкой графического интерфейса. Мы будем использовать связывание с GTK для реализации интерфейса, библиотеки декодирования mp3 и взаимодействия с аудиосистемой (для Windows, Linux и MacOS).

Читать далее
Всего голосов 20: ↑17 и ↓3+14
Комментарии4

Как запустить динозаврика Google на тачбаре? Обзор Python-библиотеки PyTouchBar

Время на прочтение8 мин
Количество просмотров6.9K

С 2016 года у некоторых моделей MacBook Pro есть сенсорная OLED-панель. По сути, она просто заменяет функциональные клавиши. Но с ней чуть интересней: на тачбар можно вывести закладки и даже медиаэлементы.

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

В конце статьи — конкурс на плюшевого тирекса.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии12

Истории

От Web до Desktop за 2 недели: технология Electron на практике

Время на прочтение13 мин
Количество просмотров9.6K

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

Меня зовут Сергей Володин, я руковожу командой разработки VK WorkMail. В этой статье я расскажу, как на основе Electron мы за две недели создали PoC кроссплатформенного настольного приложения Почты, что узнали о технологии и к каким выводам пришли.

Читать далее
Всего голосов 34: ↑30 и ↓4+26
Комментарии31

Для подписи приложений iOS/macOS не нужен компьютер Apple

Время на прочтение4 мин
Количество просмотров9.9K


В экосистеме Apple сейчас так устроено, что для выпуска приложений iOS/macOS требуется получение сертификата, затем подпись кода и нотаризация подписи. Согласно документации, подпись кода гарантирует пользователям, что приложение получено из известного источника и не изменялось. Для получения и использования сертификатов требуется участие в программе Apple Developer Program.

Такая система удобна с точки зрения безопасности закрытой экосистемы Apple, но создаёт некоторые трудности для разработчиков.

Однако любые трудности на то и существуют, чтобы их преодолевать.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии6

Flutter на Python

Время на прочтение3 мин
Количество просмотров31K


Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Читать дальше →
Всего голосов 31: ↑29 и ↓2+27
Комментарии33

Apple всё ещё следит за вами. Без вашего согласия

Время на прочтение4 мин
Количество просмотров11K

В текущей версии macOS Monterey, при каждом обновлении системы на системе, содержащей чип M1, такой же как и все новые блестящие/быстрые маки с ARM ("Apple Silicon"), процесс обновления обращается в Apple, чтобы получить специальную подпись загрузки, известную на жаргоне Apple как "билет" (он же ticket).

Это делается абсолютно незашифрованным способом, через стандартный открытый 80 порт HTTP (точно такой же протокол, который запрещен для использования сторонними разработчиками приложений в App Store при передаче приватных данных, таких как уникальные идентификаторы, служащие PII) на хост gs.apple.com.

HTTP-запрос включает неизменяемые аппаратные уникальные идентификаторы (серийные номера чипов, известные как ECID), которые функционируют как суперкуки, и они видны вашей локальной сети, вашему интернет-провайдеру (или гостинице, или кофейне), всем, кто следит за сетевыми магистралями, и, конечно же, самим Apple.

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

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

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

Читать далее
Всего голосов 27: ↑25 и ↓2+23
Комментарии8

Разработчик засыпает, просыпается маркетолог: как я приложение продвигал

Время на прочтение9 мин
Количество просмотров3.8K

Когда-то давно я думал, что вот напишу приложение, выложу, а дальше оно как-нибудь само наберёт популярность, взлетит в чарт, принесёт денег. Так бывает, но готовиться нужно к тому, что придётся заниматься «выводом на рынок и продвижением», и на это потребуются время и силы.

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

Для продвижения нужен хоть какой-то план. О том, что делать в теории, уже написано много раз. Давайте посмотрим, что получилось на практике.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии6

Как я визуализировал граф билда. Build Graph for Xcode

Время на прочтение11 мин
Количество просмотров8.8K

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

Пет — отличный способ прокачаться как начинающим разработчикам, так и опытным. Во время разработки пет-проекта можно побывать и программистом, и дизайнером, и менеджером, и маркетологом. 

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

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии6

Редакторы документов МойОфис появились на macOS. Что они умеют?

Время на прочтение7 мин
Количество просмотров10K

Привет, Хабр! В начале этого года мы представили очередное крупное обновление 2022.01, а вместе с этим выпустили пакет приложений «МойОфис Стандартный» на macOS. Релиз для «Мака» стал ответом на многочисленные запросы наших коммерческих пользователей. Платформа Apple занимает второе место в рейтинге самых популярных десктопных ОС, и довольно востребована в бизнес-среде, в том числе и в России.

Под катом мы рассмотрим возможности «мак-версии» редакторов «МойОфис Текст» и «МойОфис Таблица». Приложения позволяют работать с документами в форматах ODF (ODT, ODS) и OOXML (DOCX, XLSX), импортировать данные из CSV-файлов и экспортировать в PDF. А кроме того: работать со сводными таблицами, формулами, макросами, перекрестными ссылками и решать многие другие задачи. Продукт совместим с macOS Catalina, Big Sure, а также Monterey.

Читать далее
Всего голосов 29: ↑27 и ↓2+25
Комментарии33

Таймер в .NET с интервалом 1 мс. macOS

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров3.4K

Ранее мы уже посмотрели, чем нам может помочь .NET в реализации задачи, обозначенной в теме статьи, в Windows. Сейчас рассмотрим её решение в macOS.

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии1

Подключаем RDP-клиента Windows к MacOS

Время на прочтение4 мин
Количество просмотров16K

Привет, Хабр! Меня зовут Холодаев Алексей, я младший системный администратор в Cloud4Y. Сегодня хочу поделиться способом подключения стандартного RDP-клиента Windows к MacOS. Если интересно, ныряйте под кат.

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии8

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн

Как устроен счетчик ссылок в Swift

Время на прочтение14 мин
Количество просмотров18K

Мы в iOS команде Vivid Money стремимся глубже понимать инструменты, которыми пользуемся каждый день. Один из таких – это язык программирования Swift. Он состоит из нескольких частей: компилятора, стандартной библиотеки и рантайма. Компилятор преобразует код понятный для человека в код понятный компьютеру. Стандартная библиотека предоставляет разработчикам готовые структуры данных, оптимизированные для применения в боевых проектах. А вот рантайм – это, поистине, сердце языка. В нем происходит выделение памяти, динамическое приведение типов и подсчет ссылок. И нам стало интересно, как реализован подсчет ссылок в рантайме. И  вот мы вдохновились публикациями легендарного Майка Эша (Mike Ash), собрали компилятор и начали исследовать. Посмотрели на работу алгоритма подсчета ссылок и в этой статье расскажем вам о нём.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии14

Apple Event Unleashed — текстовая трансляция

Время на прочтение4 мин
Количество просмотров12K
До хэллоуина еще вроде бы порядочно, но количество тыкв увеличивается каждую секунду. В них превращаются многочисленные макбуки, причем не только на процессорах с архитектурой x86, но и еще недавно свежие и быстрые модели на Apple M1.

Прошлогодние Macbook и Mac mini оказались просто на удивление удачными. Apple удалось обеспечить на 99% бесшовный переход между платформами. Я сам из любопытства купил Mac mini с M1, надеясь поймать много веселых багов и написать про них. Но вместо этого получил рабочую машинку, которая кодирует видео в пять (!) раз быстрее по сравнению с предыдущим поколением, а потребляет энергии в три раза меньше.

Но были и ограничения. В первую очередь удивлял максимальный объем памяти 16 Гбайт, что для серьезной работы, конечно, негусто. Портов совсем мало. Ну и ядер бы побольше да побыстрее.

Давайте посмотрим, что нам покажет дедушка Тим. Он уже зовет.

image

Читать дальше →
Всего голосов 41: ↑30 и ↓11+19
Комментарии82

Проект Copland. История крупнейшего провала Apple

Время на прочтение12 мин
Количество просмотров17K


В первой половине 90-х годов наметился очевидный рывок в эволюции операционных систем для персональных компьютеров. Microsoft уже ведет разработку новейшей Windows 95 на замену устаревшей Windows 3.11, IBM продвигает OS/2 Warp 3, отличавшуюся высокой надежностью и достаточно большим ассортиментом прикладных программ. На этом фоне Mac OS 7, ведущая отсчет версий с 1991 года, выглядела уже несколько архаичной. В Apple решили переписать операционную систему с нуля, создав на замену System 7 современную, гибкую и мощную платформу, способную конкурировать с новейшими разработками Microsoft на равных. Проект получил наименование Copland.
Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии31

Apple Event. Текстовая трансляция (пост обновляется)

Время на прочтение6 мин
Количество просмотров20K

Здравствуйте, уважаемые поклонники и ненавистники техники Apple. С вами Сергей Вильянов, который снимал SIM-lock еще у первых iPhone, когда работал в "Компьютерре", а теперь покупает айфоны для издевательств строго за свои.

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

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

И да, если вам померещились ирония и сарказм, ВАМ НЕ ПОМЕРЕЩИЛОСЬ.

Погнали.

Читать далее
Всего голосов 78: ↑68 и ↓10+58
Комментарии34

Бекап макбуков на удаленный сервер Time Machine для путешественников

Время на прочтение4 мин
Количество просмотров12K

У меня есть рабочий макбук и я часто путешествую. Я боюсь потерять данные на нем, поэтому я делаю бекапы через родную Time Machine на удаленный сервер. Для этого я поднял в офисе сервер SMB, который всегда доступен через VPN.

Проблема: если включить автоматический бекап в Time Machine, система будет постоянно бекапится даже через тонкий мобильный интернет в самолете, мешая работать, исчерпав весь канал.

Решение: я написал скрипт Time Machine Traveler, который проверяет скорость доступа к SMB шаре и запускает бекап только если качество соединения высокое.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии22

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

Время на прочтение10 мин
Количество просмотров8.3K

Начиная с macOS 10.15 Catalina разработчикам требуется заверять свои приложения и утилиты командной строки. Если с приложениями, распространяемыми через App Store все прозрачно, то распространение консольных утилит может вызвать сложности. В данной статье я покажу, как можно доставлять такие утилиты до конечных пользователей (будем проделывать все необходимые операции в терминале, а также автоматизируем эти действия двумя вариантами - через bash-скрипт и с помощью SPM executable).

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Сборка Docker-образов для MacBook M1 под Linux

Время на прочтение5 мин
Количество просмотров24K

Мы собираем зависимости для нашего тестового окружения в Docker-образ, что оказалось очень удобно. Но недавно у нас появился разработчик с MacBook M1, и резко встал вопрос о возможности поддержки двух платформ.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии11
Изменить настройки темы

Вклад авторов