35 бесплатных приложений, которые пригодятся всем владельцам Apple Watch

utd9tb6vvq-zreaxgxkakez4gce.jpeg

Apple Watch быстро завоевали популярность и стали самыми популярными часами в мире, опередив Rolex и остальных производителей. Идея создания приложения для часов витала в офисе 2ГИС с 2015 года.

До нас полноценное приложение с картой на часах выпустила только сама Apple. Приложение Яндекс.Карт отображает лишь виджеты пробок и время в пути до дома и работы. Яндекс.Навигатор, Google Maps, Waze и Maps.Me вообще недоступны на часах.

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

Загляните под кат, чтобы узнать, как пет-проджект вырос в полноценный продукт.

UPD.:https://github.com/teanet/DemoWatch

Мы решили делать карту. Что было на старте?

  1. Опыт разработки на часах — 2 дня работы над тестовым проектом.
  2. Опыт работы со SpriteKit — 0 дней.
  3. Опыт написания MapKit – 0 дней.
  4. Сомнения, что что-то может пойти не так — ∞.

Итерация 1 — полет мысли

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

Карта — это очень большая картинка. Картинки на часах мы показывать умеем, значит и с показом карты справимся.

У нас есть сервис, который умеет резать карту на кусочки:

cuorkl7imghdolhexs7yb2qskr4.png

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

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

/Радуемся/ Звучит ужасно, выглядит примерно так же, работает еще хуже, но по факту задача выполнена.

Итерация 2 — минимальный прототип

Непрерывная загрузка картинок дорого обходится батарее в часах. Да и само время загрузки страдает. Нам хотелось получить что-то более полноценное и отзывчивое. Краем уха мы слышали, что в часах есть поддержка SpriteKit — единственного фреймворка под WatchOS, с возможностью использовать координаты, зум и кастомизировать всё это великолепие под себя.

/Радуемся/ Да это же MapKit за 6 копеек, полностью рабочий. Срочно в релиз!

Итерация 3 —добавляем тайлы и зум

Когда эмоции спали, задумались, куда же идти дальше.

Поняли, что важнее всего:

  • Заменить картинку на тайлы.
  • Подложить 4 тайла в бандл приложения и соединить их вместе.
let rootNode = SKSpriteNode()
internal func crownDidRotate(   _ crownSequencer: WKCrownSequencer?,    rotationalDelta: Double ) {   self.scale += CGFloat(rotationalDelta * 2)   self.rootNode.setScale(self.scale) }

/Радуемся/ Ну теперь то точно всё! Пару фиксов, и в мастер.

Итерация 4 — оптимизируем взаимодействие с картой

На следующий день оказалось, что для SpriteKit anchorPoint не влияет на зум. Зум полностью игнорирует anchorPoint и происходит относительно центра rootNode. Получается, что на каждый шаг зума нам нужно корректировать позицию.

Тайлы выглядят примерно так:

Для каждого zoomLevel (далее «z») идет свой набор тайлов. Для z = 1 у нас 4 тайла составляют весь мир.

Закодируем тайл:

let kTileLength: CGFloat = 256  struct TilePath {   let x: Int   let y: Int   let z: Int }

Определим координату тайла в таком мире:

var position: CGPoint {   let x = CGFloat(self.x)   let y = CGFloat(self.y)   let offset: CGFloat = pow(2, CGFloat(self.z - 1))   return CGPoint(x: kTileLength * ( -offset + x ),                         y: kTileLength * ( offset - y - 1 )) }  var center: CGPoint {   return self.position + CGPoint(x: kTileLength, y: kTileLength) * 0.5 }

Расположение удобно, так как позволяет привести всё в координаты реального мира: latitude/longitude = 0, что как раз в центре «мира».

latitude/longitude реального мира преобразуются в наш мир следующим образом:

