Sunday, March 2, 2014

Поддержка iPhone5

http://iosronin.com/2012/11/%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0-iphone5/

Поддержка iPhone5

Ноябрь 18th, 2012  Anatoly

С выходом iPhone5 стала задача поддержки в приложении разных разрешений экрана. iPhone5 получил крупный 4-дюймовый экран с разрешением 1136*640 пикселей. Таким образом, формат изображения стал 16:9, тогда как раньше он был 3:2.
iPhone5 требует новый набор инструкций ARMv7S. Генерацию данного набора инструкций поддерживает xCode4.5 и выше. Кроме того, xCode4.5 больше не поддерживает архитектуру ARMv6 (iPhone 3G и более старых устройств).
Чтобы сделать поддержку iPhone5 нужно открыть проект в xCode4.5. Он автоматически предложит добавить изображение загрузки (lauch image) (Default-568@2x.png).

Теперь приложение будет запускаться в полноэкранном режиме на iPhone5 без добавления черных полос сверху и снизу.

Однако и этого может быть недостаточно для правильного масштабирования. Необходимо убедится, что представление (view) внутри xib файлов автоматически масштабируются по высоте родительского представления (super view).


При использовании Cocoa Auto Layout, этот шаг становится необязательным. Однако Auto Layout не поддерживается на iOS 5.

И все же иногда наступает момент, когда без кода не обойтись. Основная задача состоит в том, чтобы определить запущено ли приложение на iPhone 5 (или симуляторе iPhone 5) или нет.

Вариантов определения тут может быть несколько:

по размеру экрана
по модели девайса (iphone5,1)
по размеру оперативной памяти
по характеристикам процессора

Естественно, первый вариант наиболее простой, т.к. будет работать как на самом девайсе, так и на симуляторе.  Причем это можно сделать одной строкой.

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height — ( double )568 ) < DBL_EPSILON )

Впоследствии, IS_IPHONE_5 мы сможем использовать, например, так:

if (IS_IPHONE_5){
//это запущено на экране в 4 дюйма!
}
else{
//экран размером не 4 дюйма
}

Вот основные моменты о которых я хотел рассказать.

Как настроить iOS Simulator для тестирования приложений под дисплей 640×1136 нового iPhone

http://www.macdigger.ru/iphone-ipod/kak-nastroit-ios-simulator-dlya-testirovaniya-prilozhenij-pod-ekran-iphone-5-640-1136-tochek.html

Как настроить iOS Simulator для тестирования приложений под дисплей 640×1136 нового iPhone

13 АВГ, 2012 КОММЕНТИРОВАТЬ (7)



По всем признакам новое поколение смартфонов Apple получит увеличенный до 4 дюймов дисплей. В эту же сторону говорит и тот факт, что тестовая версия операционной системы iOS 6 адаптирована под экран с разрешением 640×1136 пикселей, превышающем традиционные 960×640 точек.

Все пять моделей «яблочного» телефона оснащались 3,5-дюймовыми ЖК-панелями с различным разрешением: первые три поколения – 320х480 точек, а последующие два – 640х960 пикселей. Прямо сейчас любой пользователь может настроить программное обеспечение iOS Simulator для использования операционной системы в новом разрешении 640×1136. Напомним, в то время, как в iOS 5.1 просто увеличивается свободное пространство между рядами иконок на рабочем столе, iOS 6 создает пять находящихся на равномерном расстоянии друг от друга рядов.

Проверить работу приложений на экране iPhone 5 можно после несложной настройки iOS Simulator, состоящей из пяти простых шагов.

Шаг 1: Процесс кастомизации iOS Simulator начинается с загрузки текстовых файлов в специфические директории, которые по умолчанию скрыты в Mac OS X. Включить отображение папки ~/Library/ можно следующей командой в Терминале.

  chflags nohidden ~/Library/

Шаг 2: Скачайте готовый текстовый файл File.txt и поместите его в папку ~/Library/Application Support/iPhone Simulator.

Шаг 3: На этом этапе нужно добавить несколько ключей в Info.plist, которые отвечают за разрешение дисплея. Откройте файл Info.plist, расположенный в следующей папке:

  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.  platform/Developer/Applications/iPhone Simulator.app/Contents/Resources  /Devices/iPhone (Retina).deviceinfo

Шаг 4: Внесите в документ следующие параметры:

  <key>eagle</key>  <string>640</string>  <key>giraffe</key>  <string>1136</string>

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

Шаг 5: Теперь iOS Simulator из программного пакета Xcode будет открываться в увеличенном разрешении. При запуске эмулятора не забудьте переключиться на дисплей Retina.

Saturday, February 8, 2014

Выбираем службу доставки для интернет-магазина

http://www.shopolog.ru/metodichka/logistics/vybiraem-sluzhbu-dostavki-dlya-internet-magazina

Автор: Андрей Кистенев, компания Shop-logistics.

С организацией доставки придется столкнуться любому интернет-магазину. И тут есть всего два пути: либо создавать свою службу доставки либо отдавать доставку на аутсорс. У каждого из подходов есть свои плюсы и минусы. Но если еще 3–4 года назад создание своей службы доставки выбирало большинство начинающих магазинов, то теперь фокус сместился в сторонуаутсорсинга.

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

И как же выбрать подрядчика в таких условиях? Из уст представителей магазинов часто слышно: «Да они все одинаковые, эти курьерские компании. Посмотрел десять сайтов, все предлагают одно и то же на одинаковых условиях«.  На самом деле нюансов много.

И пожалуй, самый правильный способ выбора службы доставки это внимательно изучить сайты компаний, сделать  предварительный отбор из 3–5 компаний, а затем внимательно вычитать 15–20 страничные договора каждой из компаний. У редкого начинающего магазинщика хватит на это терпения. Поэтому я постараюсь выделить основные моменты, на что нужно смотреть.

Качество работы службы доставки.

Качество службы доставки складывается из трех вещей:

1. Качества самой доставки, которое оценивается следующими критериями

  • процент доставляемости с первого раза (хороший показатель: от 93%)
  • общий процент доставляемости (хороший показатель: от 97%)
  • процент отмен/переносов по вине службы доставки (хороший показатель: до 1%)
  • Реакция компании на жалобы

2. Качества клиентского сервиса, которое характеризуется

  • Способами подачи заявки на доставку (Excel, XML, интеграция по API, Личный кабинет)
  • Временем реакции на входящие запросы
  • Способами приема запросов (телефон, е-майл, тикет-система).
  • Скоростью предоставления отчетов о доставке. Когда Вы получите информацию о статусах доставок: через несколько дней после доставки, на следующий день, вечером в день доставки или в режиме реального времени.
  • Наличие е-майл, смс-уведомлений об изменении статуса доставки и/или других важных событиях для магазина
  • Сроки возврата товаров и денежных средств
  •  

3. Перечня предоставляемых услуг.

  • Возможность частичных возвратов, примерки, возврат документов. Взимаются ли за эти услуги дополнительные деньги. Если взимаются, то сколько и каков порядок.
  • Возможность забора заказов со склада магазина
  • Возможность забора товаров со склада поставщика
  • Ответственное хранение
  • Предпочтовая подготовка и отправка посылок почтой РФ и/или EMS

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

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

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

Возможность забора товара от Поставщика.

На данной услуге хотелось бы остановиться отдельно.

В случае если Вам нужна не только доставка скомплектованных Вами заказов, но и забор товаров от поставщиков с последующей комплектацией заказов, то выбирать придется из намного более узкого количества предложений. Компаний, которые делают заборы от Поставщиков, до сих пор единицы. Это связано с тем, что сама по себе услуга забора от Поставщика сложна и часто убыточна для курьерской компании. Она требует  автоматизированного склада с мощной WMS (Warehouse Management System).

Основные отличия забора со склада Магазина от забора со склада Поставщика

  • На складе магазина курьер обычно проводит 15–30 минут. У Поставщика курьер проводит 30 минут -1,5 часа.
  • Для забора со склада Поставщика требуется доверенность или печать магазина. В случае если Вы не можете сделать Генеральную доверенность, то появляются дополнительные сложности по учету доверенностей, переданных в службу доставки. На минутку представьте. Забор для 200 клиентов  (пусть в среднем всего от 2 поставщиков  для каждого магазина) требует 400 разных доверенностей. Их нужно отдельно хранить, учитывать их остаток, чтобы они не закончились в самый не подходящий момент, и отдельно выдавать курьерам. Целая отдельная задача для службы доставки.
  • И самое главное. Со склада магазина курьерская служба получает скомплектованные заказы, со склада поставщика она получает товары, а не заказы. Из которых только предстоит собрать заказы. Прием товара на склад, комплектация заказов, учет  пересортицы, последующее хранение возвратов — все это ложится на плечи службы доставки.

