Pull to refresh
30
0
Владимир Гричина @vgrichina

User

Send message

Легкий способ изменить фон ячеек в группированном UITableView

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

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

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

- (void)drawRect:(CGRect)rect
{
    CGRect bounds = CGRectInset(self.bounds,
                                0.5 / [UIScreen mainScreen].scale,
                                0.5 / [UIScreen mainScreen].scale);
    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];
}

Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments12

Мое первое приложение для iPad – раскраска на тематику Хэллоуина

Reading time1 min
Views719
image

Сразу напишу что я вполне в курсе что подобных приложений и так навалом в AppStore, но:
  • прототип был разработан сразу после выхода айпада, на конкурс – www.iappcontest.com/apps/2010/06/coloring-book-by-componentix.html, потом к сожалению долго пылился
  • решено было делать нишевый, тематический контент – версия на Хеллоуин тому пример
  • дизайн у существующих приложений часто хромает, как правило слишком много всяких наворотов, хотелось простоты
  • реализована киллер-фича – когда рисуешь в определенной области, краска не вылазит за границы. Мне этого очень не хватало в детстве :)


Приложение в AppStore.

Заранее спасибо за конструктивную критику.
Промо-коды
Total votes 34: ↑18 and ↓16+2
Comments14

Поиск проектов/фрилансеров: рассылки

Reading time2 min
Views3.3K
Традиционно поиск проектов фрилансерами и фрилансеров заказчиками происходит на всевозможных фриланс-биржах. Но они как правило имеют существенные недостатки по качеству опубликованных проектов / предложений от фрилансеров.

Возьмем например weblancer.net. Пример проекта который каким-то образом прошел модерацию:



С другой стороны оказывается люди вполне готовы работать с таким бюджетом:



То есть с одной стороны проекты с неадекватными бюджетами, а с другой стороны – демпинг фрилансеров, создают общее впечатление довольно непрофессиональной среды и работать с такими сайтами в итоге не особо приятно.
Читать дальше →
Total votes 26: ↑10 and ↓16-6
Comments19

Расшарьте свой локальный веб-сервер в Интернете с помощью localtunnel

Reading time1 min
Views16K
Иногда во время тестирования веб-приложений может понадобится доступ к ним снаружи (то есть из публичного Интернета). Например некоторые API используют коллбеки.

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

Но не всегда найдется такая машина, и влом покупать VPS или что-то в этом роде. В таком случае localtunnel — как раз то что надо.

localtunnel — инструмент специально предназначеный для того чтоб временно расшарить локальный веб-сервер в Интернете. Он работает как клиент к публичному сервису обратного туннелирования с открытыми исходниками.

Использовать его очень просто:

localtunnel 8080

Эта команда сделает локальный сервис на порту 8080 доступным на порту 80 на домене который выведет утилита.

Конечно перед использованием все-таки надо устанавить и настроить программу.
Установка для всех пользователей:

sudo gem install localtunnel

После этого при первом запуске нужно указать свой публичный ключ для аутентификации:

localtunnel -k ~/.ssh/id_rsa.pub 8080

Если у вас нет готовых ключей для SSH, их можно сгенерировать такой командой:

ssh-keygen -t rsa

Больше информации (на английском) и исходники – на Гитхабе.

UPD: Вышенаписанное справедливо для Unix-систем. В Windows наверное может работать через Cygwin.
Total votes 69: ↑55 and ↓14+41
Comments61

Наш убийца iPad

Reading time1 min
Views707
Пока мы не воспользовались возможностью обнулить карму, нам хочется опубликовать еще один пост про iPad. Можно сказать, что это механический iPad, как минимум, пружина в нем есть.

Если научится быстро перелистывать, то на нём тоже можно смотреть мультики. Но… их нужно сначала нарисовать. Говорят, если быстро листать пустой блокнот, можно увидеть самого Джобса.

К сожалению (или к счастью), поддержка Flash тоже отсутствует. Зато есть очевидные преимущества:
  • можно использовать как подставку под кофе.
  • можно кидаться в надоедливых коллег без страха разбить дорогостоящее устройство.
  • можно спокойно идти в бандитский район, местному населению такой девайс не нужен.
  • если вам не нравится приложение или оно работает неправильно — достаточно просто вырвать страницу.


А если серьезно, то мы решили сделать блокнот для дизайна интерфейса приложений iPad.

Итак, представляем вам iPad Sketchbook:

iPad Sketchbook

Читать дальше →
Total votes 183: ↑108 and ↓75+33
Comments56

