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

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

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

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

Убираем мусор от XCode

Время на прочтение2 мин
Количество просмотров33K
image

На макбуке кончается место, и остро стоит вопрос что бы прибить. Не понятно, куда оно делось? Знакомая ситуация?

Возможно для кого-то будет новостью, что есть куча мусора, оставшаяся после разработки в XCode, который можно безболезненно прибить. Об этом и поговорим…
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии5

На злобу дня: кроссплатформенный клиент для Telegram на .NET Core и Avalonia

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

В этой статье я расскажу, как реализовать кроссплатформенное приложение на .NET Core и Avalonia. Тема Телеграма очень популярна в последнее время — тем интереснее будет сделать клиентское приложение для него.


Egram


Статья затрагивает достаточно базовые концепции разработки на Avalonia. Тем не менее, мы не будем писать "Hello, World". Вместо этого предлагается рассмотреть реальное приложение. Изучим как общую архитектуру приложения, так и отдельные компоненты.


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


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

Читать дальше →
Всего голосов 29: ↑28 и ↓1+27
Комментарии22

Релиз PVS-Studio для macOS: 64 weaknesses в Apple XNU Kernel

Время на прочтение29 мин
Количество просмотров6.1K
Баг в яблокеНовая версия PVS-Studio 6.23 работает под управлением macOS и позволяет проверять проекты, написанные на языке C и C++. К этому событию наша команда решила приурочить проверку XNU Kernel.

PVS-Studio для macOS


С выходом версии анализатора для macOS, PVS-Studio можно смело называть кроссплатформенным статическим анализатором кода для C и C++.
Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии12

В macOS High Sierra обнаружились «Черные дыры»

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


Живешь себе живешь, репу не чешешь, в ус не дуешь. И тут внезапно тебе нужно переезжать с обветшавшего iPhone 6 на новенький iPhone X. А поскольку вся твоя жизнь за минувшие семь лет хранится в фоточках и видосиках старого смартфона, терять это добро тебе очень не хочется. И вот ты бэкапишь свое хозяйство через iTunes на Mac, пытаешься переехать на новую «балалайку» и вдруг оказывается, что места для бэкапа нового телефона на жестком диске твоего компьютера уже нет. Ты начинаешь судорожно расчищать авгиевы конюшни дисковое пространство, но результата «нема». Причем удаление «левых файлов» и очистка корзины ни к чему не приводит. Вот такой триллер разыгрался недавно с вице-президентом Parallels Николаем Добровольским. Под катом детективная история про обнаружение им «черной дыры» в macOS High Sierra, поиски истины и счастливый конец, которому могли бы позавидовать главные герои кинофильма «Титаник».
Читать дальше →
Всего голосов 93: ↑80 и ↓13+67
Комментарии107

Истории

На чёрном рынке продают валидные сертификаты подписи исполняемого кода для обхода антивирусов

Время на прочтение4 мин
Количество просмотров28K
Сертификаты подписи кода уже несколько лет используются злоумышленниками для вредоносных программ. Ещё в 2010 году исследователи обратили внимание на образцы зловредов с сертификатами, скопированными из «чистых» файлов. Естественно, такая подпись кода не проходила проверку Authenticode (см. презентацию F-Secure на конференции CARO 2010).



Очередной ласточкой стал в 2011 году «правительственный» зловред Stuxnet. Он использовал четыре 0day-уязвимости в Windows, чтобы распространиться и получить права администратора, и был подписан настоящими сертификатами, украденными у Realtek и JMicron. Зловред устанавливался в систему как драйвер Microsoft.



Потом появились другие примеры, а примерно с 2015 года заработал полноценный чёрный рынок валидных сертификатов от авторитетных удостоверяющих центров (УЦ). Такие сертификаты продаются на подпольных форумах вроде российского Antichat.

Есть распространённое мнение, что сертификаты безопасности на чёрном рынке украдены у реальных владельцев. Это не так. Их действительно выдают настоящие УЦ.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии52

Как кешировать данные AVURLAsset, загруженные AVPLayer'ом

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

iFunny app image


Привет, Хабр. Меня зовут Влад. Я работаю iOS разработчиком в FunCorp. Мы делаем приложения в сфере развлечений. Возможно, вы слышали о нашем флагмане iFunny и популярном в СНГ приложении АйДаПрикол. В этой статье я расскажу о том, как получить данные видео, загруженные плеером, для дальнейшей работы с ними.

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

Как научить Launchpad удалять приложения, установленные не через App Store

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

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


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


Добро пожаловать под кат, если интересно, как это можно побороть...


image

Читать дальше →
Всего голосов 33: ↑22 и ↓11+11
Комментарии26

PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA

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

PVS-Studio 2018: CWE, Java, RPG, macOS, Keil, IAR, MISRA

Приближается 2018 год и пора подумать о новых направлениях развития нашего статического анализатора PVS-Studio. Сейчас наибольший интерес для нас представляет поддержка языка Java. Дополнительно мы рассматриваем возможность поддержки языка IBM RPG. Не менее интересно развить анализ C, C++ C# кода в направлении выявления потенциальных уязвимостей. Ещё нам хочется поддержать анализ C и C++ кода на платформе macOS, и, наконец, доделать поддержку компиляторов от компаний Keil и IAR. Никуда мы не денемся и от поддержки стандарта MISRA. Перечислено много, и на всё одного 2018 года нам не хватит. Поэтому давайте вместе с нами пообсуждаем наши планы и выберем самые приоритетные направления.
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии88

Зачем я купил Mac Mini (Late 2012) накануне 2018 года?

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


~ Продать MacBook Pro, которому уже перевалило за 3 года
~ Сменить 13'' экран на парочку 22'' и повысить комфорт разработки
~ Получить мощную машину для быстрой компиляции проектов на Swift


Это основные причины, повлиявшие на покупку Mac Mini. Первые два пункта достаточно очевидны, но вот к последнему пункту явно нужны комментарии…

Читать дальше →
Всего голосов 95: ↑76 и ↓19+57
Комментарии195

Swift не нужен?

Время на прочтение10 мин
Количество просмотров31K
Не перестаю задаваться вопросом — какие у Apple планы на Swift и Objective-C? Когда в 2014 году появился Swift, его создатель Крис Латтнер утверждал, что эти два языка смогут сосуществовать бесконечно долго. Из почтовой рассылки пользователям Xcode:
3 Июня 2014
McLaughlin, Michael P.
Кто-нибудь знает, действительно ли Apple собирается прекратить поддержку С и С++? Fortran уже не поддерживается, хотя осталось еще много кода на Fortran, и сравнительно нового, как в MultiNest.
Пожалуйста, скажите, что это не так. Не все считают, что «опытные пользователи» — это те, кто просто создает полнометражные мультики. Многие из них ученые и инженеры.

Здравствуйте, Michael,
Мы не строили планы на что-либо подобное. Swift — это просто новый вариант разработки под платформу. Мы не собираемся прекращать поддержку ни C, ни C++, ни Objective-C. Если вы разрабатываете на одном из этих языков, можете свободно продолжать его использовать.

— Крис.
Оригинальный текст письма
> On Jun 3, 2014, at 5:45 AM, McLaughlin, Michael P. <mpm...@mitre.org> wrote:
> Does anyone know, for real, if Apple intends to stop supporting C and C++?
> That’s what it sounded like. They already do not support Fortran even though
> there is a *lot* of Fortran code out there, even fairly new code like MultiNest.
>
> Please say it isn’t so. Not all of us consider “power users” to be just those
> who create feature-length cartoons. Many are scientists and engineers.

Hi Michael,

We have no plans to do anything like that. Swift is a new option for developing
on the platform. We have no plans to drop C, C++ or Objective-C. If you’re
happy with them, please feel free to keep using them.

-Chris


Дело в том, что в это никто не верит. Крис Латтнер уже давно покинул Apple, и если его утверждение окажется ложным, он не сможет принять критику от лица компании. В целом разработчики согласились на том, что Apple в конечном итоге откажется от Objective-C, и Swift станет единственным языком «первого класса» для разработки Cocoa-приложений.
Читать дальше →
Всего голосов 29: ↑16 и ↓13+3
Комментарии33

Parallels Desktop 13 — семь советов для эффективной работы

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


По умолчанию в Parallels Desktop 13 выставлены оптимальные настройки для работы. Но, если вы привыкли брать от жизни все, держите несколько советов, как увеличить быстродействие и сохранить заряд батареи вашего Макбука.
Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии18

Управление плеером Yandex.Music в OSX, используя клавиатуру без медиа клавиш

Время на прочтение2 мин
Количество просмотров30K
Недавно я принял решение развернуть в офисе на рабочем компьютере Hackintosh. Все получилось. Единственное, что мне не нравилось это отсутствие медиа клавиш на офисной клавиатуре. Ими я привык управлять музыкой, в том числе на сервисе Yandex.Music. Данная статья посвящена тому, как я исправил ситуацию.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии26

RxSwift: немного о share(), replay(), shareReplayLatestWhileConnected() и других классных операторах

Время на прочтение3 мин
Количество просмотров14K
Я уже писал про Publish, Connect и RefCount в RxSwift. Для того, чтобы лучше раскрыть тему, представляю вашему вниманию перевод другой замечательной статьи, про различия между такими операторами, как share(), replay(), replayAll(), shareReplay(), publish() и shareReplayLatestWhileConnected().

Частая ошибка, которую совершают новички, взявшиеся за освоение Rx — это непонимание того, что цепочка операторов на Observable выполняется заново с каждым новым подписчиком:

let results = query.rx.text
    .flatMapLatest { query in
        networkRequestAPI(query)
    }
results.subscribe(...)   // один запрос в сеть
results.subscribe(...)   // другой запрос

Мы имеем несколько подписчиков на один-единственный Observable, но мы не хотим, чтобы его код исполнялся с каждым новым Subscriber'ом. Для этого в RxSwift имеется несколько операторов. Вот резюмирующая табличка, описывающая каждый из них:

image
1 — ретранслирует произведенных до подписки элементов не больше, чем bufferSize.
2 — ретранслирует 1 элемент, произведенный до подписки, до тех пор, пока существует хотя бы один подписчик.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии2

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

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Parallels Desktop для Mac 13: к macOS High Sierra готовы

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


Год назад вышла 12-я версия Parallels Desktop — утилиты для виртуализации Windows на macOS. Быстрая. Простая. Удобная. Но мы не сидели сложа руки. В течение года встречались в офф-лайне с пользователями, провели дополнительные опросы среди купивших и тестирующих наше ПО, изучили перспективные новинки от Apple и Microsoft, покопались в пользовательских проблемах, а также прошерстили тематические форумы. Все это позволило более внимательно отнестись к просьбам и учесть ключевые пожеланиям. И сегодня хочется рассказать о некоторых фишках новой — 13-й — версии Parallels Desktop. Тут много любопытного не только для разработчиков, но и для обычных пользователей. Под катом описаны наиболее интересные нововведения. Всего их около полусотни. Enjoy! Ну, и делитесь впечатлениями в комментариях.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии30

Клонирование игры Lode Runner с первого ПК в СССР «БК-0010» плюс несколько слов о программировании игр в конце 80-х

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

Недавно я оказался в не совсем обычной для себя ситуации вынужденного безделья. Пару недель поваляв дурака, я стал чувствовать, что это не такое уж и веселое занятие, которое к тому же еще и стало переходить в скуку. И мне надо было себя занять чем-нибудь относительно полезным. Раньше мне периодически приходили в голову мысли о том, чтобы вернуть к жизни какую-нибудь старую игру из времен моей юности. Но я всегда гнал такие идеи прочь, так как понимал, что "никому это теперь не надо". Но сейчас у меня было свободное время и, главное, было желание. В результате для клонирования я выбрал один из вариантов игры Lode Runner, в который я когда-то играл на первом персональном компьютере времен позднего СССР, который назывался БК-0010. Не думаю, что многие о нем помнят, так как мир «железа» поменялся с тех времен очень сильно. Однако сам Lode Runner с этого БК-0010 был достаточно уникален своими правилами среди других одноименных Lode Runner-ов. Эта версия игры была моей самой любимой, как мне кажется, по объективным причинам, хотя… может быть тут дело просто в ностальгии. В результате я сумел себя мотивировать тем, что "лично мне", а, возможно, и "всему миру", эта игра может быть интересна, и на её восстановление стоит потратить время (ссылка на полученный результат).

Для начала взглянем на оригинал с БК-0010 (хвала Интернету, в котором можно найти почти всё):
Всего голосов 68: ↑67 и ↓1+66
Комментарии146

Digest MBLTdev — свежак для iOS-разработчиков

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


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



The Ultimate Guide to Branch Products
Если вы что-то слышали про Branch, то, возможно, знаете, что они предоставляют систему дип линков. На самом деле у Branch сейчас есть целый арсенал продуктов для любой стадии развития приложения.
BRANCH.APP.LINK

