2gis dialer для iphone

2 Gis Dialer для Ios скачать бесплатно

Многие заменяют стандартный номеронабиратель в системе Android, так как он является недостаточно удобным и функциональным. Но и многие новые менеджеры контактов не вносят в систему ничего полезного, кроме приятного оформления. Давайте разберём “Умный” номеронабиратель 2 gis dialer для ios системы.Чем он отличается от всех других аналогичных программ? Естественно, самым главным преимуществом здесь является большое количество возможностей. Давайте их перечислим.

  • Можно быстро найти адрес и контактные данные практически любой компании какого-либо города. Доступ в интернет для поиска по встроенному справочнику необязателен.
  • Благодаря этому, можно максимально быстро воспользоваться различными услугами. Например, нужно не более 5 минут, чтобы заказать пиццу.
  • Если неизвестный номер, который звонит пользователю, имеется в базе этого приложения, то оно выдаст всю имеющуюся информацию. Таким образом, можно легко узнать, когда на телефон звонит представитель какой-либо организации.

Удобство работы в 2 Gis Dialer для Ios

Все остальные функции предназначены для того, чтобы пользоваться телефоном было намного легче и приятней. Например, функция быстрого звонка позволит моментально набрать тот номер, с которым часто производятся какие-либо операции (звонки или SMS-сообщения).Использование T9 поможет найти контакт гораздо раньше. Причём автозаполнение понимает, как русские символы, так и транслит.

Например, приложение сможет легко определить не только контакт с именем “Sasha”, но и “Саша”.Сам внешний вид номеронабирателя можно легко изменить, сменив тему оформления. Причём многие имеющиеся темы были оптимизированы под работы системы. Это поможет снизить нагрузку, а также увеличить длительность работы батареи.Те, кто пользовались Android версией программы, легко смогут и использоваться приложение на IOS. По функционалу они ничем не отличаются. Единственное различие между версиями – это место, где можно данное приложение скачать.

Если Android версию можно загрузить с официального магазина App Store , то, соответственно, скачать 2 gis dialer для ios можно с сервиса App Store. Для этого достаточно ввести в поиск фразу “2gis”. Или же есть альтернативный вариант поиска – воспользоваться QR-кодом, который можно найти на официальном сайте программы.

Источник

2GIS Dialer

Время идет, а новые продукты 2ГИС всё не кончаются. Мы уже рассказывали о новом 2ГИС, новом дизайне и приложении для Blackberry 10. Настало время рассказать об ещё одном продукте из новой линейки.

На Хабре ни для кого не станет открытием, что на Android стандартный dialer (он же звонилка, он же номеронабиратель) можно заменить на любой другой. С ноября этим другим может стать дайлер от 2ГИС.

В Google Play всегда было много хороших и разных дайлеров. Какие-то из них интересны дизайном, какие-то впечатляли возможностями кастомизации. Но всех их объединяло одно — чтобы куда-то звонить с их помощью, вы должны узнать номер. Отдельной проблемой являются входящие звонки. Если номера нет в телефонной книге, то узнать того, кто на том конце провода, можно только после «Алло?»

Это с одной стороны. А с другой… нет, не 2ГИС для Android. Мы решили, что в данном случае полная версия 2ГИС — это не самое элегантное решение проблемы. Нужно новое лёгкое приложение, которое заточено именно под эти задачи:

  • удобно набирать номер;
  • находить компанию по сфере деятельности, названию или номеру телефона;
  • определять с какого номера вам звонят.

Сказано, сделано. Взяв в помощь API 2ГИС и разработчика одного из лучших дайлеров за всю историю Android, мы взялись за дело.

Фирмы

Возможно, кто-то скажет: — «Эй, нафига вам всё это? То же самое может делать и стандартный дайлер в Android 4.4!»

Давайте разберёмся. Чуть выше мы упомянули то, что наш дайлер работает на API 2GIS. Это значит, что речь идёт о доступе к проверенным данным почти 1 500 000 компаний России, СНГ и Европы. И так уж исторически сложилось, что такого количества точных и полных данных по организациям, особенно в России, кроме нас, нет ни у кого.

Умышленно пропустить важный звонок из военкомата или от секты саентологов стало заметно проще.

Читайте также:  Как не сломать провод айфона

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

Казалось бы, всё настолько круто, что лучше и быть не может. Но это не совсем так. Заменить стоковый дайлер на Android можно почти полностью. И это «почти» неспроста. Ограничения платформы не позволяют сделать полностью свой экран входящего и исходящего звонка, нет единого документированного доступа к выбору сим-карт для двухсимочных телефонов, нет возможности управлять системными уведомлениями о пропущенных звонках. Всё это несколько затрудняет разработку.

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

Вероятные контакты

Но вернемся к фичам. В лучших традициях “And one more thing”, 2GIS Dialer может кое-что еще. Например, запоминать кому, когда и откуда вы звоните, а потом предлагать вам этот контакт для набора в один тап.