Делаем мэш-ап Twitter'а и Google Maps за 20 минут на Grails

Reading time14 min
Views3.4K

Введение


Для многих разработчиков Java часто является синонимом ужасно занудных корпоративных приложений. Она ассоциируется с многочисленными конфигурационными файлами формата XML, шаблонным кодом и т.д. Поэтому как правило вместо нее разработчики используют динамические языки (такие как Ruby, Python, PHP) для разработки своих проектов, особенно для простых утилит, мэш-апов и т.п.

Однако в среде Java многое изменилось за последние несколько лет. Появилось много фрейморков освобождающих разрабочика от бремени корпоративных («энтерпрайзных») приложений. Grails вероятно — один из лучших. Он основан на Groovy, динамическом языке на платформе Java. Groovy создан специально для Java-программистов и переход на него максимально безболезненый. Grails используе хорошо известные, надежные и эффективные библиотеки Java (Spring, Hibernate и т.п.) для выполнения всей тяжелой работы. Существует также система плагинов и плагины для почти для всех широко используемых библиотек Java.

В этом посте я раскажу, как сделать мэш-ап из Twitter'а и Google Maps в течении всего 20 минут. Конечный результат будет выглядеть примерно следующим образом:
Geo Twitter Complete

Читать дальше →
Total votes 47: ↑35 and ↓12+23
Comments44

Greasemonkey скрипт для удобного чтения книг на lib.rus.ec

Reading time1 min
Views765
Люблю иногда на досуге почитать электронные книги с замечательного сайта Либрусек. Вот только ужасно неудобно читать текст в широкой колонке мелким шрифтом без засечек.

По-этому я тут написал небольшой Greasemonkey скрипт исправляющий ситуацию. Решил запостить на Хабре, так как может будет полезно кому-нибудь из любителей почитать.

Скрипт меняет стили страницы так что достигается приблизительно такой результат (большой шрифт с засечками и достаточно узкая колонка):

image
Total votes 17: ↑17 and ↓0+17
Comments15

Google планирует показывать рекламу Chrome на ТВ

Reading time1 min
Views522
Согласно посту на официальном блоге Google, планируеться демонстрация рекламного ролика Chrome на ТВ, с помощью комманды Google TV Ads.

Демонстрация ролика на различных телеканалах должна начаться уже на этой неделе.

Что интересно (что замечает скажем TechCrunch), не совсем ясно на кого рассчитан ролик, так как хоть он и довольно забавный в нем нет ни слова о том что же такое этот загадочный Chrome. То есть в принципе ролик то привлечет внимание, но тех кто уже знает что это. Cреднестатистический зритель ТВ врядли даже знает что такое броузер и зачем он, а уж о Chrome тем более ничего не слышал.
Но лишь время покажет удалось ли Google добиться желаемого эффекта.

Интересно узнать мнение хабралюдей по-поводу всего этого.

Total votes 31: ↑19 and ↓12+7
Comments21

Mozilla о Google Chrome:

Reading time1 min
Views1.8K
Как пишет CEO Mozilla, John Lily:

«Это совершенно не удивительно, что Google сделали что-то в этой сфере, их бизнес — это веб, и у них есть четкие мнения по поводу того, какими вещи должны быть, и умные люди, которые думают о том, как сделать вещи лучше. Chrome будет браузером, оптимизированым для вещей, которые они находят важными, и интересно наблюдать как он будет развиваться.»

Tristan Nitot, президент европейского представительства Mozilla, так же заявил во время интервью с PCPro, что они не рассматривают это [выпуск Chrome] как прямую атаку на Firefox, хоть это и застало их врасплох:

«Я приведу другой пример: как раз перед тем как Microsoft выпустили Vista, они пригласили нас [поработать с ней], чтобы Firefox работал лучше на Windows Vista. Потому что для них Firefox является высококлассным приложением, которое стало очень успешным — у нас сейчас есть 200 миллионов пользователей по всему миру — они не могли позволить себе, чтоб Firefox работал медленно на Vista. Соотвествено, они помогли нам улучшить Firefox для Vista. То же самое с Google. Они желают все, чтобы Firefox работал хорошо с их приложениями, это точно. Несомненно, они даже хотят, чтобы IE работал хорошо с Gmail и остальными. Они просто имеют ограниченый контроль над этим. Вот почему Google были расстроены и запускают свой браузер Chrome».
Total votes 103: ↑85 and ↓18+67
Comments67

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity