Здравствуйте!
— Не хотите ли войти
Tags Switch

Заметки

Предыдущая
1
2
3
4
5
6
9
Следующая
сегодня

Итак, на мероприятии 1 сентября, анонсировали прошивку 4.2 для iPad. На данный момент обещано следующее:

  • многозадачность, уже знакомая пользователям iPhone 3GS и 4;
  • папки, тоже знакомые всем, поставившим 4 прошивку, даже на iPhone 3G;
  • печать. Возможность легко печатать документы и картинки и документы по сети;
  • AirPlay. Использование нового TV или специальных колонок и наушников для прослушивания музыки/просмотра видео с iPad. Те, кто смотрели трансляцию — видели как это бывает;
  • Гейм-центр. Система достижений, призов, мультиплеера и прочего игрового взаимодействия и «меряния» между игроками, которая, скорее всего, как минимум, сильно потеснит остальные игровые системы для iOS устройств;
  • Улучшенная почтовая система. Общий Inbox, цепочки сообщений, загрузка прикрепленных файлов, вобщем большинство читателей уже знают, что имеется в виду;
  • Поиск в Safari;
  • Дополнительная поддержка для enterprise (больших корпораций), часть из которых описана в статье на нашем сайте;
  • Дополнительные устройства. Поддержка устройств для людей с ограниченными возможностями, в частности дисплеев с алфавитом Брайля;
  • Языковые дополнения. Арабский, греческий и другие нужные вам языки и клавиатуры.

Резюмируя, можно сказать, что в ноябре iPad догонит iPhone по количеству полезных нововведений, а мы надеемся еще раньше увидеть все это в разделе сайта Apple для разработчиков.

31 августа

Когда iPhone 4 только появился в продаже, мне очень захотелось его купить — да, да, прямо сейчас, он же такой клевый! Казалось бы, находясь в Америке купить новинку проще простого — идешь в магазин, проводишь кредиткой и вуаля! Одна проблема — AT&T. Проще всего купить iPhone за $200 долларов с двухлетним контрактом. Но у меня уже есть симка AT&T, за которую платит мой работодатель. И вторая, за которую мне придется платить из своего кармана около $100 в месяц, мне не нужна.

Нет проблем, специально для таких как я есть возможность купить «iPhone 4 No Contract». Однако, и для нее нужно иметь договор с AT&T, зарегистрированный на мое имя. Моя же симка, повторюсь, формально принадлежит не мне. Кстати, сейчас эту опцию убрали — думаю, не в последнюю очередь потому, что для большинства людей слова «No Contract» обозначают именно отсутствие контракта, а не его обязательное наличие.

И вот, я прихожу в салон AT&T и задаю им ключевой вопрос: так как же мне купить себе айфон? Заключите контракт, отвечают мне. Ну ладно, думаю я, можно же всех обмануть — заключить контракт, получить айфон за $200, потом разорвать контракт. Начинаю узнавать: сначала надо заплатить столько-то за активацию, потом 200 баксов за айфон, потом минимум 70 за первый месяц, если не повезет, то и за второй, поскольку если разорвать контракт раньше, чем через 30 дней, то устройство нужно вернуть. Потом 310 долларов за досрочное расторжение контракта. По ходу дела, возьмут еще долларов 500 залога, его вернут, но тем не менее. Итого: надо заплатить минимум $700 и огрести кучу потенциальных проблем.

В конце концов я не выдержал и пошел в магазин Apple на пятой авеню искать справедливости. Я нашел там продавца, показавшегося мне опытным, и сказал ему:
— Чувак, смотри, у меня есть карточка, на ней есть деньги. И у меня очень простая задача — я хочу купить ваш новый айфон. Вы ведь его для этого и выпустили? Так как я могу это сделать, чтобы без заморочек с контрактом?
— I'm sorry, — сказал мне продавец, — you can't do this.

Давайте остановимся на секунду: вышел новый гаджет и я не могу его купить? You're fucking kidding me!

