Архив рубрики: Планета Developers.org.ua

Эта рубрика объединяет посты, которые попадают на Планету разработчиков.

iPhone SDK Hint: перемещение элементов в UITableView

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

Как использовать этот функционал достаточно внятно описано в документации, но есть небольшой нюанс. Если просто задать:

cell.showsReorderControl = YES;

для каждой UITableViewCell (и предварительно выставить для таблицы свойство editing в YES), то ничего не измениться. Для того, чтобы у ячеек таблицы действительно появился контрол, позволяющий перетаскивание, необходимо у UITableViewDataSource определить следующие методы:

- (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
	return YES;	
}
 
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath 
	toIndexPath:(NSIndexPath *)toIndexPath {
 
}

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

Свой /etc/hosts для каждой wi-fi сети (через NetworkManager)

Условия задачи: имеется ноутбук, тягаемый туда-сюда, как и полагается ноутбуку. Есть пара основных мест, где он бывает: дом и работа. И там и сям он подключается к локальной сети через wi-fi. И там и сям имеются некие сервера, которые из оружающего мира видны через внешний IP, а из локальной сети только через локальный IP (порты форвардятся на роутере) по некой причине, которую я сам не до конца догоняю, но поделать с этим ничего нельзя. Если вы находясь в той же сети, что и сервер, попробуете зайти на него, используя его доменное имя, а не прямой локальный IP, то вас ждёт облом, ибо DNS выдаст вам внешний IP. Решение есть такое: прописать всем компам в локальной сети в файле hosts локальный айпишник для заданных доменных имён. Для стационарных компов это сделано и забыто, но как быть с упомянутым выше ноутом?

Решение: под Виндой я написал скрипт, которым вручную переключал hosts на нужную сеть (скрипт просто копировал заранее подготовленный файл). Но вот недавно я после полугодового перерыва, вновь окунулся в чудесный мир Линукс (об этом отдельно) и подумал, что переключать руками как-то западло. Читать далее

Quake Live

quake_live

Quake Live — клёвая штука, если кто не играл. Она с конца февраля находится в открытом бета-тестировании. Это практически тот же самый Quake 3 Arena, только MMO.

Сама игра — это как бы плагин к браузеру (Internet Explorer и Firefox), то есть надо этот плагин предварительно установить. Для FF по крайней мере так, под IE это, скорее всего работает как ActiveX компонент, то есть его сам IE и установит. Да-да, пока только Windows, но Mac OS X и Линукс на подходе.

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

Читать далее

Крутой развод вКонтакте

С каким крутым разводом для вКонтакте сегодня встретился. Приходит личное сообщение:

приветик, Виталий помогай, голосуй за меня http://super-gold.ru/583316.html, очень прошу, я почти на первом месте, не верится даже)

Я подумал: ссылка вроде выглядит безобидно, чего бы и не заценить очередную глупость.

Жесть в том, что заходишь, а там и правда страничка, где мой друг-которому-сломали-эккаунт изображен на втором месте всего в 10-ти голосах от первого. Номер в конце ссылки «583316» — это его id в контакте. Если подставить другое id, к сожалению, говорит, что «Sorry, site is temporarily unavailable. Please try again later», а жаль, я было попытался увидеть себя на 2-м месте :) Голосовать, понятное дело, хитровыебано по SMS, при чём честно предупреждают, что цена 5 рублей (на самом деле, конечно, хз сколько).

Заявление типа «Не попадитесь!» не делаю — сами умные :) Интересно, сколько пацаны заработали? Скрин странички для потомков: Читать далее

Дурак для iPhone

Видео программы, которую я делал последние пару месяцев. Каминг, ну буквально, вери сун. Спешите видеть на своих айфонах. Русская локализация тоже будет. Мультиплейер по wi-fi до 4-х человек. Можно играть в «переводного» или классического «подкидного».

UPD. Старое видео удалили, ниже пара других, сделанных уже пользователями (да-да, игра уже вышла):

И ещё одно:
Читать далее

iPhone SDK: сборник подсказок

Вот уже полгода я занимаюсь разработкой под iPhone. За это время я недалеко вышел за пределы необходимого при написании OpenGL-игр и не стал большим знатоком Objective C, так как имею возможность писать всё на любимом C++. Тем не менее, регулярно попадались достаточно специфичные задачи. В этой записе собраны некоторые подсказки осваивающим платформу, да и мне самому на будущее, как некоторые из таких задач решать. Всего 5 пунктов.

1. Как обработать изменение ориентации устройства?

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