ios

Раз уж зашла речь об Apple — будет неприлично не упомянуть баг в Facetime. Достаточно позвонить на устройство с последней версией iOS и добавить себя самого в групповой звонок, чтобы начать слышать звук собеседника, ещё до того, как он поднял трубку. Если добавить самого себя и взять трубку с третьего устройства — то будет видно ещё и видео до того, как собеседник поднял трубку.

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

Понятно, что это адуха и люди близкие к программированию скажут «они что, совсем с катушек съехали, как такое можно было запрогать?». Люди, программировавшие VoIP (голосовые сервисы) и участвовавшие в разработке крупных и долгоживущих проектов (а iOS, это, безусловно, крупный и старый проект) не удивлены — можно прямо сходу придумать вполне реалистичное объяснение, почему так получилось.

Одна из гипотез: Facetime начинает отсылать аудио и видео сразу же после набора номера. Сделано это для того, чтобы после нажатия кнопки «принять звонок» не было даже малейшей задержки. Звонок начнется мгновенно. Добавление групповых звонков программировала отдельная команда и они не до конца разобрались с диаграммой состояний звонка (она дико сложная) — и вот мы все видим результат.

Учитывая, что Apple в течении нескольких часов выключили групповые звонки, через неделю выпустят фикс, а ещё через неделю у 90% пользователей будет установлено исправление — всё нормально. Что будет, если аналогичная проблема найдется в Android — вот об этом страшно подумать.

Ну и обязательный xkcd:

Айфоны и андроиды. Для потребителя разница минимальна. Тот же экран блокировки с большими цифровыми часами, те же самые приложения.

Для любого человек в этом варящегося, iOS и Android - две параллельные вселенные. То, что ты сделал в одном мире - во многом не применимо в другом. Редкие программисты умеют разрабатывать приложения для обоих платформ одновременно, знают хорошо обе платформы - единицы.

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

Каждые пару лет появляется новая технология «кроссплатформенной разработки». Меняются названия, технологии под капотом и компании, её продвигающие. Я на своём профессиональном веку увидел хайп и угасание гигантов PhoneGap — монструозный HTML, купленный Adobe и позже отданный в Open Source и переименованный в Apache Cordova; Xamarin — пишем на C#, который компилируется в нативные приложения для каждой платформы. Microsoft купила её в 2016.

Остаются неизменными:
1) набор обещаний: в два раза меньше разработчиков (одна общая команда) и программы, выглядящие и работающие одинаково на айфонах и на андроидах;
2) проблемы — кросплатформенные программы тормозят, нещадно жрут батарейку, выглядят как пришельцы с другой планеты для внимательных пользователей каждой платформы, а ещё в какой-то момент эти инструменты начинают создавать больше проблем, чем решают.

Последняя модная (суперхайп) технология такого рода — React Native от Facebook. Программируем на современном lingua franca — javascript, а весь пользовательский интерфейс может быть нативным для платформы. Работает быстро, выглядит классно. Потенциально можно программировать силами веб-разработчиков (ну почти). Самое главное — в старые приложения можно добавлять новые экраны, сделанные на react-native. Технология молодая (2015 год), есть множество нерешенных проблем, но это первая кроссплатформенная балалайка, которую мне хочется попробовать. В России я знаю несколько компаний, которые успешно используют RN в продакшен-разработке. Радио Арзамас сделано на RN, например.

Я рассказываю всё это, чтобы вы поняли «интригу, скандал и расследование», которые рождает вот этот тред в твиттере

https://twitter.com/sandofsky/status/1002637340291018754 (мол сам фб перестал использовать RN в основном приложении)

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

Apple признала серьезные проблемы с софтом. Анонсировали, что новая версия iOS и macOS посвящены исправлению ошибок и ускорению работы. Обещают, что программы начнут открываться на 30% быстрее даже на старых айфонах! Новый CPU scheduler и много других подкапотных улучшений. Может быть, даже поиск в настройках заработает!

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

У Apple уже есть опыт «релизов исправлений», macOS 10.6 Snow Leopard была «версией без единой новой фичи».

