iOS & ISS | Dev Blog
151 subscribers
78 photos
33 videos
1 file
64 links
Блог iOS команды компании ISS.
Наша работа:
- приложение «Московский транспорт»
- приложение «ДОБРО.РФ»
- приложение «Онлайнинспекция.рф»
- приложение «Паркоматика»
- приложенеие «‎Dhamer | ضامر»

Для связи: @Savva_Shuliatev
Download Telegram
Почему все качают тему зумеров, уходящих на обед, и не возвращающихся?

А как на счет миллениалов, тех выгоревших сеньеров, которые молча ливают по середине собеса, когда их заставляют что-то вспомнить или написать, а не сразу предлагают миллион?

🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
15😁3🤡1
Пост посвящается проджект менеджерам:

Продолжаем работать 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11🔥1🌚1
У нас в ISS вовсю кипит работа над новым большим проектом

Пока все карты раскрывать не буду, но история о том, как написать Яндекс карты с оплатой транспорта и заказом такси тремя с половиной iOS-серами за 5 месяцев и не поседеть. И конечно, сделать лучшее UI/UX/Performance/Business приложение на пока_секрет рынок.

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

А пока, подписывайтесь на блог лучшего в России фотографа-натуралиста, для души CEO & Founder ISS Дмитрия Коха:

Я снимаю и на земле, и под водой, бывал там, куда редко ступает человек, и видел природу в её самом чистом и необузданном виде. Теперь попробую передать эту красоту и вам — через кадры, истории и личный опыт.


Ссылки:
- Блог
🔥15👍3🥰3
Во всех своих проектах на дизайн кладем Human User Interface.
🤣9😁4🥴4🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Зачем натив, есть же webview

Готов принять ненативную кроссплатформу, нефункциональный натив, но webview - бррр-грр (непонятные звуки проф деформации)

P.S.: Яндекс карты, верните мне стену список рекомендаций, хорош а-б-тестить!
💯11🎃4🤗1
We did it в арабском проде 🐫

Что мы технически прошли:

- Сборка нескольких приложений с разными bundleId через CI из одного проекта, спасибо tuist
- Навигация полностью на route-composer (никакой state навигации, но нам и не надо)
- SwiftUI через UIHostingController (одним словом - боль)

Возможно, расскажем об этом когда-нибудь, либо никогда. 50 на 50

Ссылка
202🎉13🔥8👍4
Как перейти на Tuist

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

О плюсах Tuist многие уже наслышаны, а следующий вопрос, который возникает после «зачем он вообще нужен», — это «как перейти на Tuist».

Если кратко, вот официальная документация по миграции: Migrate an Xcode project.

Теперь по порядку:

1. Составляем базовый манифест Project.swift.
2. Надеемся на предоставляемый Tuist-ом набор утилит для выгрузки текущих настроек проекта и отдельных таргетов и генерируем файл xcconfig, который и будем использовать для создания проекта.
3. В Project.swift описываем все схемы основного проекта.
4. Переносим таргеты, начиная с самых базовых, корневых или с любых других, которые вам нравятся, ибо у самураев есть только путь, который (скорее всего) будет долгим.

Важно понимать, что все настройки проекта, которые годами врастали в xcodeproj, нужно будет перенести в конфигурацию Tuist-а. При этом желательно ничего не потерять по пути. Как сказано в доке: "Насколько утомительным будет этот процесс, зависит от сложности ваших проектов".

Лично моя боль — Target Membership (ловим файлы по всем таргетам, бррр)

Полезные ссылки:
- Tuist Docs Migrate an Xcode project
- Хабр Tuist: добавляем генерацию проекта в текущее приложение
- Migrating from CocoaPods to Tuist at Playtomic
- Неплохой мини-гайд с фб и крашлитикой
- YouTube App Dev Live Stream — Migrating an iOS App to Tuist

P.S. В ближайшее время поделюсь историей, как и зачем мы создаем несколько приложений из одного туист-проекта, передавая конфигурацию с бандлами, плистами и ресурсами извне, coming soon...

tuist migration --help
🔥142
Самые старые TODO-шки

Я оставил TODO, позже вернусь, доделаю, апрувните

Надо срочно в релиз!

Cейчас не лагает, потом придумаем по другому.


Как часто вы перекладываете задачи на будущее? Как часто делаете это в коде?
Да, такое случается. Да, это не всегда "рэд флаг".

Главная проблема — это потеря фокуса на этих задачах в workflow команды в Jire или аналогах. Со временем в проекте копится целый «кладбищенский список» комментариев, о которых никто уже не помнит — кто их добавил, какой приоритет, в чем проблема, и какое может быть решение. По итогу, TODO-шки и FIXME-ки превращаются в незаметный археологический тех. долг.

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

Более мы не допускаем задачи-комменты: "Либо фикси сейчас, либо заводим задачу."

Вот вам самые забавные TODO-шки с разных проектов, самой старой стукнуло 9 лет, а от других появляется улыбка :)
208🔥54👏3💯1
Мотивацию надо поднимать!
😁10💯3🤣2
Media is too big
VIEW IN TELEGRAM
UI разработка не востребована

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

Отдельно вспоминаются коллеги, которые и вовсе уверены: UIKit — легаси, а начиная с iOS 19 вообще же все depreceted? Ну и что, что скролл где-то подлагивает? Вы что, ещё на UIKit пишете?!

Спорить с такими сложно, да и бесполезно. Действительно, есть те, кто перекладывает JSON-ы для бдуя, а кто-то успешно поддерживает SwiftUI-приложение и не знает особых хлопот.

Для меня же создание сложного и красивого UI — это настоящая дофаминовая бомба

Какие критерии хорошего UI?
- Плавные переходы состояний.
- «Физическая» природа анимаций.
- Приоритет жестов над тапами.
- Простота интеграции новых экранов и элементов.
- Высокая степень кастомизации.
- Высокая степень оптимизации и низкое энергопотребление.

Что ж, мне остается радоваться, что находятся проекты (спасибо iss), в которых разработчику сталкивается с вызовом, сделать хорошо, сделать стильно, сделать удобно.

Что крутого из UI мы реализовали в нашем последнем проекте:
- Лучший BottomSheet, еще и в Open Source.
- Навигационный стек поверх карты (child UINavigationController с пробросом жестов ниже — попробуйте на досуге).
- 9 видов transitions между экранами (3 push, 3 pop, 3 swipe pop).
- Pop swipe с любой части экрана (как в Telegram): погружаемся в UIGestureRecognizerDelegate и hitTest, а там пересекающиеся PanGestures, UIScrollView, так еще и нелинейная анимация в UIPercentDrivenInteractiveTransition.

При этом практически весь контент внутри bottom sheet-ов реализован на SwiftUI, и у этого тоже свои «приколы»: мы ломали SwiftUI как могли (для ознакомления вот бамп, бамп).

Для меня iOS-разработка — это в первую очередь про UI. Крутая архитектура, DI, многомодульность, с плохим UI не имеет смысла. И да, без UIKit пока никуда :)

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

- Я намеренно не касаюсь коммерческой части разработки, в рамках которой прибыль > код. На канале я/мы растем, как кодеры :)
15🔥9❤‍🔥4🤩2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
П.С. SwiftUI вышел в 2019
🐳6🗿4🔥3😁2🤡2
Когда думаешь, что написал код с лучшими O(n), вспомни про сына маминой подруги, который всё решил за 5 строчек с рекурсией и с внешней переменной.

Задача с LeetCode
P.S. Оба решения бьют 100% по runtime
🗿7💯2🌚1
😁6🤣32💩1🗿1
WWDC 2026
Новый стеклянный дизайн!
🌚5💊4😍1