Все потоки
Поиск
Написать публикацию
Обновить
91.14

macOS *

Настольная ОС компании Apple

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

Вопросы разработчикам Paragon NTFS for Mac

Время на прочтение5 мин
Количество просмотров12K
Помню школьные годы, когда на каждом «реаниматоре» неотъемлемой частью был Paragon Partition Manager. О виртуальных машинах мы еще только мечтали, и чтобы поставить несколько операционок, школьникам приходилось «резать» полуторагигабайтный диск.

«Есть внешний жесткий диск и 2 тачки (одна на Win, вторая на OS X). Доступ к диску нужен с обеих машин.»

Сейчас, когда школьники обзавелись бородами, животами, детьми и зеркалками (не болезнями, а фотоаппаратами), встает проблема, как на горячо любимый виндовый терабайтник, на котором куча фоток с выпускного и сохранялок с Fallout 2, залить много нового видео с Mac`a, на котором стоит сверхзаботливый El Capitan («В целях вашей безопасности мы лишим вас некоторых прав. Начнем с прав root`а.»).

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



На Гиктаймсе в комментарии к статье про NTFS for Mac kukkk «задал» разработчикам Paragon два вопроса:
  • Как вы развивали этот продукт
  • Как устроен этот продукт

Я решил немного «поднажать» и поискать ответы из первых рук.

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

Вот что мне удалось накопать про NTFS for Mac.
(Paragon NTFS for Mac — драйвер с поддержкой OS X El Capitan, который позволяет форматировать, проверять и исправлять ошибки разделов NTFS.)
Читать дальше →

Дистрибуция приложений. Часть 1: создание Formula для Homebrew

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

Вступление к серии


Передо мной недавно встала задача, как распространять одну консольную утилиту? Обычные мои инструменты вроде pip, npm и gem не подходили в силу языка самой утилиты — bash. Тогда стало понятно, что нужно распространять свое приложение в том числе и через системные пакетные менеджеры. Для Mac — в силу отсутствия встроенного — таких пакетных менеджеров несколько. И у каждого из них есть свои особенности и недостатки. И в первой части я хочу более подробно остановиться на Homebrew, и как создавать пакеты для него.

Ну а чтобы установить приложения на Linux, то нужно будет собирать пакеты таких форматов: .tar.gz, .deb и .rpm. О чем я расскажу во второй части.
Читать дальше →

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

Время на прочтение4 мин
Количество просмотров6.8K
Анонс мероприятия Apple, 3D графика без OpenGL, как использовать UILayoutGuide из кода и война с AdBlock — об этом и не только рассказывает подборка свежих статей в 57 выпуске Digest MBLTdev.

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

Читать дальше

WG Labs объявляет конкурс разработчиков

Время на прочтение2 мин
Количество просмотров9.2K
3 марта стартовал конкурс для разработчиков от WG Labs, призванный выявить новые таланты в сфере игровой индустрии.


Читать дальше →

Весёлые табы в MAC OS X или история про тот самый Tab View

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

История началась с того, что мне понадобилось написать приложение под Mac OS X. Все реже можно увидеть статьи по поводу разработок под desktop, да еще и под Mac OS X, но эта тема именно об этом.

Я уже писал много чего на QT, а тут встала задача использовать исключительно Cocoa.

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

Вот в проекте я дошел до разработки пользовательского интерфейса и тут мне понадобился классический шаблон Tab View. Продолжение читайте уже под катом.

Подробности

До чего доводит идея (Objective-C) — target-action на блоках и много рантайма

Время на прочтение14 мин
Количество просмотров9.4K
Пришла мне как-то в голову идея, а можно ли взять блок и отдать для target-action?
Есть готовые решения, как к примеру BlocksKit и другие библиотеки, однако их решение заключается в сохранении блока, установкой таргета и вызова блока из указанного селектора.

Зачем тогда нужна эта статья?

Я захотел создать способ генерации селектора, по которому будет вызван блок. Что здесь сложного, скажете вы? imp_implementationWithBlock + class_addMethod и дело закрыто. Но при этом подходе есть одно серьезное требование, это первый аргумент блока — владелец метода.

Как обойти это требование и сделать такое?
    [button addTarget:self action:[self ax_lambda:^(UIButton *sender, UIEvent *event){
        NSLog(@"click on button %@, event = %@", sender, event);
    }] forControlEvents:UIControlEventTouchUpInside];

    [button addTarget:self action:[self ax_lambda:^{
        NSLog(@"click");
    }] forControlEvents:UIControlEventTouchUpInside];

Или даже вот так
    __block NSInteger sum = 0;
    [self performSelector:[self ax_lambda:^(NSNumber *argA, NSNumber *argB) {
        sum = [argA integerValue] + [argB integerValue];
    }] withObject:@(2) withObject:@(3)];
    //sum — 5

    SEL selSum = [self ax_lambda:^NSInteger(NSInteger argA, NSInteger argB){
        return argA + argB;
    }];
    NSInteger(*funcSum)(id, SEL, NSInteger, NSInteger) = (NSInteger(*)(id, SEL, NSInteger, NSInteger))objc_msgSend;
    NSInteger sum2 = funcSum(self, selSum, 2, 3);
    //sum2 — 5

Реализация оказалась настолько интересной, что я решил написать об этом.
Читать дальше →

Закладка в OS X, продлевающая работу от батарейки для избранных приложений

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

Зачем 2 GPU?


Ноутбуки с двумя GPU появились уже очень давно. Первый MacBook Pro с такой технологией вышел еще в 2008 году.

Преимущество двух GPU в гибкости. Когда вам не нужна вся мощь видео системы, вы используете встроенное в процессор видео, наслаждаясь долгой работой от батарейки. Однако если вы захотели развлечься, то к вашим услугам мощный дискретный GPU. Да, он ест батарейку и жужжит вентиляторами, но дает хороший FPS в играх. Как же одному приложению переключать GPU?
Читать дальше →

Objective-C вопросы на уровень middle/senior

Время на прочтение4 мин
Количество просмотров61K
Что должен знать objc разработчик на уровень middle/senior?
К сожалению, четкой черты на вертикальное развитие нет. Парадокс, но чтобы знать что изучить, нужно знать что ты не знаешь.
Я постарался вспомнить самые интересные вопросы, которые мне задавали самому на различных собеседованиях, а так же расширил их множеством вопросов(тем же уровнем) от себя.
Здесь нет общих вопросов вроде: IoC, design patterns, S.O.L.I.D. и т.п.

ВНИМАНИЕ!!!
Помимо вертикального развития немаловажно и горизонтальное

ВНИМАНИЕ!!! (2)
Не пишите в комментарии ответы на вопросы, это дает возможность людям самостоятельно разобраться.
Однако, если у вас имеются интересные вопросы по теме, я с радостью добавлю их в список.

Конечно, это не заменит живого общения, однако позволит неплохо подготовиться к собеседованиям.


Начинаем


Читать дальше →

Apple опубликовала исходный код Swift

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

Язык Swift был представлен сообществу чуть больше года назад, что вызвало достаточно большой резонанс в среде разработчиков, при том не только iOS и OS X.

Но еще больший резонанс вызвал тот факт, что Apple пообещала открыть код компилятора и анонсировала возможность поддержки языка для операционных систем на базе linux.
Читать дальше →

Objective-C: как работают блоки

Время на прочтение5 мин
Количество просмотров28K
В этой статье я расскажу о расположении блоков (__NSStackBlock__/__NSGlobalBlock__/__NSMallocBlock__), о том, как происходит захват переменных и как это связано с тем, во что компилируется блок.

В данный момент, применение блоков в Objective-C начинается практически с первых дней изучения этого языка. Но в большинстве случаев разработчики не задумываются, как блоки работают внутри. Здесь не будет магии, я просто расскажу об этом подробнее.

Начнем с самого начала, как выглядит блок в Objective-C


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

Про использование Visual Studio Code в Unity под OS X

Время на прочтение3 мин
Количество просмотров15K
Привет, Хабр!

Как бы мне этого не хотелось, но интриги в сегодняшней статье не будет. Можно было бы, конечно, выстраивать витиеватые словесные конструкции, играть с синонимами и оттягивать момент истины, но нет — эта статья про использование Visual Studio Code в Unity под OS X. Если точнее, то речь в этом материале пойдет о первичной настройке Unity и привязке редактора VSCode к вашему проекту с помощью плагина dotBunny.

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



Осторожно, под катом несколько скриншотов.
Читать дальше →

Objective-C что такое на самом деле метод и self? + runtime

Время на прочтение8 мин
Количество просмотров23K
Как self и _cmd оказываются в методе? Как работает dispatch table и категории? Что такое мета-класс? Сколько на самом деле методов у ваших классов в ARC и в MRC? Как работает swizzling?
Интересно? Добро пожаловать под кат!

ВНИМАНИЕ!

Эта статья не рассчитана на начинающих разработчиков… Приношу свои извинения за то, что не рассматриваю многие моменты, которые должен знать Objective-C разработчик.


Читать дальше →

Восстанавливаем права доступа под Mac OS X — EL Capitan

Время на прочтение2 мин
Количество просмотров35K
При переходе на El Capitan ряд пользователей столкнулся с проблемами прав доступа — неработающее sudo, некорректная timezone, etc…

Корнем зла является урезанный доступ к /private/etc.

Для начала, вам, стоит проверить свой. Откройте Terminal (это можно сделать через Spotlight) и введите ls -la /private.

$ ls -la /private
total 0
drwxr-xr-x@   6 root  wheel   204 Oct  1 10:20 .
drwxr-xr-x   33 root  wheel  1190 Nov  4 15:56 ..
drwxr-xr-x  106 root  wheel  3604 Nov 13 18:04 etc
drwxr-xr-x    2 root  wheel    68 Aug 23 02:28 tftpboot
drwxrwxrwt   14 root  wheel   476 Nov 16 10:55 tmp
drwxr-xr-x   25 root  wheel   850 Nov  4 17:02 var
$ 

Вот так «drwxr-xr-x» и должны выглядеть права на etc. Если они выглядят больше похожими на «drwx-----», то вам к нам.
Читать дальше →

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

Разработка 2D игр на Windows, Mac OS, Linux и Android без программирования. Часть 2

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

Привет Хабравчане!

Сегодня я хочу рассказать вам о том, как можно сделать игру без навыков программирования. И да, это не просто красивое и заманивающее название, в созданную игру можно будет играть на Windows, Mac OS, Linux, Android и может быть даже на… iOS? Но об этом позже. Перед началом чтения статьи, я хочу дать вам мое понимание того, что создание игры без навыков программирования – это действительно не круто. Но знаете что еще больше не круто? Тот факт, что вы, владея языками программирования, сутками работаете над кодом, путая ваше рабочее место с постелью, нанимаете дизайнеров, договариваетесь со знакомыми музыкантами, платите рекламщикам, выпускаете свой продукт, а он не окупается! Ну, то есть игру, вашу, в любом случае будут скачивать, и какой-то доход будет капать. Но, будете ли вы довольны тем, какой в итоге получилась ваша игра, и как она продается? К чему я это все говорю? Если у вас в голове живет яркая идея, и вы давно хотите попробовать себя в создании игр, но единственный ваш тормозной элемент, это незнание компьютерных языков, смело пробуйте себя в этом деле. Если же вы владеете языками программирования, и может быть наплодили уже пару не плохих проектов, которые приносят прибыль, данная статья так же будет вам полезна. Я не советую никому здесь бросать все свои знания программирования, и начинать лепить игры в программе, о которой пойдет речь. Мое мнение на этот счет, достаточно простое. С помощью данного приложения, вы сможете создать презентацию вашей игры, затратив намного меньше времени, или как минимум ролик геймплея, который можно будет бросить на YouTube, создать шумиху, получить обратную связь, и работать над игрой, грея себя приятной мыслью, что ваша идея работает, люди ее оценили и ждут. Это не значит, что создание игр, в этой программе, ограничится лишь демо-версиями. Если вы действительно вложитесь душой в это дело, то спокойно сможете создавать полноценные проекты.
Читать дальше →

Перевод соглашения с разработчиком Apple Developer Program License Agreement

Время на прочтение1 мин
Количество просмотров7.8K
Скорее всего вы уже в курсе, что Apple объединила три ранее отдельные программы: iOS, Mac и Safari Developer Program в одну, обновленную и расширенную Apple Developer Program.

Я предлагаю всем заинтересованным принять участие в переводе нового Соглашения на translatedby.com: translatedby.com/you/apple-developer-program-license-agreement-with-schedule-2/into-ru/trans

Переводить все с нуля необязательно, можно использовать предыдущий перевод на русский язык iOS Developer Program License Agreement + Schedule 2: drive.google.com/open?id=0B092pX2T-KtiaUNoQWdUSkgxYjg. Лично я действую так: захожу на сайт text-compare.com для нахождения отличий старой и новой версий каждого абзаца соглашений. Далее использую старую версию перевода и вношу в нее необходимые изменения.

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

После 100% готовности перевода он будет опубликован на www.gitbook.com

Swift + VK.API, или история о SwiftyVK

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


Сегодня я хочу вам рассказать о том, как однажды познакомился с языком программирования Swift и решил написать на нем приложение для социальной сети ВКонтакте под OSX (которое, к сожалению, до сих пор не закончено). С какими подводными камнями мне пришлось столкнуться при обуздании, на тот момент, нового языка и скрещивании его с VK.API. Поделиться с общественностью результатом того, во что именно все это вылилось и попытаться обосновать, зачем нужно было придумывать очередной велосипед в виде библиотеки для работы с VK.API.
Если кому-то это интересно, то добро пожаловать под кат.
Читать дальше →

Установка Intel RealSense SDK на компьютеры Mac

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


Для участия в семинарах и хакатонах, посвященных технологии Intel RealSense, некоторым разработчикам необходимо установить пакет Intel RealSense SDK на ноутбуки с операционной системой Mac OS. Мы заметили, что иногда это занимает больше времени, чем хотелось бы, поэтому решили опубликовать данное пошаговое руководство, показывающее, как запустить образцы приложений SDK с камерой Intel RealSense на компьютере Mac с помощью Boot Camp.
Читать дальше →

Perspex — кросплатформенный UI-фреймворк с XAML и биндингами

Время на прочтение2 мин
Количество просмотров28K
TL;DR: кроссплатформенный клон WPF. От других попыток сделать нечто с XAML-ом выгодно отличается наличием полностью своей системы отрисовки со сменными бакэндами (сейчас поддерживается Direct2D и Cairo). В наличии инспектор, дизайнер (см. видео). Биндинги сделаны на стероидах под названием ReactiveExtensions (старый стиль тоже можно использовать). Умеет работать с Windows/Linux/MacOS, поддержку мобильных платформ планируется добавить в начале следующего года посредством отрисовки через MonoGame.


Читать дальше →

Screentendo — генерация уровней для Super Mario Bros на основе содержимого экрана

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

Screentendo – это приложение для настольных компьютеров, которое превращает выделенную область экрана в играбельный уровень для игры Super Mario Bros.

Я раньше не делал приложений для Cocoa app и не использовал Sprite Kit, и это стало для меня отличным упражнением. Исходный код доступен по ссылке.



Как это работает?


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

У Screentendo есть два основных этапа работы: обработка картинки для определения структуры выбранного района, и создание уровня.
Читать дальше →

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