В чем сложность приемки на склад для Курьерской Службы?

Простой пример. На товаре может быть нанесен один артикул, в реестре на сборку от магазина может быт указан другой артикул, в накладной поставщика — третий. Для представителя магазина, который хорошо знает свой товар — это не проблема. Для сотрудников склада курьерской компании, которая должна принять тысячи товаров для разных магазинов за один вечер — это становится крайне сложной задачей.

География доставки и количество пунктов выдачи.

Все аналитики в один голос твердят о растущем спросе в регионах. Поэтому фокус продаж с конкурентного рынка двух столиц будет неизбежно смещаться в сторону регионов. Если Вы только открываете интернет-магазин возможно Вам будет достаточно службы доставки, которая доставляет только по Москве и Санкт-Петербургу. Но все же лучше сразу ориентироваться на весь рынок, на всю Россию.

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

Также имеет смысл обратить внимание на количество регионов, в которых служба доставки может выполнить доставку курьерами (либо выдавать заказы через пункты выдачи в регионе).

Если компания подходит Вам для работы в столицах, но у ней нет курьерской доставки по регионам, то имеет смысл уточнить в компании о планах выхода в регионы. Так как в 2012 году многие компании, работавшие раньше только на рынке двух столиц, устремятся в регионы, вслед за спросом на интернет-покупки.

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

  • Снизить зависимость Вашего бизнеса от одного единственного подрядчика.
  • Позволит проводить сравнение качества работы именно на ваших заказах служб доставки и перераспределения объемов между службами.
  • Даст доступ к более широкой географии доставки и к большему количеству пунктов выдачи.

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

Цены

Цена — безусловно важна. Но тарифные сетки у служб доставки очень похожи. А использование разных границ по объему доставок для перехода к следующей цене затрудняет сравнение «на лету«. Поэтому нужно взять свой объем доставок и не полениться примерно посчитать сколько будет обходиться Вам одна доставка.

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

Что я подразумеваю под скрытыми платежами

  • Платный возврат товаров
  • Платное хранение возвратов
  • Платный забор заказов.
  • Комиссия за прием денежных средств
  • В случае отмены доставки платите ли Вы деньги. Если платите, то сколько? Полную стоимость или какую-то другую оговоренную цену? В каких случаях платите? Всегда? Или только после выезда курьера на адрес?
  • Отдельная плата за доп сервисы (маркировка, комплектация, смс-оповещения)

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

Ответственность

Важный раздел в договоре любой службы доставки. Посмотрите, какую ответственность несет курьерская служба в случае утраты вашего заказа. Я в некоторых договорах курьерских компаний видел ответственность «по закупочной цене«, а не по актам приемки-передачи в курьерскую службу. Поди потом разберись, в случае возникновения проблемы, что такое закупочная цена и как ее определять.

Monday, December 2, 2013

SDWebImage Retry Failed Image Download https://github.com/rs/SDWebImage/issues/465

https://github.com/rs/SDWebImage/issues/465

wlindner opened this issue 4 months ago

SDWebImage Retry Failed Image Download

No milestone
No one is assigned

What is the best way to retry a failed image download? I have a collection view that can show about 20 80x80 thumbnail images. I put the SDWebImage code in the cellForItemAtIndexPath method, but I've found that every so often an image fails to download. I know I can use a completion block and test if the image is nil, but it doesn't seem to be reloading the image correctly (the image still never shows up). Is this how I should be handling retrying the image download? Here's an example of my code.

  - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {         NSURL *thumbnailURL = [NSURL URLWithString:url];        INCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];        [cell.imageView setImageWithURL:thumbnailURL completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {          if (!image) {              [self.collectionView reloadItemsAtIndexPaths:[NSArray arrayWithObject:indexPath]];          }      }];        return cell;  }  

You need to use one of the methods with an "options" parameter and specify SDWebImageRetryFailed like so...

[cell.imageView setImageWithURL:thumbnailURL
placeholderImage:[UIImage imageNamed:@"placeholder.png"]
options:SDWebImageRetryFailed
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {...}];

-M.

Great, thank you