Передісторія додатки - на андроідофонов при установці програми ВКонтакте є можливість використовувати його як провайдер контактної книги - синхронізувати контакти з соцмережі з контактами в адресній книзі. При цьому тягнеться аватар, дата народження, адреса, телефони і т.д. Коли я після тривалого використання HTC Wildfire S оцінив і настільки звик до цієї можливості, що захотів знайти подібне на айфон. Чи не знайшов, тому ми взяли і зробили своє - синхронізатор вКонтакте :)
Справа була ще в листопаді минулого року. Сам додаток зробили досить швидко - воно-то використовує досить мало функцій як АПИ ВКонтакте, так і функцій роботи з адресною книгою iPhone. Але коли ми почали розбиратися з автоматичним пошуком збігів контактів, стало веселіше. Порівняння лоб в лоб по імені, прізвища та номеру телефону було зробити легко, просто, та й відпрацьовував це швидко. Але ось знаходило тільки відсотків 20 збігів контактів від того, що знаходить провайдер в андроїд.
Природно, тільки пряме збіг нас не влаштовувало. Спочатку додали транслит в обидві сторони (тобто ім'я та прізвище по черзі з адресної книги і списку друзів вКонтакте транслітеровано і порівнювалися). Потім додали розпізнавання частин телефонів без кодів (іноді у людей в тому ж контакті номер записаний взагалі без будь-яких кодів, а в телефоні навіть з кодом країни, звуть їх там і там по-різному, а на ділі це один і той же чоловік).
Самим останнім додали порівняння по базі синонімів імен, тепер результати автопоиска збігів почали дійсно вражати. Одночасно почала вражати і швидкість роботи. На iPhone 3GS 400 з дріб'язком друзів ВКонтакте накладалися на адресну книгу в 120 чоловік приблизно хвилин 18.
Природно, це не влаштовувало взагалі нікого, тому тупе рішення «в лоб» у вигляді пачки вкладених циклів довго спрощували, позбавлялися від вкладеності, заодно ряд багів відловили. Тепер в тих же самих умовах час очікування - секунд 40 на вай-фае і хвилини 1.5 на 3G.
Настав час публікувати додаток в AppStore. Ніби як ніщо не віщувало біди, але цей процес зайняв досить тривалий час. Спочатку додаток відхилили тижні через півтори після відправки на рев'ю через «у нас немає тестового аккаунта, щоб перевірити». Ок, висилаємо їм тестовий аккаунт. Через ще тиждень з невеликим знову отримуємо лист щастя "ми після логіна отримуємо помилку». Помилка виглядала досить мило. Ось так:
Ми досить довго обмацували форуми та документацію, намагаючись зрозуміти, що це. Але ще довше копали, коли зрозуміли, що таке в даному випадку security breach і ЯК ЖЕ його обійти?
Далі для кого новина, для кого не новина, але при авторизації через стороннє додаток у ВКонтакте, як і на власному сайті, спрацьовує обмеження, якщо ви входите з «незвичайного місця». В даному випадку - в іншій країні. Тільки на сайті вам пропонують ввести 4 останні цифри, а ось через OAuth вам просто віддають помилку. Якщо хтось дійсно знає робочий варіант обробки помилки в цьому випадку - скажіть. Ми не знайшли і для того, щоб форсувати рев'ю, я просто авторизувався під тестовим обліковим записом через проксі в Купертіно. Після цього цензорів, схоже, нормально пустило, тому що недавно вони, все ж, нормально опублікували його в App Store.
Ось коротко про функціонал того, що у нас вийшло:
Як завжди, для читачів у мене в запасі 10 промокодом. Чекаю повідомлення в личку і сподіваюся, що вам сподобається. Ми користуємося - нам зручно.
Посилання на додаток: itunes.apple.com/ru/app/sinhronizator-vkontakte/id490603954
Автор: NightWriter