Лента постов канала iOS Dev (@iosdev) https://t.me/iosdev 🍏Канал об iOS-разработке, необычных подходах и решениях. 👨‍💻Автор: Виктор Грушевский (@Viktorianec) Темы: ⭐️ Подготовка к собеседованиям. ⭐️ Архитектуры и алгоритмы. ⭐️ Код. Много кода. ⚒️База знаний: https://boosty.to/ios_dev #ios #mobile #swift ru https://linkbaza.com/catalog/-1001181264642 Fri, 22 Aug 2025 15:26:49 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Thu, 21 Aug 2025 09:30:31 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Wed, 20 Aug 2025 15:56:12 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Tue, 19 Aug 2025 12:35:59 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Thu, 14 Aug 2025 15:20:40 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Thu, 14 Aug 2025 12:28:50 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Wed, 13 Aug 2025 14:01:34 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Tue, 12 Aug 2025 15:21:35 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Mon, 11 Aug 2025 14:12:42 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Fri, 08 Aug 2025 15:02:53 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Fri, 08 Aug 2025 10:12:24 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Wed, 06 Aug 2025 12:07:36 +0300
Правильно поставленный вопрос

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

Скорее всего в таком случае у вас есть отдел поддержки (или просто фидбэк пользователей в тестфлайте/других системах), но и его может быть недостаточно.

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

Мы вместе с саппортом пытались повторить сценарий юзера, по которому он шёл, логин-проверка актуального стейта данных и подгрузка диффов, всё вроде чётко. Но что-то мне не давало покоя, и мы задали контрольный вопрос - а где эта ситуация происходила?

Ответ был простым: в самолёте. Человек на высоте в 10 км решил проверить, что не так, и получил очевидное поведение. Тогда не везде был wi-fi, да и сейчас мягко говоря не все авиакомпании предоставляют такую опцию, например, во многих самолётах british airways точки доступа может не быть вовсе (если речь не о межконтинентальных перелётах).

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

А ещё есть бесчисленные истории, когда жаловались на скорость работы приложения в кейсах, когда было меньше 20% зарядки и включён режим энергосбережения (тут даже объяснять не надо, что и почему так, надеюсь).

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

Я очень давно играю в разные квизы и интеллектуальные игры (тут можно пошутить про аббревиатуру ИИ), и поэтому создал себе пару приложений для тренировок, и даже там всегда надо помнить о фразе:

😉 Правильно поставленный вопрос - уже половина решения.

Были ли у вас в разработке ситуации, когда вы сталкивались с необычными ситуациями? Поделитесь ими, этим вы поможете коллегам не наступить на те же грабли.

😃 iOS Dev
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Tue, 05 Aug 2025 12:36:46 +0300
FoundationModels Framework и пример создания приложения для внешних LLM-провайдеров

В Xcode 26 Beta 4 доступна новая опция GeneratedContent с json для передачи ответов от внешних LLM-провайдеров, таких как OpenAI, Anthropic, Gemini и многих других.

И хотя этот фреймворк позволяет нам использовать мощные возможности ИИ на устройствах, но с ограничениями реальной модели (не так много поддерживаемых языков, да и окно контекста недостаточно большое) ее может не хватать.

Многие приложения всё также будут продолжать полагаться на внешних поставщиков LLM.

📖 В развернутом материале можно чекнуть, как создать такое приложение.

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


🛠 А вот здесь можно посмотреть на код проекта на GitHub (нужен Xcode Beta 4 и новая макось + iOS).

➡️ В этом посте можно ещё раз взглянуть на набор советов по работе (от управляемой генерации до сохранения ответов).

😃 iOS Dev
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Mon, 04 Aug 2025 17:40:50 +0300
Усложнение разработки

Сегодня, решая очередную задачу, связанную с саппортом новых фич для проекта, задумался вот о чём.

Хотя у нас и появляется больше возможностей и новых API и какие-то вещи становятся проще, например, в верстке - это довольно обманчиво.

Язык усложняется, Swift 6 и миграция проекта может стать головной болью любого разработчика.

Только вдумайтесь, что у нас появилось за последнее время: и таски, и акторы, и preconcurrency, я уже не говорю про isolation domains и boundaries (кстати, разбор изоляции есть здесь).

И хотя в разработку многие уже активно вводят ИИ, а на конфе от Яндекса будет даже отдельное соревнование - это не всегда полезное решение.

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

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

На поддержке. На обновлении логики. На рефакторинге.

У вас, безусловно, собственное мнение на этот счёт - и я не претендую на истину.

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

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

Какие-то решения станут цениться меньше, но способность поддерживать крупные проекты и понимать причину условного краша у 0.0005% будет на вес золота.

Стоит инвестировать не только в AI-тулзы, но и в самих себя.

Ваши знания сослужат вам хорошую службу.

Даже сейчас.

😃 iOS Dev
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Fri, 01 Aug 2025 11:42:18 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Thu, 31 Jul 2025 15:49:29 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Wed, 30 Jul 2025 16:03:14 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Wed, 30 Jul 2025 10:35:32 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Tue, 29 Jul 2025 11:05:02 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Mon, 28 Jul 2025 12:49:54 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001181264642 Sat, 26 Jul 2025 10:40:22 +0300
Переключение контекста

В погоне за изучением новых технологий, фреймворков или даже просто адаптации к существующим реалиям иногда кажется, что ни на что не хватает времени. Реклама рассказывает, как быстро можно освоить технологию за месяц (а некоторые, что за неделю).

Более того, даже в мифе о правиле 10 000 часов акцент сводится к тому, что потратив огромное количество времени, можно стать профессионалом. Но это совсем не так. Лёгкий пример: когда вы получили права и проездили с 5-10 лет за рулём, вряд ли можно получить суперлицензию и отправиться в Абу Даби соревноваться со всем пелотоном F1.

Важно не количество затраченного времени на ту или иную сферу деятельности, а качество этих задач.

И даже при переключении контекста есть занятные факты. Netflix не ставит целью рассказать нам законченную историю, задача как можно дольше удержать зрителя у экрана. Как там говорится, ещё одна серия и всё?

Или, например, в видеоиграх, завязанных на онлайне — когда нам кажется, что повышение скилла позволит резко закончить с режимом мультиплеера, это совсем не так.

В той же EA и её продуктах (FIFA, NFS и прочие) - давно используется Dynamic Difficulty Adjustment, от которого компания пыталась откреститься, но с переменным успехом. Вкратце, игрокам всегда будет казаться, что они балансируют на грани - своеобразный крючок, который позволит ещё немного задержать внимание. В остальных же компаниях, хоть Valve или кто угодно другой - матчмейкинг реализован со схожей целью.

При этом я постарался не упоминать и совершенно привычные нам вещи вроде бесконечного скролла.

И несмотря на все вышесказанное, мы всё-таки живём в замечательный век. У нас множество путей и опций для использования тех самых свободных поинтов времени.

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

Но он невероятно важен.

😃 iOS Dev
Подробнее
]]>