Почему все качают тему зумеров, уходящих на обед, и не возвращающихся?
А как на счет миллениалов, тех выгоревших сеньеров, которые молча ливают по середине собеса, когда их заставляют что-то вспомнить или написать, а не сразу предлагают миллион?
🧐
А как на счет миллениалов, тех выгоревших сеньеров, которые молча ливают по середине собеса, когда их заставляют что-то вспомнить или написать, а не сразу предлагают миллион?
Please open Telegram to view this post
VIEW IN TELEGRAM
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 Дмитрия Коха:
Ссылки:
- Блог
Пока все карты раскрывать не буду, но история о том, как написать Яндекс карты с оплатой транспорта и заказом такси тремя с половиной 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.: Яндекс карты, верните мнестену список рекомендаций, хорош а-б-тестить!
Готов принять ненативную кроссплатформу, нефункциональный натив, но webview - бррр-грр (непонятные звуки проф деформации)
P.S.: Яндекс карты, верните мне
💯11🎃4🤗1
We did it в арабском проде 🐫
Что мы технически прошли:
- Сборка нескольких приложений с разными bundleId через CI из одного проекта, спасибо tuist
- Навигация полностью на route-composer (никакой state навигации, но нам и не надо)
- SwiftUI через UIHostingController (одним словом - боль)
Возможно, расскажем об этом когда-нибудь, либо никогда. 50 на 50
Ссылка
Что мы технически прошли:
- Сборка нескольких приложений с разными bundleId через CI из одного проекта, спасибо tuist
- Навигация полностью на route-composer (никакой state навигации, но нам и не надо)
- SwiftUI через UIHostingController (одним словом - боль)
Возможно, расскажем об этом когда-нибудь, либо никогда. 50 на 50
Ссылка
App Store
Dhamer | ضامر
تطبيق واحد يجمع جميع وسائل النقل العام في مكة المكرمة، لتوفير تجربة تنقل سلسة للسكان والزوار لأداء المناسك والتنقل اليومي براحة. ويتيح الوصول إلى جداول الحافلات وحجز سيارات الأجرة.
المميزات الرئيسية:
- الوصول إلى وسائل النقل العامة: عرض جداول الحافلات.…
المميزات الرئيسية:
- الوصول إلى وسائل النقل العامة: عرض جداول الحافلات.…
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...
Так уж вышло, что в нашем небольшом 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
docs.tuist.dev
Migrate an Xcode project · Migrate · Adoption · Projects · Features · Guides · Tuist
Learn how to migrate an Xcode project to a Tuist project.
🔥14❤2
Самые старые TODO-шки
Как часто вы перекладываете задачи на будущее? Как часто делаете это в коде?
Да, такое случается. Да, это не всегда "рэд флаг".
Главная проблема — это потеря фокуса на этих задачах в workflow команды в Jire или аналогах. Со временем в проекте копится целый «кладбищенский список» комментариев, о которых никто уже не помнит — кто их добавил, какой приоритет, в чем проблема, и какое может быть решение. По итогу, TODO-шки и FIXME-ки превращаются в незаметный археологический тех. долг.
Получается забавная ситуация... Комментарий есть, но реальной пользы никакой — только лишний шум и ощущение неустроенности в проекте.
Более мы не допускаем задачи-комменты: "Либо фикси сейчас, либо заводим задачу."
Вот вам самые забавные TODO-шки с разных проектов, самой старой стукнуло 9 лет, а от других появляется улыбка :)
Я оставил TODO, позже вернусь, доделаю, апрувните
Надо срочно в релиз!
Cейчас не лагает, потом придумаем по другому.
Как часто вы перекладываете задачи на будущее? Как часто делаете это в коде?
Да, такое случается. Да, это не всегда "рэд флаг".
Главная проблема — это потеря фокуса на этих задачах в workflow команды в Jire или аналогах. Со временем в проекте копится целый «кладбищенский список» комментариев, о которых никто уже не помнит — кто их добавил, какой приоритет, в чем проблема, и какое может быть решение. По итогу, TODO-шки и FIXME-ки превращаются в незаметный археологический тех. долг.
Получается забавная ситуация... Комментарий есть, но реальной пользы никакой — только лишний шум и ощущение неустроенности в проекте.
Более мы не допускаем задачи-комменты: "Либо фикси сейчас, либо заводим задачу."
Вот вам самые забавные TODO-шки с разных проектов, самой старой стукнуло 9 лет, а от других появляется улыбка :)
20❤8🔥5 4👏3💯1
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 пока никуда :)
П.С.
- Я намеренно не касаюсь здесь архитектуры приложения, хотя интерфейс напрямую влияет и на подкапотные части — так или иначе, от жизненного цикла приложения и экранов всё равно никуда не деться.
- Я намеренно не касаюсь коммерческой части разработки, в рамках которой прибыль > код. На канале я/мы растем, как кодеры :)
В последнее время всё чаще можно услышать, что полноценная работа с 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 пока никуда :)
П.С.
- Я намеренно не касаюсь здесь архитектуры приложения, хотя интерфейс напрямую влияет и на подкапотные части — так или иначе, от жизненного цикла приложения и экранов всё равно никуда не деться.
- Я намеренно не касаюсь коммерческой части разработки, в рамках которой прибыль > код. На канале я/мы растем, как кодеры :)
Когда думаешь, что написал код с лучшими O(n), вспомни про сына маминой подруги, который всё решил за 5 строчек с рекурсией и с внешней переменной.
Задача с LeetCode
P.S. Оба решения бьют 100% по runtime
Задача с LeetCode
P.S. Оба решения бьют 100% по runtime
🗿7💯2🌚1