extension CLLocationCoordinate2D {    // относительное положение в мире ( -1 < TileLocation < 1 )   func tileLocation() -> CGPoint {     var siny = sin(self.latitude * .pi / 180)     siny = min(max(siny, -1), 1)     let y = CGFloat(log( ( 1 + siny ) / ( 1 - siny )))     return CGPoint(       x: kTileLength * ( 0.5 + CGFloat(self.longitude) / 360 ),       y: kTileLength * ( 0.5 - y / ( 4 * .pi ) )     )   }    // абсолютное положение в мире для нужного zoomLevel   func location(for z: Int) -> CGPoint {     let tile = self.tileLocation()     let zoom: CGFloat = pow(2, CGFloat(z))     let offset = kTileLength * 0.5     return CGPoint(       x: (tile.x - offset ) * zoom,       y: (-tile.y + offset) * zoom     )   }  }

С зум левелами огребли проблем. Пришлось потратить пару выходных, чтобы собрать в кучу весь математический аппарат и обеспечить идеальное слияние тайлов. То есть тайл для z = 1 должен при зуме идеально переходить в четыре тайла для z = 2 и наоборот, четрые тайла для z = 2 должны переходить в один тайл для z = 1.

Кроме того, понадобилось превратить линейный зум в экспотенциальный, так как зумы меняются от 1 <= z <= 18, а карта масштабируется, как 2^z.

Плавный зум обеспечивается постоянной корректировкой положения тайлов. Важно, чтобы тайлы сшивались ровно посередине: то есть, чтобы тайл уровня 1 переходил в 4 тайла уровня 2 при зуме 1.5.

SpriteKit под капотом использует float. Для z = 18 у нас получается разброс координат (-33 554 432/33 554 432), а точность float – 7 разрядов. На выходе имеем погрешность в районе 30 pt. Чтобы избежать возникновение «щелей» между таймами, размещаем видимый тайл максимально близко к центру SKScene.

/Радуемся/ После всех этих телодвижений получили готовый к тестированию прототип.

Релиз

Так как приложение толком не имело ТЗ, мы нашли пару добровольцев, чтобы провести небольшое тестирование. Особых проблем не нашли, и решили выкатывать в стор.

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

Очень много времени ушло на отлаживание сети, правильную настройку кеша и малый Memory Footprint, чтобы WatchOS максимально долго не пытался убить наше приложение.

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

Итоги и планы на будущее

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

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

Заодно в очередной раз убедился, что не так важна сложность проекта, вера окружающих в успех задачи или наличие свободного времени на работе. Главное — это желание сделать проект и нудное, постепенное движение к цели. В итоге у нас есть полноценный MapKit, который почти ничем не ограничен и работает с 3 WatchOS. Его можно дорабатывать как хочется, не ожидая, когда Apple выкатит подходящий API для разработки.

P.S. Для интересующихся могу выложить готовый проект. Уровень кода там далек от production. Но, согласно военному принципу, — не важно, как это работает, главное, что работает!

Для пользователей Apple Watch Яндекс разработала и представила 13 августа 2015 года два обновленных приложения:

  1. Яндекс.Карты.
  2. Яндекс.Навигатор.

Обе разработки направлены на облегчение жизни:

  • водителя;
  • пешехода.

Каждое из них следует рассмотреть более подробно.

Фото: Яндекс.Карты на Apple Watch

Содержание

Приложение Яндекс.Карты

Теперь благодаря поддержке приложения Яндекс.Карты на Apple Watch можно в любой момент узнавать о состоянии пробок, даже не доставая свой iPhone из кармана. Это порадует многих.

Среди основных функциональных изменений, в отличие от предыдущей версии программы, можно выделить:

  1. Исправлена ошибка аварийного завершения работы программы при попытке авторизации.
  2. При изменении масштаба Яндекс.Карты на iWatch уже не перебрасывает на произвольное место.
  3. Здания на экране приобрели объем, например, определить магазин или кафе теперь намного проще благодаря надписям и специальным значкам.
  4. Можно будет просмотреть на экране часов значение загруженности дорог, а также приблизительное время, которое потребуется, чтобы добраться до конечной точки.

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

Скачать приложение можно по ссылке на iTunes.

Приложение Яндекс.Навигатор

Также компания Яндекс порадовала своих пользователей новым мобильным приложением Яндекс.Навигатор на Apple Watch, которое поможет подобрать наиболее удачный и быстрый вариант пути из точки А в точку В.

Пользователю предлагается изображение в трехмерном представлении, менять и переворачивать которое можно в любом направлении.

Управление программой производится объемными кнопками:

  1. Приближение/Отдаление.
  2. Определение месторасположения.
  3. Компас.
  4. Отмена.
  5. Настройки.

Приложение Яндекс.Навигатор на Apple Watch очень удобно, так как оно не только расскажет удобный путь, но и подскажет, если потребуется изменить направление движения. Нажав кнопку «Поехали», можно смело отправляться в путь. Также всегда можно посмотреть время до конца пути, что рассчитывается с учетом пробок.

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