В этот раз они не смогли пойти на такой смелый шаг и впихнули новую ИИ-фичу: операционная система будет проактивно давать весь необходимый контекст о наших жизнях нейросети, встроенной в Сири. Честно говоря, все это нам уже обещали в Apple Intelligence год назад, но видимо в этот раз точно :)

Ах да, в Евросоюзе и в Китае вся эта история с нейросетями работать не будет. И жалобам на антимонопольное законодательство Евросоюза Apple посвятила целую отдельную страницу, а про ограничения в Китае написала буквально в самом конце лендинга, мелкой сноской. Потому что не нужно путать, это другое.

P. S. Ещё обещают доделать и дочинить родительский контроль на айфонах. Как родитель подростка: не верю, но все равно надеюсь!

Красивый танец в приложении настроек iOS.

💃 Поисковая строка появляется только если потянуть список вниз, причём это работает даже из низа списка сильным движением.
💃 Крупный заголовок уступает место мелкому по центру по мере скролла вниз.
💃 Медленный скролл залипает к «красивому», «переходному» состоянию, быстрый - проскакивает
💃 Слово «🔍 поиск» появляется и исчезает по мере раскрытия и схлопывания поисковой строки.

Одна вещь, которую я не могу понять: почему настройки в iOS называются Settings, а в macOS -
Preferences. 🤷

На этой неделе Apple провела конференцию для разработчиков, где анонсировала обновления своих операционных систем. Это была самая интересная презентация Apple за многие годы.

Многие потешаются над тем, что в новой версии iOS иконки можно будет поставить в любое место на рабочем столе, а ещё их можно покрасить в свой цвет — мол, «в Андроиде всю жизнь так».

На самом деле, все анонсы бьются на три категории:

1. 🛠️ Обновления и улучшения встроенных программ, «иконки» отсюда и они — далеко не самое интересное;

2. 🤪 Хайповый AI «для всех даром и пусть никто не уйдет обиженным»;

3. ✨ AI-магия.

🛠️ Из первой категории:

1. Возможность отправлять и получать смски и iMessage через спутники! Бесплатно! Прямо в лесу или в горах и посреди океана. 📡 Техническая возможность общения со спутником появилась в айфонах начиная с 14го, но раньше Apple использовал её только для связи со спасателями; теперь вот можно будет с семьей и друзьями переписываться.

2. Продвинутый калькулятор везде во всех текстовых полях. Можно прямо в сообщениях написать 273/3 EUR in TRY и он подскажет, что это 3 тысячи турецких лир. Это прямая калька с гениального приложения Soulver, и оно недавно вышло для айфонов — горячо рекомендую.

3. Десятки приятных мелочей — начиная с отслеживания сложности тренировки в «здоровье» и настроения в «дневнике» и заканчивая по полноценным приложением для хранения паролей!

🤪 Во вторых, Apple встроила большинство популярных AI-инструментов в айфоны и макбуки. Они будут работать быстро, даже без интернета и абсолютно бесплатно.

1. Автоматическое написание ответов на письма и сообщения.

2. Изменение тона текста — можно выделить любой написанный текст и «сделать поофициальнее» или «сократить».

3. Генерация картинок (и создание своих эмоджи) по тексту — буквально «сделай мне картинку собеседника, как будто он обнимается с крокодилом» и редактирование изображений — типа выделяешь людей на фотографии и одной кнопкой оставляешь только тех, кого хочешь.

Если вы продвинутый пользователь и следите за AI-сценой — то вас не удивишь, но обычные люди откроют для себя много нового. Ждем открыточек с красивыми котиками и цветами, сгенерированных искусственным интеллектом под чутким руководством бабушек! А ещё, теперь вместо душевных коротких строк мы получим тонны бездушного, грамматически выверенного текста. :(

✨ Ну и наконец, AI-магия.

Во первых, Apple обещает нормального ИИ-ассистента. Пример на презентации следующий: утром у тебя рабочая встреча, а вечером — выступление дочки. Коллега спрашивает в письме, можно ли подвинуть встречу на попозже. Ты спрашиваешь у Сири, успеешь ли к дочке на выступление. Сири находит сообщение, в котором дочка писала про выступление, определяет, сколько ехать до аудитории, отвечает утвердительно первому собеседнику и создает оба события в календаре. В общем, то, что нам обещают всякие Rabbit AI и Humane AI — то, что ни у кого до сих пор не получалось. Фильм «Она».

Во вторых, техническая реализация AI. Тут три аспекта:

1. До сих пор подавляющее большинство прикольных моделей работают на мощных серверах в дата-центрах. Apple утверждает, что они смогли ужать модели так, чтобы они помещались на айфоне, не сжирали батарейку и при этом имели приличное качество.

2. Вся информация в телефоне становится доступна моделям в виде контекста. Сообщения, письма, фотографии, контакты, история звонков, календарь. Всё это происходит локально на телефоне и не отправляется в облако.

3. В случае, если без мощной модели на сервере не обойтись — они отправляют запрос на свои собственные серверы, которые настроены так, чтобы не сохранять вообще ничего (ничего не хранишь — ничего не украдут). Они разработали специальную операционную систему для этих серверов, на основе модели безопасности iOS и опубликуют её образ для аудита независимыми исследователями. Ах да, перед отправкой данных в интернет, телефон криптографически проверяет систему на сервере.

В общем, я ожидал анонса «мы заменили Siri на ChatGPT, так что теперь она тупит поменьше», но Apple в очередной раз сумели удивить. Браво! (ChatGPT теперь на самом деле можно вызвать из сири напрямую, но не сказал бы, что это особая интеграция)

Бета-версия уже доступна для скачивания разработчикам. Я не рекомендую ставить её на основной телефон, лучше дождать более спелых бет. Основной релиз будет осенью. Очень ждем.

Два видео-первоисточника: Keynote и 5-минутная официальная выжимка Platforms State of the Union. Все анонсы, включая сессии для разработчиков (XCode кажется наступает на пятки IDEA) — как обычно на официальном сайте.

В телеграме для iOS можно автоматически промотать список чатов к непрочитанным чатам! Просто зажмите и держите нажатой иконку чатов в нижнем tab bar.

В iOS Safari есть куча таких скрытых функций: долгий тап на кнопку «вкладок» вызывает меню, где можно закрыть все вкладки разом, а долгий тап на «закладки» - предложение заложить эту вкладку или все открытые вкладки. Долгий тап на кнопку «+» открытия вкладки позволяет восстановить недавно закрытые вкладки.

Хорошо ли иметь скрытые интерфейсные решения или нет — тема бесконечного UX-холивара. Одно я знаю точно - текущее решение эпл записать все эти секретики в бесплатную электронную книгу в iBooks - стремное. Вот бы опцию «покажи мне секретики», которая бы включала «интерактивный туториал» по всем классным шорткатам. Мечты!

Apple улучшил механизм установки бета-билдов iOS для разработчиков.

Скачиваешь маленький файл профиля из Member Center и всё, обновление приезжает как обычно, через OTA. Там уже Golden Master — тот же код, что пойдет в публичный запуск, просто готовый заранее, для разработчиков.

Никакого тебе шаманства с iTunes, классно.

Если вы не компьютерщик — не рекомендую пока обновляться, в AppStore половина программ в большей или меньшей степени сломаны, все спешно клепают обновления.

Ещё Apple пытается что-то сделать с безумием уведомлений: отложенные уведомления, когда они собираются и показываются пачкой в конце дня, а не каждые 5 минут пикают; режимы «работы», «отдыха» и «сна» (привет, профили в телефонах Нокиа) и тд и тп.

Но это все мимо: я пару месяцев назад отключил почти все пуш-уведомления и ещё ни разу не пожалел. Рекомендую.

Открыл для себя две классные функции в iOS благодаря стандартной программе «советы» в айфоне. Я думал, что она только для странных типов, которым нужна инструкция ко смартфону 🙈

Начиная с iOS 13 разным программам можно задавать разные языки интерфейса! Делается это в стандартных настройках. Наконец-то можно пользоваться Яндекс.Такси и Яндекс.Картами на русском! На системные приложения это не распространяется, так что названия песен Земфиры придётся продолжать читать в переводе 🙁