HomePod firmware provides detailed look at iPhone 8 screen layout
Скандалы, интриги, расследования. Вопрос один: это вообще законно? Скоро узнаем. Ждать осталось недолго.
9TO5MAC.COM
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии0

Книга «Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание»

Время на прочтение9 мин
Количество просмотров9.1K
image Сценарии командной оболочки помогают системным администраторам и программистам автоматизировать рутинные задачи с тех самых пор, как появились первые компьютеры. С момента выхода первого издания этой книги в 2004 году многое изменилось, однако командная оболочка bash только упрочила свои лидирующие позиции. Поэтому умение использовать все ее возможности становится насущной необходимостью для системных администраторов, инженеров и энтузиастов. В этой книге описываются типичные проблемы, с которыми можно столкнуться, например, при сборке программного обеспечения или координации действий других программ. А решения даются так, что их легко можно взять за основу и экстраполировать на другие схожие задачи.

Цель этой книги — продемонстрировать практические приемы программирования сценариев на bash и познакомить с самыми распространенными утилитами на коротких и компактных примерах, не вдаваясь в излишние подробности. Экспериментируйте с этими сценариями — ломайте, исправляйте и приспосабливайте их под свои нужды, чтобы понять, как они работают. Только так вы сможете решать самые сложные задачи.
Читать дальше →
Всего голосов 5: ↑3 и ↓2+1
Комментарии0

Приложения на iOS, Android и Mac для разработчиков

Время на прочтение4 мин
Количество просмотров15K
В этой статье мы представим разноплановые функциональные инструменты разработчика, доступные на официальных маркетах для iOS, Android и Mac, которые способны облегчить жизнь как начинающим кодерам, так и более опытным разработчикам. Возможно, вы обнаружите в нашем списке интересную для себя утилиту, о которой по каким-либо причинам не слышали, и найдете ей применение.

Читать дальше →
Всего голосов 10: ↑6 и ↓4+2
Комментарии3

Упрощаем работу с CloudKit, или синхронизация в духе Zen

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

Введение


Облачная синхронизация — закономерный тренд нескольких последних лет. Если вы разрабатываете под одну или несколько Apple платформ (iOS, macOS, tvOS, watchOS) и задачей является реализация функционала синхронизации между приложениями, то в вашем распоряжении есть очень удобный инструмент, или даже целый сервис — CloudKit.

Нашей команде постоянно приходится прикручивать функционал синхронизации данных с CloudKit, в том числе в проектах, которые используют CoreData в качестве хранилища данных. Поэтому возникла, а затем была реализована идея — написать универсальный интерфейс для синхронизации.

CloudKit — это не просто фреймворк. Это полноценный BaaS (Backend as a Service), т.е. комплексный сервис с полноценной инфраструктурой, включающей в себя облачное хранилище, пуш-уведомления, политики доступа и многое другое, а также предлагающий универсальный кросс-платформенный программный интерфейс (API).
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

Инструменты для команды удалённых разработчиков

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


Сегодня все чаще говорят о возможности удаленной работы. Тут и там большие компании анонсируют повсеместный исход офисного и не только планктона из корпоративных теплиц. Разработчики – первые, кого вспоминают в этот контексте. Работая удалённым разработчиком, вы зачастую не можете встретиться лицом к лицу с клиентом, лично представить свой проект, присесть за стол к коллеге, чтобы вместе решить какую-то проблему. Из-за этого у некоторых может возникнуть впечатление, что у удалённой работы есть ряд серьёзных недостатков. На мой взгляд, и по мнению десятков тысяч удаленных разработчиков это ложное впечатление. Удалённые разработчики в целом счастливее, работают усерднее, и быстро осваивают подходящие инструменты для совместной работы. Конечно, удалённая работа — вещь непростая. Ведь нас с детства приучают к тому, что нам нужен коллектив, и что общаться нужно лицом к лицу. Уходя из офиса на удалёнку, приходится учиться пользоваться инструментами, компенсирующими географическую распределённость команды. Под катом — подборка инструментов, которая поможет вам эффективно взаимодействовать с коллегами в других городах и странах. Безусловно, это не весь инструментарий. Было бы любопытно прочесть о ваших находках в комментариях к данной статье.
Всего голосов 41: ↑37 и ↓4+33
Комментарии16

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