TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #3626 2.91K
#заметка дня

Быть в отпуске, который никак заранее не планировал, а в конце которого — полная смена работы (и даже отчасти деятельности: из продукта в дизайн-систему) — штука довольно тяжёлая.

С одной стороны, на работу ходить не надо. С другой — нужно как-то себя развлекать!

Зато, наконец, появилось время добить пульт на Flutter и запустить его на телефоне.

Не без проблем, конечно. И с Android, и с iOS.

Если с Android всё более-менее понятно — старая конфигурация, мелкие баги, — то с iOS…

Симулятор против реальности

iOS на симуляторе и iOS на реальном устройстве — это две совершенно разные iOS.

Нам никто не обещал полноценной эмуляции. Да, симулятор упрощает вход в разработку. Но почему бы не предупреждать разработчиков, что потом всё пойдёт не так?

Хотя, признаюсь, в половине случаев виноват сам.

Например, приложение падало при поиске телевизоров, который у меня реализован через SSDP (Service Discovery Protocol). Это работает через мультикаст (multicast) — а это уже отдельный мир.

Оказывается:

- Мультикаст — это отдельное разрешение, scope.
- Его нужно объявлять в конфигураци приложения.
- Потом — проходить модерацию в App Store.

Более того, нужно заранее уведомить Apple и получить соответствующий сертификат ещё до начала разработки.

И всё это — только если у тебя есть разработческий аккаунт за $99 в год. Без него — даже не пробуй.

А симулятор? Он позволяет всё. Мультикаст работает без проблем. Никаких предупреждений. Всё как по маслу — пока не ставишь приложение на свой собственный iPhone.

Решения

Окей. Я решил:

- Оставлю поиск включённых телевизоров на более дружелюбных ОС.
- Добавлю fallback — диалог ручного ввода IP-адреса телевизора.

Это помогло.

Но тут всплыла новая проблема — Wake-On-LAN не работает.

Хотя он должен работать даже по Wi-Fi: ваши «умные» устройства де-факто никогда не выключаются. Но я забыл, что у телефона две сети — Wi-Fi и сотовая. А вещать нужно в Wi-Fi.

Когда я начал фильтровать интерфейсы по ключевым словам (например, en на iOS/macOS или wlan на Android/Linux), всё наконец заработало.

SSDP без мультикаста?

И тут меня осенило: а можно ли использовать SSDP без мультикаста — через broadcast?

Ответ — да! Достаточно:

- Изменить IP шлюза.
- Отключить присоединение к мультикаст-группе.

Поиск устройств заработал. Никаких разрешений от Apple не нужно. Всё прекрасно!

Даже пока не надо тратить сотку...

Хотя ручное добавление по IP я всё равно оставил — на всякий случай.

Кстати, на эмуляторе Android ни SSDP, ни WebSockets — пока не работают... Вот вам и минус мультиплатформенной разработки — приходится разбираться в нюансах вообще всего.

Зато на iOS, macOS, Linux и Windows теперь всё просто прекрасно.

#flutter #ios
  • 👍 20
  • ❤ 5
  • 🫡 3
More from @htmlshit
  1. Oct 6, 2026#ссылка дня Недавно в нашем чате был жаркий спор на тему доступности. Мол, нормально делай…
  2. Oct 5, 2026Стилизация тултипов Два года назад я писал о проблеме с title и о принятом рабочей группой…
  3. Oct 5, 2026О господи, да неужели я при жизни увижу стилизацию title?!!
  4. Oct 4, 2026#инструмент дня Промо-видео на Rust. Что? Да! Давно знал об FFrames — фреймворке, в которо…
  5. Oct 2, 2026#ссылка дня В комментариях к посту про моргающее меню а-ля macOS HIG всплыл вопрос: а есть…
  6. Oct 1, 2026⚡️ JavaScript, архитектура и ИИ: о чем будут говорить на юбилейной HolyJS 2026 Autumn 📆 2…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →