Рубрика «разработка под iOS» - 190

Всем доброго хабрадня!

Сегодня я бы хотел рассказать о некоторых аспектах сохранения настроек и прочих данных программы в OS X и/или iOS. Как обычно, у нас есть несколько вариантов: Core Data, «голый» SQLite, свои бинарные форматы, свои текстовые форматы, NSUserDefaults и, как Вы уже наверняка слышали, файлы типа PLIST, то есть XML Property List.
Работа с файлами .plist в Cocoa/CocoaTouch
Вкратце, plist-файлы представляют из себя обычный XML, но с некоторыми оговорками. К примеру, порядок тегов в нём обусловлен некоторыми правилами: они идут парами «ключ-значение», но теги типа «ключ» и теги типа «значение» располагаются на одном уровне. Типичный пример:

	<key>identifier</key>
	<string>j3qq4-h7h2v</string>

Плисты умеют хранить основные типы данных Cocoa: NSString, NSNumber (int, float, BOOL), NSDate, NSArray, NSDictionary и NSData. Этим типам соответствуют следующие теги: <string>, <integer>, <real>, <true/>, <false/>, <date>, <array>, <dict>, <data>. Собственно, plist состоит из тегов <key>, за которыми следуют перечисленные теги со значением.

Под катом — описание дополнительных ограничений и, что самое главное, API для работы с такими файлами.
Читать полностью »

Долгих лет жизни читающему эти строчки.
В статье обобщен трехлетний опыт создания iOS игр для личного пользования.
Примеров программного кода не будет. За примерами программного Вы идите на stackoverflow.com.

В статье разбирается создание приложения на примере неопубликованной игры Five Diamonds.
Строгих редакторов предупреждаю, что приложение не выложено ни в какие магазины, просьба не перемещать меня в ненужные разделы.

Лентяям предлагаю посмотреть видео-ролик.

Остальных приглашаю в мир букв и забавных событий.
Читать полностью »

Словарь для iOS публикует антипиратские сообщения в твиттер от имени пользователей

Установка нелицензионных программ на джейлбрейкнутый девайс — незаконно и некрасиво. Из-за этого авторы не получают вознаграждения за свой труд. Многие разработчики относятся к проблеме философски. Но находятся и смельчаки, которые решаются на конкретные действия. Так поступили разработчики Оксфордского словаря и тезауруса английского языка Oxford Deluxe для iOS.

После обновления 1 ноября программа начала публиковать в твиттерах некоторых пользователей сообщения со следующим содержанием: «Может быть, мы все прекратим пользоваться пиратскими программами для iOS? Лично я больше не буду. Честное слово».
Читать полностью »

При использовании UITableView в iOS приложениях достаточно часто возникает необходимость изменить его внешний вид. Как минимум – поменять цвет фона ячеек и цвет разделителей. И в общем это не проблема для UITableView в виде списка, но немного нетривиально для группированного UITableView.

Проблема состоит в том что поменяв backgroundColor ячейки в группированном UITableView результат будет отличаться от ожидаемого. Решение состоит в том чтоб изменить backgroundView ячейки. Довольно часто с этой целью используются заранее отрисованые картинки и соответственно UIImageView. Но этот способ довольно неудобен если нужно всего лишь поменять цвет фона и границ ячейки.

Так что я создал подкласс UIView для повторного использования в качестве фона ячеек. Благодаря использованию UIBezierPath его реализация тривиальна, вот практически весь код:

- (void)drawRect:(CGRect)rect
{
    CGRect bounds = self.bounds;
    UIBezierPath *path;
    if (position == CellPositionSingle) {
        path = [UIBezierPath bezierPathWithRoundedRect:bounds cornerRadius:kCornerRadius];
    } else if (position == CellPositionTop) {
        bounds.size.height += 1;
        path = [UIBezierPath bezierPathWithRoundedRect:bounds
                                     byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
                                           cornerRadii:CGSizeMake(kCornerRadius, kCornerRadius)];
    } else if (position == CellPositionBottom) {
        path = [UIBezierPath bezierPathWithRoundedRect:bounds
                                     byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight
                                           cornerRadii:CGSizeMake(kCornerRadius, kCornerRadius)];
    } else {
        bounds.size.height += 1;
        path = [UIBezierPath bezierPathWithRect:bounds];
    }

    [self.fillColor setFill];
    [self.borderColor setStroke];
    [path fill];
    [path stroke];
}

Читать полностью »

14 декабря в Москве пройдет конференция, посвященная мобильным технологиям — Mobile Developer&Business Day Russia.

image

В этот раз в трех параллельных секциях обсудят аспекты разработки, продвижения, тестирования, юзабилити мобильных приложений. В программе также будут обсуждаться мобильные игровые движки, мобильные платформы и Smart TV. Завершится мероприятие подведением итогов «мобильного 2012 года» и прогнозами экспертов на следующий год.

Читать полностью »

Недавно в Q&A на Хабре кто-то из разработчиков жаловался на то, что приложение в App Store ждет утверждения уже больше 3 недель и все никак его не за апрувят. Оказывается, что это общемировая проблема. AllThingsD пишет, что многие из тех, кто попытался сейчас войти в магазин со своим приложением и сыграть на новогоднем ажиотаже, столкнулись с увеличенным временем ожидания.

«Это настоящий кошмар. Хуже, чем когда-либо», — говорит один из разработчиков.

Apple по телефону говорит о трех неделях, но как видно по вопросу нашего разработчика, в отдельных случаях можно думать о четырех неделях и даже больше. Кроме того, официально компания заявляет, что все те, кто хочет попасть в App Store до нового года, должен выслать свое приложение на рассмотрение до Дня Благодарения (четвёртый четверг ноября), т.е. фактически в течение ближайших двух недель.

Проблемы с апрувом: Apple погребена под валом приложений?Читать полностью »

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

Под катом — создание нестандартной анимации на примере приложения We Heart Pics.

Читать полностью »

Наверняка многие из Вас сталкивались с такой ситуацией: возникает идея реализовать какой-то проект, разработать сайт, например, или мобильное приложение, а денег, которые можно выделить и вложить оказывается не достаточно, да и кажется, сделать самому не сложно.

И вот, начинаешь вникать в технические детали, изучать специализированную литературу. Взять, например, приложения для iPhone. Чтобы разобраться в этой теме, нужно изучить немало информации.
Лично у меня так несколько раз было. Я вел пару проектов, в рамках которых надо было создать что то вроде социальной сети, а также написать приложение для iPhone. Для создания соц. сети я тогда выбрал Ruby on Rails, он тогда как раз набирал популярность.
Читать полностью »

Большинство приложений провальны. Эта жестокая реальность приводит многих разочарованных разработчиков к заключению, часто подсознательному, что преуспевание в App Store — всё равно, что разбогатеть на «золотой лихорадке»: нужно быть чертовски удачливым.

image

Идея «удачи» — опасное успокоительное средство, облегчающее боль неудачи. А боль — это хорошая вещь. Она показывает, что что-то идёт не так. Если моё приложение потерпело крах, я хочу знать почему. Вместо того, чтобы обвинять мироздание, почему бы не посмотреть, что ребята из tap tap tap и Tapbots делают для того, чтобы снова и снова достигать успеха.

Несмотря на то, что безупречное следование этой формуле невозможно, работа в этом направлении резко увеличит ваши шансы на успех. Эти принципы выработаны для iOS, но многие из них могут быть применены и для других платформ.Читать полностью »

Ratchet — быстрое прототипирование мобильных приложений на HTML, CSS и JS

Ratchet — новый фреймворк, который позволяет быстро создавать прототипы приложений для iOS. По сути является аналогом Twitter Bootstrap для мобильных устройств.

Сайт проекта | Ratchet на GitHub | Обсуждения в Google Groups | TwitterЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js