  1. Выбрать тип отображения.
  2. Установить удобный режим: ночной или дневной.
  3. Выбрать список дорожных событий, которые будут отображаться на карте.
  4. Установить предпочитаемый голос оповещений.

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

Скачать приложение можно по ссылке на официальном сайте.

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

Таким образом, компания, разработав два таких актуальных приложения на Apple Watch, как Яндекс.Карты и Яндекс.Навигатор, добавила необходимое удобство всем поклонникам яблочной продукции и продолжает экспериментировать с платформой смарт-часов, добавляя поддержку новых функций в часах.

Российская компания «Яндекс» объявила о выходе очередного обновления приложения Яндекс.Карты для гаджетов, работающих на iOS. Главная особенность новой версии в том, что теперь приложение поддерживает работу с «умными» часами Apple Watch. Теперь владельцам iPhone и Apple Watch, чтобы узнать последние данные о автомобильных пробках,  вовсе необязательно доставать смартфон из кармана — нужно лишь взглянуть на экран своих iWatch, где будут доступны все превью Яндекс.Карт. Кроме этого, была устранена хорошо известная всем пользователям проблема с изменением масштаба карт при помощи кнопок — после исправления изменение масштаба карты не будет «уносить» пользователя за километры от нужного ему места. Отдельно в «Яндекс» заверили, что баг при авторизации, в некоторых случаях вызывавший непроизвольное закрытие Яндекс.Карт, также больше не будет докучать владельцам iPhone. Обновление под номером 6.7 уже сейчас можно скачать с сайта App Store.

Поделиться

—> ГаджетыВ Сети появилось видео с геймплеем Fallout 4В некоторых Apple TV обнаружен брак

В watchOS 5 появились новые опции приложения Карты для Apple Watch, включая настройкууведомлений о поворотах при навигации.

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

Как настроить навигацию на Apple Watch

По умолчанию уведомления о поворотах активны при ходьбе пешком, при вождении и при вождении с CarPlay. Если у вас есть Apple Watch с watchOS 5, вы можете настроить уведомления на свой вкус.

1) Откройте приложение Apple Watch на своём iPhone с iOS 12.

2) Перейдите на вкладку со своими часами и выберите приложении Карты.

3) В секции с уведомлениями выберите, когда они могут отображаться: при ходьбе пешком, при вождении и при вождении с CarPlay.

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

Узнавать направление через Apple Watch легко и удобно благодаря узорам вибрации.

  • Поворот налево — прерывистая вибрация.
  • Поворот направо — продолжительная вибрация.

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

Оцените пост news.detail : ajax-tape !!! —> AppleApple WatchwatchOSИнструкции —>

Часы точно определяют геолокацию, полноценно взаимодействуют с навигацией, если ее запустить в стандартном приложении «Карты» на iPhone, но при этом самих карт на экране часов нет, присутствует лишь сетка. 

Еще год назад пользователи форума Reddit поднимали эту тему, а на форуме MacRumors соответствующая тема датируется 22 мая 2015 года. Удивительно, но данная проблема до сих пор сохраняется, об этом свидетельствуют сообщения на официальном форуме поддержки Apple и наш личный опыт. Мы проверили работу карт на iPhone 7 Plus в связке с Apple Watch Series 2, iPhone SE и Apple Watch Series 1 и Apple Watch первого поколения с iPhone 6. Результат везде был одинаковый – пустая сетка без карт.

Нет проверенной инструкции, которая позволяет точно исправить данную проблему, или понять её причины. У некоторых пользователей Apple Watch нет никаких проблем с работой карт. Есть лишь общие рекомендации что делать, если вы с таким столкнулись, но они не гарантированно решают проблему.

Убедитесь, что ваш iPhone подключен к интернету, а в настройках включены службы геолокации. Приложение на Apple Watch использует iPhone, чтобы подгружать данные и определять точное местоположение (Apple Watch Series 2 могут делать это самостоятельно с помощью встроенного GPS), поэтому нужно убедиться, что проблема не связана со смартфоном.

4d9c84b9e02b824789f5dc43dfb749c5.jpg

Если с iPhone все в порядке, то попробуйте перевести в «Авиарежим» iPhone и Apple Watch, а потом соединить их заново. Если это не исправило ситуации, то сбросьте Apple Watch и создайте пару с iPhone заново. Учитывая то, что проблема существует столь продолжительное время, она связана с программными особенностями работы Apple Watch, а не проблемами в взаимодействии часов и iPhone. Решить её полноценно сможет только Apple обновлениями WatchOS. 

Используемые источники:

  • https://habr.com/post/422935/
  • https://appleiwatch.name/yandex-maps-and-navigator/
  • https://topinsider.ru/gadgets/yandeks-karty-teper-na-apple-watch
  • https://it-here.ru/instruktsii/kak-nastroit-navigatsiyu-v-kartah-na-apple-watch-s-watchos-5/
  • https://m.iguides.ru/main/gadgets/apple/karty_v_apple_watch_ne_rabotayut_normalno_uzhe_bolshe_goda/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий