Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Да начнется unit-тестирование (Objective-C)

Разработка под iOS*Objective C*Xcode*Разработка под MacOS*
Из песочницы
Tutorial
Данная статья посвящена вопросу тестирования в рамках Objective-C используя Xcode 6. Рассматриваются стандартная библиотека для тестирования и сторонняя библиотека OCMock. Опытные разработчики, возможно, не найдут здесь слишком полезной информации, тем же, кто недавно встал на этот путь — статья откроет необходимые базовые знания по написанию unit-тестов на языке Objective-C.

Для основы тестирования просьба обратиться сюда.
Для основы unit-тестирования сюда.

А теперь мы начнем изучение unit-тестирования в рамках Objective-C.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Просмотры35K
Комментарии 11

Интеграция Windows и Mac OS при помощи Acronis Access Connect

Блог компании AcronisИнформационная безопасность*Разработка под Windows*
Не секрет, чего сегодня во многих организациях IT-инфраструктура построена вокруг операционной системы Windows. Но в то же время всё шире используются компьютеры Mac – это и излюбленный инструмент дизайнеров благодаря экрану Retina, и удобный бизнес-планировщик для топ-менеджеров и руководства компаний. 60% средних и крупных бизнесов по всему миру имеют в своём распоряжении сто и более устройств от Apple, и в их числе – перешедшие на Mac компании Facebook, Amazon и eBay.



Скорее всего, вы и ваши коллеги работают в смешанной среде, где есть как ПК на Windows, так и компьютеры Mac. Таких смешанных сред становится всё больше, поэтому важность задачи по обеспечению совместимости Windows и Mac только возрастает со временем.

Решение есть. Acronis Access Connect (бывший ExtremeZ-IP) позволяет всем пользователям Mac работать с сетевыми ресурсами так же удобно, как со своими локальными. Если вам близка такая проблема и полезно её решение – добро пожаловать под хаброкат.


Читать дальше →
Всего голосов 21: ↑15 и ↓6+9
Просмотры13K
Комментарии 0

О том, как я собирал на Linux'е application bundle для MacOS

