Михаил Овчинников

Установка и использование языка Swift на Ubuntu 16.04

Разработка Swift Ubuntu Linux
Некоторое время язык Swift был доступен только для операционной системы OS X, в составе среды разработки Xcode, но недавно на официальном сайте стали доступны сборки и для последних версий Ubuntu. Практической пользы от такого шага не очень много: большинство библиотек так и не были портированы, и разрабатывать для iOS на альтернативных платформах всё еще невозможно. Хотя существует призрачная возможность писать серверный код на том же языке, что и код приложения, но пока инструментарий развит слабо, использование языка от Apple на Ubuntu будет представлять скорее академический интерес.

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

Принудительное обновление provisioning profile в Xcode 8.3

Разработка Xcode Code signing
После обновления в Xсode 8.3 исчезло окно управления provisioning profile проекта. Им было удобно пользоваться для принудительного удаления и скачивания профайлов. Например, когда добавляешь на Developer Portal новые устройства для ad-hoc установки, профайл в Xcode обновляется далеко не сразу и не всегда. Чтобы решить эту проблему, можно было зайти в настройки аккаунта, открыть окно управления профайлами и сертификатами, нажать правой кнопкой мыши на профайле, выбрать «Move to trash», после чего заново скачивался новый.

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

Статический анализ кода при помощи SwiftLint

Разработка SwiftLint Swift Статический анализатор Xcode
SwiftLint — это статический анализатор Swift-кода, разработанный компанией Realm, который проверяет его на соответствие стилю и соглашениям принятым в сообществе разработчиков. Главным образом он базируется на Swift style guide от Github. Почему это важно? Наличие соглашений и стандартов всегда лучше их отсутствия: код написанный в едином стиле, проще читать при командной разработке, а также косвенно анализаторы кода способны улучшить и стабильность приложения, так как распознают заведомо плохие практики. Начинающим изучать Swift разбор ошибок и предупреждений анализатора поможет разобраться в особенностях языка, а также избежать использования устаревших конструкций, которые могли быть скопированы с сайтов вроде Stack Overflow.

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

Управляем сторонними библиотеками с CocoaPods

Разработка iOS CocoaPods Менеджер пакетов Xcode
CocoaPods — менеджер пакетов, сделанный по образу и подобию RubyGems, позволяющий легко скачивать и подключать сторонние библиотеки к Swift и Objective-C проектам. Установка CocoaPods Менеджер пакетов написан на Ruby и распространяется через RubyGems. В общем случае установка сводится к единственной команде в терминале: sudo gem install cocoapods --pre Процесс может занять некоторое (продолжительное) время, не выводя ничего на экран, стоит быть к этому готовым и не прерывать установку до завершения (должна появиться надпись вроде «xx gems installed»).

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

Восстанавливаем файлы, удаленные в прошлых коммитах в Git

Разработка Git Bash
Сегодня передо мной встала довольно простая, но интересная задача: восстановить несколько файлов в репозитории Git, которые были удалены некоторое время назад в разных коммитах. Задача простая, потому что решение легко найти в соотвествующих ответах на Stack Overflow. Мне лишь осталось слегка адаптировать приведенные примеры команд для своих нужд. Я не помнил точные названия файлов и уж тем более не знал хэши коммитов, в которых производилось удаление. Поэтому воспользовался сниппетом от пользователя Robert Munteanu, чтобы вывести историю удаленных файлов:

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

Основы автоматизации сборки при помощи Rake

Разработка Ruby Rake .NET DevOps Журнал Хакер
Эта статья была впервые опубликована в журнале “Хакер”, здесь публикуется исходная версия, до отправки в редакцию. С Rake знакомы многие кто писал веб-приложения на Ruby on Rails. Но этот инструмент для автоматизации сборки может оказаться весьма полезен и вне контекста популярного веб-фреймворка. Предлагаю разобраться подробнее с его базовыми принципами и подумать где еще он может пригодиться. Введение Разработка любого проекта постоянно связана с автоматизацией сопутствующих рутинных задач. Сначала хватает средств IDE + пары ручных операций.

Читать далее...
1 of 1