Разработка под Apple iOS → Интегрируем Copy-Paste-Detection в Xcode, и не только
Сегодня ночью, проводя очередной code-review в наших проектах, наткнулся на большой кусок проявления чистейшего, кристализованного копипаста. Он не очень пришелся мне по душе, и как-то сразу всплыл вопрос:" А много ли копипаста у нас в проектах"? Google is my friend, поэтому решение нашлось очень быстро у jkennedy1980, который использовал CPD (copy paste detector), который входит в PMD (Pretty Much Done || Project Mess Detector || Programming Mistake Detector || ... ). В общем случае, CPD умеет находить copy-paste сходу для ряда языков(cpp, cs, java, php, ruby, ecmascript) и относительно легко расширяется, но мне же был нужен Objective-C. Как раз такой вариант и был у jkennedy1980, который использовал CPD в автоматической сборке jenkins'ом. Это в общем случае очень хорошо для любого проекта на любом языке, когда jenkins внедрен в процесс разработки, все права выставлены, и все знают где, когда и что надо нажимать. В случае же, когда разработчики не знают про jenkins, либо знают, но он где-то там далеко, такой метод мягко говоря не подходит. Xcode для iPhone/iOS разработчиков, все же, как-то ближе, и хотя для него все еще нельзя написать плагин,
Разработка под Apple iOS → Разбираем iPhone Core Data Recipes. Часть 2
Introduction
Данная статья, вторая и заключительная статья из серии «Разбираем iPhone Core Data Recipes». Первую часть статьи, вы можете прочитать тут. Цель серии статей — помочь начинающему iOS разработчику, понять, как правильно работать с SQLite базой данных используя Core Data на примере iPhone Core Data Recipes. В заключительной статье мы рассмотрим функционал добавления, редактирования и удаления записей из базы данных.
Prerequisites
Для самостоятельного изучения исходных текстов данного приложения, вам необходим стандартный набор инструментов:
- Mac OS X
- Xcode
Данный набор позволит вам просмотреть, изменить и запустить приложение на симуляторе. В случае же, если вы захотите попробовать запустить его на настоящем iPhone, требуется участие в iOS Developer Program.
А также, что немало важно, нужно базовое понимание структуры языка Objective-C и приложения.
Ссылки на используемые материалы и инструменты предоставлены в разделе References.
Разработка под Apple iOS → Разбираем iPhone Core Data Recipes. Часть 1 из песочницы
Introduction
Цель данной статьи — помочь начинающему iOS разработчику, понять, как правильно работать с SQLite базой данных используя Core Data на примере iPhone Core Data Recipes. В первой части из серии статей, будет рассмотрено взаимодействие приложения и базы данных, а также работа со связанными записями (Relationships).
Prerequisites
Для самостоятельного изучения исходных текстов данного приложения, вам необходим стандартный набор инструментов:
- Mac OS X
- Xcode
Данный набор позволит вам просмотреть, изменить и запустить приложение на симуляторе. В случае же, если вы захотите попробовать запустить его на настоящем iPhone, требуется участие в iOS Developer Program.
А также, что немало важно, нужно базовое понимание структуры языка Objective-C и приложения.
Ссылки на используемые материалы и инструменты предоставлены в разделе References.
Что такое iPhone Core Data Recipes?
Xcode проект от разработчиков из Apple, который дает общее представление о том, как использовать view controllers, table views и Core Data в iPhone приложениях. Конечно, данный проект также актуален для iPad, но в него необходимо внести интерфейсные изменения, для корректного отображения на iPad.
iPhone Core Data Recipes Screenshots
Скриншоты ниже, дают общее представление о интерфейсе приложения. В главном окне «Recipes» — оторбаражается список готовых продуктов. Нажав на один из них, приложение отображает информацию о том, как приготовить данный продукт, его категорию, сколько на это нужно времени, какие и в каком количестве необходимы ингредиенты, а также кнопку которая отображает текстовую инструкцию по приготовлению (скриншот не приведен). Также в приложении есть возмоность конвертации значений между граммами, фунтами и унциями, а также таблица соответствия температур (по цельсию и фаренгейту).
Разработка под Apple iOS → Ручное «оффлайн» добавление и обновление поддержки iOS 3.x & 4.x в iOS Simulator SDK 5.x из песочницы
Приветствую всех уважаемых хабражителей!
Данный хабратопик описывает «механизм» ручной загрузки пакета Xcode 4.2 iOS 4.3 Simulator, его обновлений и дополнений поддержки iOS 3.х & 4.x в iOS 5.x SDK для их последующей установки в оффлайн режиме.
При наличии нескольких рабочих мест, используемых для разработки, и желании экономить время и трафик при обновлении предлагаемая методика может оказаться полезной.
Данный хабратопик описывает «механизм» ручной загрузки пакета Xcode 4.2 iOS 4.3 Simulator, его обновлений и дополнений поддержки iOS 3.х & 4.x в iOS 5.x SDK для их последующей установки в оффлайн режиме.
При наличии нескольких рабочих мест, используемых для разработки, и желании экономить время и трафик при обновлении предлагаемая методика может оказаться полезной.
Разработка под Apple iOS → Полноценная поддержка юникода в SQLite для iOS. Пример приложения из песочницы
Здравствуйте. В этой статье я опишу процесс создания простейшего приложения для iOS и внедрение в него используемого мной метода для обеспечения корректной работы с русским (и не только) языком таких SQLite-конструкций, как UPPER/LOWER, LIKE или ORDER BY.
Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.
Ниже очень подробная инструкция с картинками.
Описанный метод использовался при разработке в XCode 4.2 под управлением OS X Lion 10.7.2.
Ниже очень подробная инструкция с картинками.
Разработка под Apple iOS → Верёвка как в “Cut the Rope”
Почитав интервью создателей знаменитого бестселлера “Cut the Rope”, в котором утверждается, что на создание веревки ими было потрачено больше всего времени, я не поверил, что написать «алгоритм движения тяжелой нити» действительно так сложно, и для этого надо чуть ли не самим писать физический движок. Погуглив, готового ответа я не нашел, и решил попробовать сделать самостоятельно нечто подобное на cocos2D + Box2D.
За основу были взяты правила:
За основу были взяты правила:
- Цепь делать лучше с помощью прямоугольных тел, соединенных Revolute Joint’ами;
- Чем тяжелее объекты составляющие цепь – тем она стабильнее;
- Количество итераций при шаге – чем больше, тем лучше (мне хватило 3-х);
- Очень помогает, если каждый кусочек цепи, помимо Revolute Joint’а соединить Distance Joint’ом.
Разработка под Apple iOS → MVC в Objective-C или калькулятор для iOS 5 из песочницы
Предыстория
Воодушевившись тем, что в недавном времени затарился i девайсами решил научится таки под них программировать. Конечно, в выбранном мной пути web разработчика это мало чем поможет, но мне всегда были интересны новые языки.
Первое на что упал мой взгляд- это виртуальная школа iTunesU. Здесь я нашел лекции курса CS 193P которые ведут разработчики эпл для студентов Стэнфордского университета. Лекции достаточно хорошо охватывают базовые особенности языка и нативных фрэймворков, однако есть одно НО– лекции на английском и никакого перевода к ним нету. Для меня лично проблем это не вызвало, потому что Aple по всей видимости выбирает на эти лекции только кандидатов с хорошо поставленной речью, и прожитые в США 8 месяцев дали мне возможность смотреть лекции в оригинале и учится у «носителей языка» (шучу-шуткую).
Так как каждый год выходит новая версия Xcode, а лекции стэнфорда в которых рассматривается именно текущая версия становятся доступны с опозданием в семестр, я решил написать серию статей, которые будут идти по практической части (!) данного курса. Так как я слушал лекции осени 2010 для меня будет практическт полезным написать программу в xcode 4.2 который был изначально разработан под 3ю версию. Здесь я не буду углублятся в особенности ObjC а буду давать голую практику.
Разработка под Apple iOS → Автоматическое увеличение номера сборки в Xcode
Пользователи и тестировщики могут найти ошибки, которые вы наверняка уже исправили. Иногда пользователи используют старую версию приложения, иногда ваши исправления не так хороши, как вы думали. В обоих случаях небольшой уникальный номер версии, отображаемый в приложении, может сэкономить часы вашей работы.
Это можно сделать
Разработка под Apple iOS → AppCode — Новая IDE для Objective-С от JetBrains
Только что был анонсирован выпуск JetBrains AppCode, новой интегрированной среды разработки для Objective-C.
Как присуще всем IDE компании JetBrains наиболее сильные стороны AppCode: редактор кода с умным автодополнением, анализом кода проекта и подсказками по его улучшению, широкий спектр надежных рефакторингов, удобный отладчик с возможностью запуска кода на устройствах (iPhone или iPad), и удобная интеграция с системами контроля версий (SVN, Git, Mercurial, Perforce, и т.д.)

