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

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

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

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

Потоки под капотом: как работают многопоточность и синхронизация в iOS

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

Привет! Я Александр Сычев, iOS‑эксперт в KTS. В этой статье поговорю о потоках.

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

В данной статье мы рассмотрим детали этой темы, а именно:

проанализируем работу потоков;

выявим скрытые механизмы, обеспечивающие их функционирование;

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

Читать далее

Новости

Кросскомпилируем под macOS с OSXCross

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

Давно интересовал вопрос возможности кросскомпиляции под macOS. Как оказалось, на самом деле это не составит особых проблем.

В этой статье мы установим тулчейн, а так же кросскомпилируем пару учебных примеров на языках C и Rust. В качестве host будет выступать Ubuntu 24.04 на amd64, а в качестве target - macOS 14 (Sonoma) на Apple Silicon.

Читать далее

CryptoPro CSP на macOS

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

Ниже расширенная версия с дополнительным вступлением и описанием проблемы, основанная на ранее предоставленных рекомендациях по настройке Stunnel для работы с Rutoken и CryptoPro CSP на macOS.

В современных условиях безопасный обмен данными по сети — одна из важнейших задач для организаций и частных лиц. При этом важно не только шифровать трафик, но и соблюдать требования национальных криптосредств (например, CryptoPro), а также использовать надёжные аппаратные токены (например, Rutoken).

Применение Stunnel позволяет «обернуть» обычное TCP-соединение в защищённый TLS-туннель. Однако на macOS при работе со стандартными драйверами часто возникает конфликт между встроенным Apple Security Framework и CryptoPro. Кроме того, если вы используете Rutoken для хранения сертификатов, нужно убедиться, что система «видит» корректный считыватель и сертификаты. Все эти вопросы усложняют процесс настройки Stunnel, но при правильном подходе их можно успешно решить.

Читать далее

Как мы добавляли поддержку Apple Silicon в анализатор (arm64)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров833

С выходом PVS-Studio 7.34 стали доступны нативные сборки анализатора для macOS на архитектуре Apple Silicon (ARM). В этой заметке мы хотели бы подробнее рассказать о проделанной работе, а также предложить советы по портированию кроссплатформенных инструментов на новую перспективную архитектуру.

Читать далее

Истории

Shortcuts на Mac или как сократить Dock

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров950

Всем привет!

Меня зовут Ваня и это моя первая статья на Хабре (надеюсь, что и не последняя).

Содержание за 2 секунды: сокращаем Dock при помощи Shortcuts.

Отправиться в путешествие по Shortcuts

iOS-разработчики игнорируют важную системную фичу, и это ломает их приложения

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

Как минимум одна из фич iOS реализована действительно хорошо — это системное резервное копирование, и всё, что связано с автоматическим переносом данных при переезде с одного iPhone на другой.

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

И тут возникает закономерный вопрос — почему так получается, что с этим делать?

Читать полностью

Todo-лист на максималках: разбираем архитектуру крупного приложения

Уровень сложностиСложный
Время на прочтение31 мин
Количество просмотров6K

В этой статье я покажу, как устроена многослойная архитектура крупного реактивного web-приложения, и особенности его запуска под Electron. Материал будет полезен, если вы планируете начать свою разработку, хотите попробовать себя в роли архитектора, вас не пугает Shared Workers, Service Workers или, в конце концов, вы хотите это попробовать или разобраться.

Читать далее

5 способов установить и нативно использовать ChatGPT на компьютерах Mac

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

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

Читать далее

Зачем нужна нотаризация приложений Apple?

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

Подписание и «нотариальное заверение» (в дальнейшем мы используем устоявшийся в сообществе термин нотаризация — прим. ред.) приложений и другого исполняемого кода — тема довольно спорная. За последние годы Apple постепенно вводила всё более строгие правила и теперь требует, чтобы разработчики заверяли свои приложения и код, распространяемые даже вне App Store. В этой статье мы попытаемся объяснить, почему это необходимо и как это усиливает безопасность Mac.

В идеале всем хочется быть уверенными, что любой код, который запускается на нашем Mac, а в частности приложения, — это именно то, что создал разработчик, без каких‑либо изменений. Кроме того, в случае обнаружения вредоносного кода macOS может оперативно защитить нас, отказав в его запуске.

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

Читать далее

Зачем я написал ещё одну утилиту мониторинга CPU для Мака

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.1K

Привет, чат. Хочу во-первых рассказать вам историю разочарования в довольно известной утилите мониторинга потребления энергии и загрузки CPU для macOS — MX Power Gadget. А во-вторых, поделиться очень простой заменой, которую я собрал за пару вечеров — pgauge.

Читать далее

[САТИРА] Ох, блин, во что ж ты вляпался в этот раз?

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

Перевод очень неоднозначного поста о популярном Гитхаб репозитории, или:

Уморительный рассказ о том, как ленивое воскресенье, лагучий браузер и стремление познать Раст, случайно произвели привлекательный графический монитор системы.

Читать далее

Управление памятью в ассемблере для Apple Silicon

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

В статье мы познакомимся с языком ассемблера для Apple Silicon (ARM64). Рассмотрим основные регистры, запись данных из регистров в память и обратно. Затронем также и базовые навыки работы с LLDB.

Читать далее

macOS сильно переоценена

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров25K

Добрый день! Сегодня я хочу обсудить с вами весьма противоречивую для меня операционную систему — macOS. Вокруг неё ходит немало легенд, слухов и мифов, которые я постараюсь сегодня развеять. Усаживайтесь поудобнее — статья будет интересна как опытным маководам, так и тем, кто никогда не видел эту операционную систему вживую.

Окунуться в мир macOS

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

Как сделать React Server Components в Electron с помощью Next.js и без открытых портов

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

Статья про то как заставить работать React Server Components внутри Electron приложения с помощью Next.js при этом не запуская локальный сервер и не открывая порты. С возможностью публикации стандартными инструментами. А также исследование зачем все это надо.

Читать далее

Макросы в Swift: Практическое руководство по использованию

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.3K

Недавно я столкнулся с задачей, которая требовала написания большого объема шаблонного кода. Вспомнив, что в Swift 5.9 появились макросы, созданные специально для генерации шаблонного кода, я решил попробовать их в действии. Ранее я работал с макросами в Objective-C и C++, поэтому ожидал увидеть нечто похожее. Однако, поискав информацию, я понял, что макросы в Swift — это совсем другое, не похожее на то, что я встречал в других языках.

В отличие от макросов в C++ или Objective-C, в Swift нужно писать гораздо больше кода, соблюдая при этом строгие правила оформления. Иначе можно столкнуться с загадочными ошибками компиляции, решение которых не всегда очевидно. Дополнительные трудности возникают из-за того, что многие статьи и видео просто повторяют официальную документацию, не объясняя понятным языком, как именно использовать макросы. Часто вместо этого начинаются сложные рассуждения о структуре AST (Abstract Syntax Tree) или приводятся примеры кода, которые демонстрируют результат работы макроса, но не показывают, как его создать и отладить.

Именно из-за таких трудностей я решил написать эту статью. Её цель — максимально просто, без углубления в теорию, объяснить, как можно уже сегодня начать использовать макросы в Swift. Если вам захочется изучить эту тему подробнее, вы всегда сможете обратиться к официальной документации или материалам с WWDC, где этот вопрос разобран более детально. А если вам понравится моя подача, пишите в комментариях — я постараюсь объяснить сложные моменты в отдельных статьях.

Читать далее

Автоматизируем подключение Сisco AnyConnect на Mac OS

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.4K

Так сложилось, что у меня на работе используется Cisco AnyConnect Secure Mobility Client. Периодически приходится подключаться к рабочему VPN используя эту программу. Мне, как человеку постоянно работающему в терминале, захотелось иметь под рукой консольную утилиту, которая сама введет пароль и TOTP, после чего инициирует подключение.

Как это сделать?

Он вам не «MacOS»

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров17K

Рассказываю и показываю что можно сотворить с iMac без прав администратора и установки стандартных средств разработки.

Погрузиться

arm linux на apple silicon mac

Уровень сложностиПростой
Время на прочтение1 мин
Количество просмотров1.9K

Я следовал инструкциям статьи на японском.

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

Читать далее

Быстрый поиск по разной документации

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.6K

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

Сначала мне пришла мысль взглянуть на уже существующие решения, среди которых есть мною любимый Zeal, однако, он доступен только для Windows и Linux, я же крепко сижу в заложниках на MacOS из-за специфики работы и удобства.

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

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

Решение с быстрым поиском

В Firefox и Google Chrome есть возможность добавить собственную поисковую систему (или же поиск по сайту), чем собственно я и воспользовался. При поиске в devdocs все GET-запросы уходят по урлу:

Читать далее

Эти айфоны ещё будут жить: пишем и деплоим свои приложения из XCode на старые iPhone

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6K
image

Согласно политике Apple, компания чётко разграничивает время жизни тех или иных версий iOS. Обычно, уже через 3-4 года определенная версия iOS считается устаревшей и публиковать новые версии приложений с её поддержкой больше нельзя. Однако в ходу всё ещё «старые», но по настоящему трушные и любимые многими «пятёрки», «четвёрки», а среди коллекционеров — и «тройки»! Способ, о котором я расскажу в статье, раскопали ещё «олды», однако он позволяет запускать и отлаживать «хоумбрю» приложения на старых айфонах, потенциально принося им новую жизнь с кастомными приложениями! Интересно? Тогда добро пожаловать под кат!
Читать дальше →
1
23 ...

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