При всей моей лояльности к Apple, это уже перебор. Понятно, что фанаты типа меня могут в итоге купить айфон в Европе или Канаде (что я и сделал), но большинство потенциальных покупателей пожмет плечами и купит какой-нибудь Android, которых развелось как тараканов. Чем дальше, тем чаще пишут о том, что доля Apple на рынке коммуникаторов рано или поздно должна начать падать, и в итоге Apple отойдет на свою привычную позицию — гаджеты премиум-класса, с долей рынка процентов в 10.

И я надеюсь, что если Apple таки продолбает самый большой в мире рынок техники — американский — кто-нибудь скажет Джобсу: «I'm sorry, buddy».

20 августа

Как русифицировать кнопку Cancel в UISearchBar

Задача. Дан UISearchBar со стандартной кнопкой Cancel. К сожалению, нет никаких «стандартных» средств изменить текст на ней. Тем не менее, требуется это сделать без привлечения дополнительных «наклеек», которые закроют собой текст Cancel, а напишут поверх что-нибудь еще.

Общая методика решения. UISearchBar состоит из кучи UIView, вложенных друг в друга. Прогоним все по рекурсии, разберемся, кто из потока «дочерних» UIView является искомой кнопкой и сменим ее текст.

Исходный код

void nStaticReplaceStringInView(UIView * view, NSString * haystack, NSString * needle)
{
    // Рекурсивный перебор всех UIView
    for(int i=0; i<[view.subviews count]; i++)
    {
        nStaticReplaceStringInView([view.subviews objectAtIndex:i], haystack,needle);
    }
    // Поисковой блок: проверка, отвечает ли текущая UIView на собитие titleForState:. Если да - это кнопка
    if([view respondsToSelector:@selector(titleForState:)])
    {
        //Если текущая метка кнопки - haystack, то ...
        if(NSStrEq([view titleForState:UIControlStateNormal] , haystack))
        {
            // то сделай текущую метку needle
            [view setTitle: needle forState: UIControlStateNormal];
        }
    }
}

Пример использования

 nStaticReplaceStringInView(searchBar, @"Cancel", @"Отмена"); 
19 августа

Столкнулись с такой проблемой как Error launching remote program: security policy error. Приложение удачно ставилось на iPhone/iPod, при запуске выдавалась ошибка, что время действия Provisioning Profile’а истекло.

Генерирование нового Provisioning profile’a и заливка его в XCode и, собственно на iPhone, ни к чему не привела — сообщение продолжало вылезать, и работа остановилась до нахождения лучших решений. Удаление всех профилей, кроме нового, на iPhone’е тоже ничего не дало.

Немного помучавшись, в результате нашли проблему:
Зайдя в Organizer в ХСode, можно увидеть примерно следующее:

То есть всего один из установленных профилей просрочен. Удаление просроченного профиля из Organizer’a решает данную проблему.

P. S. На скриншоте показаны только не просроченные профили, однако он дает понимание того, как бы выглядел список профилей, если бы хотя бы один из них был просрочен ;)

P.P. S. На самом деле причин и решений у этой (Error launching remote program: security policy error) проблемы может быть несколько. Однако, в нашем случае это всего лишь просроченный provisioning profile.

26 июня

На WWDC традиционно много треков играет. Во время ключевых презентаций и событий, просто пока зал заполняется/народ расходится. Не говоря уже о том, что есть Bash, на который приглашается всем в США известная группа (а за ее пределами, обычно, неизвестная никому) и зажигает.

Добрые люди собрали музыку, которая играла в этот раз: notundernda.com/WWDCMusic.html

Ну, и, чтобы было по теме, я таки разобрался в GCD. И почти — в блоках. Это очень круто. Настолько круто, что, видимо, я буду это использовать везде. В Objective-C/Cocoa — напрямую, в остальных местах — активно искать аналоги, благо точно есть.

Предыдущая
1
2
3
4
5
6
9
Следующая
© 2009-2010, ООО «Инру»
Вход
Имя пользователя:
Пароль:
Или…
Twi
Отмена
Войти
Восстановить забытый пароль…