Java*
Итак, довелось мне недавно обновить билд-скрипт одного приложения написанного на Java Swing. Приложение давно разрабатывается, и писалось ни одним поколением программистов, но дело свое делает хорошо и четко, поэтому собирается под основные платформы (Window's, Unix, MacOS). Вот и решили мы проапдейтить сборку нашего старого app bundle'а для MacOS, а заодно и положить в него встроенную jre версии 1.8. И тут начали выясняться интересные вещи: старый bundle был собран под Java 6 от Apple, и отныне не работал, формат Info.plist поменялся, ибо Oracle больше нравятся свои пропертя, старый JavaApplicationStub отныне вне закона, да здравствует JavaAppLauncher, ну и много другого интересного. Лично мне по душе больше Linux, да простят меня любители MacOS, и даже такая знакомая консоль терминала слабо согревала мою душу после долгих мытарств по просторам интернета в поисках опыта таких же отважных людей, победивших мою проблему. Это практически невероятно, но в конце концов, я обнаружил статью в блоге David Clunie, в которой он шаг за шагом описал практически все мои попытки найти пути решения поставленной задачи. Кого заинтересовал прошу подкат, для любителей оригиналов вот ссылка на заветную статью, заранее прошу прощения за качество моего перевода, т.к. он не будет полным и дословным.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Просмотры6.1K
Комментарии 3

История мигрирования операционных систем

Блог компании IntelСистемное программирование*
Перевод
От переводчика: представляю вашему вниманию перевод статьи Майкла Штейла. Я давно хотел подготовить подобный обзор методов использования виртуализации для задач обеспечения совместимости. Я даже опубликовал некоторые заметки на эту тему: в учебнике по симуляции, глава 1, и на Хабре в посте про системные ВМ. Однако мне не удалось раскрыть вопрос так глубоко, как он представлен в этой работе. Поэтому я решил поделиться переводом с читателями.


Производители операционных систем сталкиваются с этой проблемой один или два раза в десятилетие: им необходимо перевести свою пользовательскую базу со старой операционной системы на их сильно отличающуюся новую ОС, или им требуется перейти с одной архитектуры ЦПУ на другую с сохранением возможности запуска старых приложений без модификаций, а также помочь сторонним разработчикам портировать свои приложения на новую ОС.

Давайте рассмотрим, как это происходило в последние 30 лет, на примерах MS DOS/Windows, Apple Macintosh, Amiga OS и Palm OS.


Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Просмотры21K
Комментарии 8

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

Блог компании MicrosoftРазработка игр*Visual Studio*Unity*Разработка под MacOS*
Привет, Хабр!

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

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



Осторожно, под катом несколько скриншотов.
Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Просмотры13K
Комментарии 8

Как разделить VPN трафик в MacOS

Информационная безопасность*


VPN
VPN (англ. Virtual Private Network — виртуальная частная сеть — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет) WikiPedia


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

Если вы посмотрите на все доступные инструкции как настраивать VPN на Mac OS, то увидите что авторы говорят вам ставить галку «отправлять весь трафик через VPN», что приводит к тому, что (Капитан Очевидность) весь трафик идет через VPN, что в свою очередь накладывает все ограничения корпоративной сети (запрет на посещение отдельных ресурсов, закрытые порты и т.д.) или ограничения сервиса анонимизации (узкий канал, долгий ping и т.д.).

Возникает вопрос — нельзя ли через VPN пускать только определенный трафик, а весь остальной (основной) трафик пусть идет по обычному каналу без ограничений.

Делается это довольно просто.

Читать дальше →
Всего голосов 12: ↑5 и ↓7-2
Просмотры18K
Комментарии 7

WWDC 16: первые впечатления с места событий

Блог компании red_mad_robotРазработка под iOS*Разработка мобильных приложений*
Месяц назад прошел Google I/O, где самые интересные анонсы касались сервисов работы с данными и умных систем. Сейчас же пришло время Apple: посмотрим, какие новинки приготовила для потребителей и разработчиков компания, не признающая компромиссов. Keynote проходил не в Moscone Center, как обычно, а аж в Bill Graham Auditorium — историческом здании посреди San Francisco Civic Center. Обычно здесь презентуют потребительские новинки компании, но в этот раз позвали разработчиков. Как всегда, первое место в очереди нужно занимать за сутки, а за два часа до презентации можно встать где-то в середине толпы из 5 000 разработчиков.



В этом отчете я ( mc_murphy ) собрал информацию с двух презентаций: Keynote и Platform State of the Union, чтобы рассказать обо всех анонсах первого дня.
Читать дальше →
Всего голосов 28: ↑24 и ↓4+20
Просмотры13K
Комментарии 5

Apple совершенствует механизмы безопасности своих сервисов

Блог компании ESET NOD32
Apple провела свою ежегодную конференцию WWDC 2016, на которой представила свои новинки и анонсировала выпуск новых продуктов. Компания представила новую версию своей десктопной ОС под названием macOS Sierra, а также iOS 10. В новых версиях этих платформ упор был сделан на настройки приватности и безопасности пользователя (privacy & security). Ранее мы уже писали, что начиная с iOS 8 Apple интегрировала шифрование данных для своих смартфонов на основе кода разблокировки (passcode) по умолчанию, а в iOS 9 расширила его до шести цифр. iOS также использует механизм безопасности MAC address randomization при поиске Wi-Fi сетей.



В iOS 10 Apple анонсировала end-to-end шифрование для своих приложений FaceTime, iMessage, и HomeKit. Кроме этого, персонализация в iOS 10 будет основана на локальной основе, предлагаемые облачными сервисами Apple данные не будут основаны на профиле пользователя (differential privacy). Еще одной новостью стало появление новой файловой системы в macOS Sierra под названием Apple File System (APFS). Новая ФС поддерживает функции шифрования данных (full-disk encryption), а также шифрование системных метаданных файлов.

Читать дальше →
Всего голосов 12: ↑9 и ↓3+6
Просмотры5.8K
Комментарии 3

[iOS 10] Встраиваем поддержку Siri в свое iOS приложение

Разработка под iOS*Разработка мобильных приложений*Objective C*Xcode*Машинное обучение*
image

Apple показала на WWDC 2016 новые iOS 10 и macOS Sierra, и я не упустил возможность сразу же обновить свои устройста.

Одно из ключевых обновлений — появление SiriKit для разработчиков, теперь у нас с вами есть возможность использовать Siri в собственных приложениях. И мы сегодня сделаем наше первое приложение с поддержкой Siri (исходники проекта в конце статьи)
Читать дальше →
Всего голосов 20: ↑16 и ↓4+12
Просмотры19K
Комментарии 19

Cериалокачалка на python3 с поддержкой расширений

Python*Программирование*Разработка под MacOS*

В качестве вступления стоит сказать что я пользуюсь macOS и потому некоторые части:


  • Автозапуск (launchd)
  • Формат конфигурационных файлов (plist)
  • Программа, используемая для уведомлений (terminal-notifier)

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


Итак, к делу.


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

Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Просмотры24K
Комментарии 44

Workflow просмотра сериалов для Alfred

Python*Программирование*Разработка под MacOS*

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


Для тех кто не знает что такое Alfred

Alfred — это Spotlight на стероидах. Умеет чуть более чем всё что умеет Spotlight, плюс, начиная со второй версии, поддерживает написание, а так же использование написанных другими людьми, так называемых, workflows. То бишь, расширений функциональности самописными скриптами. Для их написания поддерживается несколько скриптовых языков:


  • bash
  • zsh
  • php
  • ruby
  • python
  • perl
  • osascript
  • javascript

Речь в этой статье пойдет об одном из таких расширений.


Немного забегая вперед, хочу показать, что же у нас есть в итоге…
Когда обнаруживается время расслабиться и включить сериальчик, я запускаю Alfred, ввожу "сериалы" и получаю в ответ список загруженных.


Красота, не правда ли?

Под катом пара бонусов для любителей сериалов
Всего голосов 18: ↑16 и ↓2+14
Просмотры18K
Комментарии 13

Dropbox на macOS использует приёмы malware, чтобы получить привилегии, которые ему не нужны

Информационная безопасность*Разработка под MacOS*
Перевод

Если у вас установлен Dropbox, загляните в Системные настройкиЗащита и безопасностьКонфиденциальность.




TL;DR: Dropbox


  • Показывает фальшивое системное окно macOS, чтобы получить пароль пользователя
  • Добавляет себя в привилегированные процессы без обязательного для всех разрешения
  • Ставит в систему backdoor, чтобы восстановить разрешения, если их явно отберут
  • Эти разрешения толком не использует <irony/>
Подробности и как с этим бороться
Всего голосов 110: ↑109 и ↓1+108
Просмотры44K
Комментарии 75

Как перестать беспокоиться и победить Центр обновления Windows?

Блог компании ParallelsРазработка под MacOS*Разработка для Office 365*Разработка под Linux*Разработка под Windows*
imageЭта статья рассказывает о новой функциональности Parallels Desktop 12, позволяющей контролировать установку обновлений и обслуживание Windows 10. Все помнят 1995 год, когда операционная система Windows приобрела рабочий стол со значками, панель задач и меню «Пуск». Более знаковый 1998 год помнят почему-то далеко не все — а ведь именно тогда в Windows появился Центр обновления. Теперь пользователи всегда имели на своих компьютерах самую актуальную и безопасную версию операционной системы.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Просмотры25K
Комментарии 29

Как мы соединили Parallels Desktop и Office 365

Блог компании ParallelsРазработка для Office 365*Разработка под Linux*Разработка под Windows*
imageНе секрет, что большинство пользователей устанавливает Parallels Desktop для того, чтобы пользоваться на Mac привычными PC-версиями программ Microsoft, в частности — Microsoft Office. Но обратная сторона медали виртуализации в том, что если внутри виртуальной машины вы имеете привычную среду Windows, в которой документы Office открываются программами Microsoft Office для Windows, то возвращаясь в среду Mac OS, вы возвращаетесь в «реальный мир»…
Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Просмотры9.7K
Комментарии 4

Основы Auto Layout — Концепция, строение, применение

Xcode*
Из песочницы
Auto Layout занимается динамическим вычислением позиции и размера всех view в view иерархии, на основе constraints — правил заданных для того или иного view. Самый большой и очевидный плюс для разработчика в использовании Auto Layout в том, что исчезает необходимость в подгонке размеров приложения под определенные устройства — Auto Layout делает это за вас, динамически изменяя интерфейс в зависимости от внешних или внутренних изменений.

Примером внешних изменений может быть: Изменение размера окна в macOS, изменение ориентации экрана, различные размеры экранов.

Пример внутренних изменений: Изменение контента в окне, изменения в зависимости от языка и т.д.

Создать свой интерфейс можно 3-мя способами: программно, на основе маски, которая автоматически подстраивается под изменения или использовать Auto Layout.

Отличие Auto Layout от других способов в том, что вам больше не нужно писать код, который изменяет интерфейс в зависимости от размера окна и других элементов, вместо этого Auto Layout самостоятельно вычисляет расположение элемента интерфейса в приложении и изменяет его относительно окружения.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Просмотры48K
Комментарии 7

Обновление программных клиентов 3CX для iOS, Android и MacOS

Блог компании 3CX Ltd.Системное администрирование*IT-инфраструктура*Сетевые технологии*Серверное администрирование*

C удовольствием представляем новые версии наших функциональных клиентов унифицированных коммуникаций для iOS, Android и Mac OS!


3CX клиент для iOS с интеграцией CallKit


В новом клиенте 3CX для iOS появилась замечательная возможность – управлять VoIP вызовами точно так же, как GSM вызовами — непосредственно с экрана блокировки. Это сделно с помощью фреймворка Callkit, который появился в iOS 10. VoIP вызовы через клиент 3CX для пользователя выглядят как GSM вызовы – они отображаются на экране блокировки и в истории вызовов iOS устройства. Благодаря этому 3CX клиент еще глубже интегрирован в пользовательский интерфейс iOS.


Update for the 3CX client for iOS New 3CX client for iOS available Answer calls from your lock screen with the 3CX client for iOS


Новый клиент 3CX для iOS позволяет удобно переключаться между GSM и VoIP вызовами. Например, если вы разговариваете через клиент 3CX и в этот момент получаете GSM вызов, вы можете поставить VoIP вызов на удержание. Вы также можете не принимать GSM вызов, а отклонить его или отправить на голосовую почту.

Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Просмотры2.6K
Комментарии 4

Оповестить пользователя с вероятностью 99%

Блог компании PushAllВеб-аналитика*Growth Hacking*Интернет-маркетингПовышение конверсии*
Универсального средства оповещения нет, каждый пользователь имеет у себя индивидуальный набор устройств и ПО. При этом для компании, группы людей, стартапа или даже небольшого блога огромная проблема держать свою аудиторию в курсе новостей. Даже обычное уведомление о продлении платного аккаунта или уведомление о личном сообщении, можно не увидеть если оно пришло на неудобное для пользователя устройство или в неудобном виде.

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

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

Мы выпустили приложение под iOS и обновили приложение под Android.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Просмотры7.2K
Комментарии 14

4 правила работы в Sketch над крупными проектами

Веб-дизайн*Работа с векторной графикой*Интерфейсы*Дизайн мобильных приложений*

image


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

Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Просмотры50K
Комментарии 43

Codekit 3 — современный GUI сборщик для MacOS

Разработка веб-сайтов*Системы сборки*
Из песочницы
Спор между любителями CLI программ и приверженцами GUI берёт своё начало с появления самых первых ОС с графическим интерфейсом и продолжается до сих пор. Я никогда не имел ничего против хороших GUI приложений и с удовольствием пользовался Codekit с самой первой версии. Сейчас на дворе конец 2016 года и вышло мажорное обновление под номером 3.

Codekit — это расширяемый front-end сборщик «на стероидах» с графическим интерфейсом и возможностью навешивать скрипты по любому событию. Ближайшими «консольными» аналогами можно назвать Grunt и Gulp. GUI подразумевает невероятно простую конфигурацию — большинство настроек выставляются и меняются с помощью чекбоксов либо радиокнопок. Для всего остального есть мастеркард текстовые поля ввода, в которые вписываются те же параметры, что и в консольных программах.
Читать дальше →
Всего голосов 18: ↑10 и ↓8+2
Просмотры7K
Комментарии 10

Мета-инструмент разработки: FutoIn CID

Разработка веб-сайтов*Open source*Программирование*GitHubСистемы сборки*

use cases


Сейчас мало кого удивишь инструментами управления зависимостями проекта вроде npm, composer, bundler, pip, maven, cargo и других. Их общий недостаток — невозможность управлять непосредственно средой выполнения. Такая задача решается через nvm, php-build, rvm, virtualenv, sdkman, rustup и прочие глобальные "манагеры" версий runtime, обычно написанные под Bash/Zsh.


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


Далее разброд и шатание настегает Continuous Integration & Delivery, где ручные танцы с бубном установки инструментов и активирования конкретных версий совершенно не приветствуются, а в идеале требуется в принципе максимально абстрагироваться от используемых технологий и довести процесс до примитивных нейтральных команд: подготовить к релизу, затегить, скачать, подготовить, построить, упаковать, выложить, проверить, одобрить(подписать), выкатить.


Тут сам собой напрашивается инструмент, унифицировано работающий поверх уже существующих технологий,
который из себя и представляет FutoIn CID — FutoIn Continuous Integration & Delivery tool.

Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Просмотры3.5K
Комментарии 3