Конечно же присутствует интеграция с Xcode. Можно просто открыть проект Xcode, создать новый Xcode проект и пр. AppCode позволяет в любой момент переключаться в Xcode и обратно с сохранением всей структуры проекта. Для редактирования некоторых типов файлов, например xib, storyboard, автоматически используются инструменты Xcode. Более полный список функциональности можно посмотреть тут.
Продукт коммерческий, бесплатно можно пользоваться в течение 30 дней. Также можно получить бесплатную лицензию, если вы работаете над open-source проектом.
Фидбэк приветствуется!
Как присуще всем IDE компании JetBrains наиболее сильные стороны AppCode: редактор кода с умным автодополнением, анализом кода проекта и подсказками по его улучшению, широкий спектр надежных рефакторингов, удобный отладчик с возможностью запуска кода на устройствах (iPhone или iPad), и удобная интеграция с системами контроля версий (SVN, Git, Mercurial, Perforce, и т.д.)

Конечно же присутствует интеграция с Xcode. Можно просто открыть проект Xcode, создать новый Xcode проект и пр. AppCode позволяет в любой момент переключаться в Xcode и обратно с сохранением всей структуры проекта. Для редактирования некоторых типов файлов, например xib, storyboard, автоматически используются инструменты Xcode. Более полный список функциональности можно посмотреть тут.
Продукт коммерческий, бесплатно можно пользоваться в течение 30 дней. Также можно получить бесплатную лицензию, если вы работаете над open-source проектом.
Фидбэк приветствуется!
TDD → Юнит-тесты в Cocoa
Ниже описаны основы использования OCUnit — фреймворка для создания юнит-тестов, интегрированного в Xcode. Чтобы наглядно попробовать описываемые вещи, код можно скачать сразу. Писал до эпохи Xcode 4, поэтому картинки немного устарели.