Если вы каждый вечер звоните жене из магазина, 2GIS Dialer это запомнит, и в нужный момент нужный номер окажется под рукой. Точнее, под пальцем. А если в вашем календаре запланированы какие-то события, для быстрого звонка будут предложены люди, связанные с этим событием. Если вдруг вы будете опаздывать на встречу с начальником, именно его контакт будет предложен вам в первую очередь. Но не обольщайтесь — причину опоздания вам придется придумывать самим.

Удобный поиск

Нельзя сказать, что лучше: Т9 или QWERTY-клавиатура. Этот спор изначально из области Ctrl+Shift / Alt+Shift или какой стороной вешать бумагу. Да и ситуации бывают разные. Есть кейсы, когда набор с Т9, как говорится, решает. А бывают такие, когда QWERTY-клавиатура — оптимальный вариант. Поэтому мы решили, что нужно поддерживать обе раскладки.

Пока продукт в статусе бета-версии. Тем важнее для нас обратная связь. Будем рады узнать ваше мнение о 2GIS Dialer. Не исключено, что появление новой фичи или исправление какого-нибудь бага состоится именно благодаря вам. Установить наш дайлер можно из Google Play.

Источник

Все «радости» CallKit или как мы делали определитель номера на iOS 10

2ГИС давно хотел поделиться с пользователями айфонов своими знаниями о телефонных номерах компаний из справочника. Android-платформа давала такую возможность, а вот под iOS подходящего инструмента долго не было.

В июне мы ездили на WWDC 2016, и на одной из сессий ребята из Apple обмолвились, что наконец-то можно делать «gorgeous astonishment» — определитель номеров под iOS 10. Радости нашей не было предела, но до поры до времени: как Apple любит, фичу она предоставила с рядом ограничений.

Прототип

Первая «радость», с которой мы столкнулись — «богатая» документация, а именно:
→ CXCallDirectoryExtensionContext

И всё. Ну что ж, могло быть хуже.

Из этого видим, что dialer под iOS — это расширение приложения, которое крутится отдельным процессом, его можно перегрузить и получить его статус. Похоже на то, что нам нужно.
В самом же экстеншне можно добавить номера в виде «телефон/имя» и добавить номера для блокировки.

Первый прототип был готов за 30 минут. Один личный телефон, зашитый в экстеншн, один тестовый телефон добавлен в блокировку, всё завелось с первого раза, радости не было предела. Будущее выглядело крайне радужным — мы уже представляли, как всё это попадёт в ближайший релиз на следующий день.

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

Потом начали добавлять пачку номеров и выяснилась третья «радость»: все номера нужно записать в базу до того, как они будут определены (это как раз знаменитая безопасность Apple — чтобы мы не получали доступ к входящему callerID). А наша база — это около 4 000 000 номеров с подписью. То есть 140 Мб текстовой информации, или 40 Мб, если пожать по самой жести, и всё это нужно каким-то образом доставить в расширение.

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

База данных

Сначала решили тупо добавить все номера, и вновь неожиданность — номера должны быть добавлены не абы как, а в порядке возрастания: 01, 02, 911 и т.д. В противном случае экстеншн падает. В первой бете 8 xcode экстеншен падал вообще без ошибок.

Читайте также:  Имитация машинки для стрижки айфон

Далее выяснилось, что мы ограничены 1 999 999 номерами. Да, именно 1 999 999, а не 2 000 000, что тоже не совсем равняется нашим 4 000 000 номеров. Хотели сначала сделать три расширения, наполниться каждое до 1 999 999 номеров и в ус не дуть. Потом решили разделить по регионам: Москва + Питер, остальная Россия, зарубежка. Но от этого решения отказались, потому что нужно было придумать более сложную доставку и делать фичу еще менее стабильной, и работа нескольких одновременно работающих расширений тоже не была стабильной. Да и заставлять пользователя включать все три расширения тоже не хотелось. В итоге решили оставить только номера установленных у пользователя городов.

Поначалу хотели доставлять данные через SQLite. Собрали простую базу в 100 000 номеров из Новосибирска, написали логику работы с базой, запустили демопроект, и… ничего. Ошибок нет, всё ок, а номера не определяются.

Покопав это дело, выяснили, что при попытке вытащить данные из SQLite в ascending order база создаёт кеш на 30 Мб и экстеншн падает по памяти. Покопав форумы Apple, поняли, что лучше не вылезать за 5 Мб оперативной памяти. В итоге при объединённой базе для Москвы, Питера и ещё пары городов нужно будет сильно усложнять запросы к базе, строить хорошо оптимизированные по памяти и скорости фетчи, и усложнять процесс тестирования. Делать все это было совсем некогда, неохота, к тому же моих компетенций в околобазаданных технологий явно не хватало.

Запилили свой тупой, как бревно, формат данных в виде битовой последовательности:

[uint16_t: Размер блока][unsigned long long int:Phone][String:Name]

Да, по идее нужно использовать кеш, читать блоком по 8 Кб и всякие такие дела. Но такой алгоритм пробегает по базе в 2 000 000 номеров за 10 секунд в отдельном системном процессе, не затрагивая никак основное приложение, притом происходит это один раз за обновление, поэтому решили сильно не заморачиваться с оптимизацией.

Ура! Теперь мы умеем безопасно парсить номера телефонов из базы, спокойно укладываясь в лимит 5 Мб памяти. Но время идёт, а фича всё ещё не готова.

Доставка данных

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

Оказалось, что за нас уже всё придумали и есть замечательная штука App Groups, которая позволяет шарить данные между двумя приложениями от одного разработчика.

Можно положить в основном приложении файл по пути:

а в экстеншне достать его через:

Хоть проблем с доставкой не было никаких, и на том спасибо.

Дальше мы приготовили данные в нужном формате. Если не сильно углубляться, 500 Мб файл в формате .tsv нужно раскидать по 108 регионам, перегнать в бинарный формат, заархивировать и создать джобу на дженкинсе, чтобы не делать всё это руками и иметь готовую портянку данных для каждого релиза без особой боли. Короче, на это мы тоже потратили прилично времени — около 90% от всей разработки.

Встала задача доставить эти данные в телефон (вторые 90% разработки).

Сначала решили использовать технологию «On demand resources», а заодно и узнать, зачем нужна третья, вечно пустая вкладка в xcode — Resource Tags.

Эти ребята расскажут лучше:

  • Документация;
  • Видео с WWDC 2015;
  • Видео с WWDC 2016;

Если коротко, Resource Tags для нас — это просто манна небесная (а именно Download Only On Demand). Она позволяет пометить некоторые ресурсы приложения тэгами, указать их тип, и при заливке приложения в стор он не будет включать их в бинарь. Потом их можно докачать при помощи NSBundleResourceRequest и получить через [NSBundle mainBundle]. То есть вообще не нужно пинать другие команды, придумывать, как их хранить и как доставлять до пользователя. А Apple сам хранит все данные + предоставляет очень адекватное API для их получения. Что сулило быструю интеграцию хотя бы здесь.

Но не всё оказалось так радужно: в первом релизе эта технология показала себя крайне паршиво, и примерно 20% пользователей тупо не смогли ничего скачать. Покопав форумы Apple, выяснили, что не у нас одних такая проблема, а они очень давно её не чинят и никак на неё не реагируют.

Читайте также:  Заводские настройки айфон 11 про макс

Resource Tags пришлось выпилить и доставлять данные другим способом. В итоге вшили данные в базу обновления городов. Теперь вместе с обновлением города пользователи получают новые базы номеров.

Всё впереди

Худо-бедно dialer попал в AppStore, и тут нас ждала четвёртая «радость».

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

Мы постоянно получаем жалобы, что определитель не работает, или вопросы, как его включить. Пока, как промежуточный вариант, сделали отдельный пункт про определитель в настройках 2ГИС.

С iOS 10.3 Apple подкинула ещё проблем: если обновиться до этой версии, то определитель пропадает в настройках до тех пор, пока пользователь либо не переустановит приложение, либо не накатит обновление. Экстеншн в целом ведёт себя нестабильно. Периодически (по непонятным причинам и законам) он выключается или вовсе пропадает из настроек при обновлении. Иногда, в процессе обновления номеров, система молча прибивает экстеншен с кодами ошибок:

Ещё в октябре мы создали пару радаров в Apple с просьбой дать нам ручку, чтобы позволить пользователям включить dialer из самого приложения, и по поводу баги с 10.3. Первый тикет Apple игнорирует с октября, а второй находится в ооочень длинной очереди.

Так что в ближайшее время мы вряд ли сможем сделать продукт лучше для пользователя.

Как всё это в итоге работает:

  1. Пользователь качает город/города;
  2. Из города достаётся база номеров в нашем формате;
  3. Смотрим все базы, которые установлены у пользователя (мы храним их в общем UserDefaults между экстеншном и основным приложением);
  4. У каждой базы есть хэш. Если хоть один хэш не совпал или появился новый, мы записываем все новые базы в общее хранилище и помечаем их как готовые к установке. Это нужно на случай, если пользователь не активировал экстеншн, а свернул приложение и включит его потом;
  5. Если экстеншн активен, перезагрузим его через:

В самом экстеншне, когда он получает:

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

  • Помечаем базы как установленные;
  • Повторяем процесс для каждого обновления;
  • Основной проблемой при реализации этой фичи была подготовка данных и их доставка в приложение. Если зашить в экстеншн порядка 100 000 телефонов, то фичу можно сделать за час (при условии что они у вас есть).

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

    Вместо заключения

    На данный момент фича завершена, в ближайшее время планов по её доработке нет. Но всё ещё хочется сделать выборку по самым определяемым номерам — где-то в районе 100 000 номеров — и зашить их сразу в экстеншн, чтобы пользователи сразу получили минимальный функционал без необходимости скачивать регионы. Ещё у нас есть довольно много данных о «токсичных» номерах: коллекторские агентства, различного рода опросы, разные финансовые пирамиды и другие неугодные номера, на которые пожаловались пользователи Dialer на Android. Их мы тоже можем доставить отдельным пакетом всем желающим.

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

    Источник

    Оцените статью