This media is not supported in your browser
VIEW IN TELEGRAM
Кастомный UI
Хочется отметить, что я против выпендрежного UI, когда все крутится, вертится, выползает, сворачивается и так далее, по нескольким причинам:
- Не нужно пользователю.
- Дорого и времязатратно в разработке.
- Требует высоких требований к дизайн-системе.
Однако, также бывает, что:
- Дизайнер создаст красивый дизайн, вписывающийся в дизайн-систему.
- Разработчик быстро реализует его.
- Пользователю понравится такой дизайн.
Как по мне, самый оптимальный вариант - это брать готовые решения с реализацией. И вдохновиться можно, и быстро запилить.
Вот парочка популярных ютуб-каналов:
https://www.youtube.com/@Kavsoft
https://www.youtube.com/@jot.commit
Хочется отметить, что я против выпендрежного UI, когда все крутится, вертится, выползает, сворачивается и так далее, по нескольким причинам:
- Не нужно пользователю.
- Дорого и времязатратно в разработке.
- Требует высоких требований к дизайн-системе.
Однако, также бывает, что:
- Дизайнер создаст красивый дизайн, вписывающийся в дизайн-систему.
- Разработчик быстро реализует его.
- Пользователю понравится такой дизайн.
Как по мне, самый оптимальный вариант - это брать готовые решения с реализацией. И вдохновиться можно, и быстро запилить.
Вот парочка популярных ютуб-каналов:
https://www.youtube.com/@Kavsoft
https://www.youtube.com/@jot.commit
🔥11🗿2❤🔥1👨💻1
Статистика 2023 года по написанию тестов
Рад, что в ISS мы тоже внедрили практику написания Unit и UI тестов в наших приложениях!
Как-нибудь расскажем, как у нас это получилось, и с какими трудностями мы столкнулись.
Поэтому, подписывайтесь, чтобы не пропустить!
А вы пишете Unit или UI тесты?
Оригинал: https://www.jetbrains.com/lp/devecosystem-2023/swift-objc/
Рад, что в ISS мы тоже внедрили практику написания Unit и UI тестов в наших приложениях!
А вы пишете Unit или UI тесты?
Оригинал: https://www.jetbrains.com/lp/devecosystem-2023/swift-objc/
❤5🔥4👍3⚡2👏1
Вышел Tuist 4
Что нового:
1. Tuist Cloud - платное серверное расширение с эксклюзивными функции для оптимизации рабочих процессов, таких как тестирование и создание проектов.
2. Новый дефолтный инсталлер Mise.
3. Изменение в Dependencies. Новое API, и, кажется, больше без поддержки Carthage.
4. Документация в Swift DocC.
5. Улучшения API описания проекта.
6.Совершенно новый логотип .
И как раз сегодня мы создаем новый проект для банка! Let's Go!
News + Github
Что нового:
1. Tuist Cloud - платное серверное расширение с эксклюзивными функции для оптимизации рабочих процессов, таких как тестирование и создание проектов.
2. Новый дефолтный инсталлер Mise.
3. Изменение в Dependencies. Новое API, и, кажется, больше без поддержки Carthage.
4. Документация в Swift DocC.
5. Улучшения API описания проекта.
6.
Обещают оставить Tuist бесплатным в целом, и добавлять новые функции в бесплатную версию.
И как раз сегодня мы создаем новый проект для банка! Let's Go!
News + Github
🔥11👍3❤1👏1🍌1
Кажется, мы все дальше от концепции «one-hand».
Экраны все больше, и не надо рассказывать о «Reachability», которое чаще корявит приложение (привет я.музыке), или же пользователь об этом и не знает.
Однако, наша борьба не закончена!
Пока остается хотя бы один разработчик, требующий дизайн и функционал для одной руки. Хотя бы для базовых флоу в приложении.
Ссыль на статью индуса;
Ссыль на медиум;
Ссыль на хабр.
Экраны все больше, и не надо рассказывать о «Reachability», которое чаще корявит приложение (привет я.музыке), или же пользователь об этом и не знает.
Однако, наша борьба не закончена!
Пока остается хотя бы один разработчик, требующий дизайн и функционал для одной руки. Хотя бы для базовых флоу в приложении.
Ссыль на статью индуса;
Ссыль на медиум;
Ссыль на хабр.
🔥7🤔3🤨2✍1🎉1
Разработческая культура
Разработческая культура - это набор ценностей, практик и норм, которые присущи командам разработчиков программного обеспечения. Она определяет способы работы и взаимодействия внутри разработческой команды, а также отношение к процессу разработки и качеству выполняемой работы.
Разработческая культура может включать в себя следующие аспекты:
1. Сотрудничество и командная работа: разработчики работают в команде, обмениваясь идеями, знаниями и опытом, чтобы достичь общих целей проекта.
2. Инновационность и творчество: разработчики поощряются вносить новые идеи, экспериментировать и искать нестандартные решения задач.
3. Качество и профессионализм: разработчики стремятся к созданию высококачественного и надежного программного обеспечения, следуют лучшим практикам разработки и постоянно совершенствуют свои навыки.
4. Открытость и обмен знаниями: разработчики делятся своими знаниями и опытом с коллегами, учатся друг у друга и поддерживают открытую коммуникацию внутри команды.
5. Автоматизация и оптимизация: разработчики стремятся автоматизировать рутинные задачи и оптимизировать процессы разработки, чтобы повысить эффективность своей работы.
6. Постоянное обучение и саморазвитие: разработчики постоянно изучают новые технологии и инструменты, следят за последними трендами в отрасли и развивают свои профессиональные навыки.
И от себя:
7. Чистота и бережность: я всегда вытираю стол перед работой, специальной тряпочкой со средством чищу экран, продуваю пневматическим очистителем клавиатуру от пыли.
Возможно, это шиза... Но работается лучше.
Разработческая культура - это набор ценностей, практик и норм, которые присущи командам разработчиков программного обеспечения. Она определяет способы работы и взаимодействия внутри разработческой команды, а также отношение к процессу разработки и качеству выполняемой работы.
Разработческая культура может включать в себя следующие аспекты:
1. Сотрудничество и командная работа: разработчики работают в команде, обмениваясь идеями, знаниями и опытом, чтобы достичь общих целей проекта.
2. Инновационность и творчество: разработчики поощряются вносить новые идеи, экспериментировать и искать нестандартные решения задач.
3. Качество и профессионализм: разработчики стремятся к созданию высококачественного и надежного программного обеспечения, следуют лучшим практикам разработки и постоянно совершенствуют свои навыки.
4. Открытость и обмен знаниями: разработчики делятся своими знаниями и опытом с коллегами, учатся друг у друга и поддерживают открытую коммуникацию внутри команды.
5. Автоматизация и оптимизация: разработчики стремятся автоматизировать рутинные задачи и оптимизировать процессы разработки, чтобы повысить эффективность своей работы.
6. Постоянное обучение и саморазвитие: разработчики постоянно изучают новые технологии и инструменты, следят за последними трендами в отрасли и развивают свои профессиональные навыки.
И от себя:
7. Чистота и бережность: я всегда вытираю стол перед работой, специальной тряпочкой со средством чищу экран, продуваю пневматическим очистителем клавиатуру от пыли.
Возможно, это шиза... Но работается лучше.
🔥9🗿5❤🔥2🎉1🍌1
Про плюсы вы и так слышали, я расскажу о минусах:
1) Я в них выгляжу кринжово.
2) Очки тяжелые. Мне казалось, что для меня - это мелочь. Но после 20 минут желание сходить в кой-то веки на массаж. А еще горячий душ. И еще раз массаж.
В общем, тяжеловато.
3) Apple Vision Pro - это очки виртуальной реальности, а не дополненной.
Поэтому все окружение - это картинка с камер, и она расплывается.
Для людей с плохим зрением - самое то, я же хотел их снять как можно скорее и посмотреть на реальный мир своими круглыми.
4) В режиме полного погружения (когда не видишь реальность) вестибуляр оправляется в пешее эротическое… Спасибо, что не упал.
5) Vision OS. В ней нет ничего… Вау эффект от перетаскивания экранов прошел где-то через 3 минуты. Приложений особо нет, и не предвидится, жестами пользоваться неудобно, руку все же нужно поднимать.
В общем, как по мне, неюзабильная приблуда.
Тим Кук сказал, что устройство «несет сегодняшние технологии в завтрашний день»!
Что могу сказать я: «Завтрашние технологии все еще отстойные»!
Послезавтра вернусь!
1) Я в них выгляжу кринжово.
2) Очки тяжелые. Мне казалось, что для меня - это мелочь. Но после 20 минут желание сходить в кой-то веки на массаж. А еще горячий душ. И еще раз массаж.
В общем, тяжеловато.
3) Apple Vision Pro - это очки виртуальной реальности, а не дополненной.
Поэтому все окружение - это картинка с камер, и она расплывается.
Для людей с плохим зрением - самое то, я же хотел их снять как можно скорее и посмотреть на реальный мир своими круглыми.
4) В режиме полного погружения (когда не видишь реальность) вестибуляр оправляется в пешее эротическое… Спасибо, что не упал.
5) Vision OS. В ней нет ничего… Вау эффект от перетаскивания экранов прошел где-то через 3 минуты. Приложений особо нет, и не предвидится, жестами пользоваться неудобно, руку все же нужно поднимать.
В общем, как по мне, неюзабильная приблуда.
Тим Кук сказал, что устройство «несет сегодняшние технологии в завтрашний день»!
Что могу сказать я: «Завтрашние технологии все еще отстойные»!
Послезавтра вернусь!
😁9👍3😎2👎1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Немного красивой анимации от «Aviasales» вам в ленту.
Хотели бы увидеть видео-рубрику «Повторяем дизайн»?
Хотели бы увидеть видео-рубрику «Повторяем дизайн»?
👍13🔥1🍌1🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
Ускоряем написание кода
Как это ни странно, сама скорость написание кода в наименьшей степени влияет на скорость разработки.
И все же, предприимчивый разработчик стремиться максимально упростить свою работу.
Один из способов - использовать code snippets в Xcode.
Code snippet в Xcode - это маленький фрагмент кода, который можно быстро вставить в ваш проект. В Xcode есть несколько встроенных code snippets, и вы также можете создавать собственные. Code snippets могут быть использованы для автоматического создания шаблонов кода, добавления часто используемых конструкций или даже для вставки сложных блоков кода с предопределенными значениями.
Пример на видео: использование сode snippet-а с кодом для документирования.
Как это ни странно, сама скорость написание кода в наименьшей степени влияет на скорость разработки.
И все же, предприимчивый разработчик стремиться максимально упростить свою работу.
Один из способов - использовать code snippets в Xcode.
Code snippet в Xcode - это маленький фрагмент кода, который можно быстро вставить в ваш проект. В Xcode есть несколько встроенных code snippets, и вы также можете создавать собственные. Code snippets могут быть использованы для автоматического создания шаблонов кода, добавления часто используемых конструкций или даже для вставки сложных блоков кода с предопределенными значениями.
Пример на видео: использование сode snippet-а с кодом для документирования.
🔥11⚡2🗿1😎1
Ищем iOS разработчика
Говорят, шанс успешно пройти собес растет кратно, если быть подписанным на наш iOS блог!
Вакансия: https://hh.ru/vacancy/92975788?from=share_ios
Говорят, шанс успешно пройти собес растет кратно, если быть подписанным на наш iOS блог!
Вакансия: https://hh.ru/vacancy/92975788?from=share_ios
hh.ru
Вакансия Middle IOS developer в Москве, работа в компании Интеллектуальные социальные системы (вакансия в архиве c 10 марта 2024)
Зарплата: не указана. Москва. Требуемый опыт: 1–3 года. Полная занятость. Дата публикации: 07.03.2024.
👍12🤩1
iOS Теория: Copy-on-write
Кто-нибудь хоть раз в продовом приложении делал у структур Copy-on-write?
Анафига на собеседованиях каждый раз спрашивать эту тему и ждать заученный ответ с одной и той же статьи на Хабре?
Принципиально больше не спрашиваю о COW на своих собеседованиях.
P.S. Когда-нибудь доберусь и додиспетчеризации .
Ссылки:
- Copy-on-write
- Linked List: Когда нужно писать свой Copy-on-write в iOS?
Кто-нибудь хоть раз в продовом приложении делал у структур Copy-on-write?
А
Принципиально больше не спрашиваю о COW на своих собеседованиях.
P.S. Когда-нибудь доберусь и до
Ссылки:
- Copy-on-write
- Linked List: Когда нужно писать свой Copy-on-write в iOS?
Хабр
Linked List: Когда нужно писать свой Copy-on-write в iOS?
Я всегда думал: "А зачем нужно писать свой copy-on-write? Ведь круто, когда есть структуры и они такие быстрые, что всё делают за тебя." Но все это не нужно, пока не начинаешь писать свои типы и не...
👍11🔥3🥰1🫡1
iOS Практика: Copy-on-write
Коротко пообщавшись с более опытным и уважаемым разработчиком, скорректировал свою позицию по COW-у.
- Спрашивать сухую теорию по Сopy-on-write есть смысл на скрининге у джуна.
- Во время обсуждения reference / value семантики можно задать практический вопрос по COW.
P.S. Все еще считаю, что сухую теорию спрашивать практически бесполезно. Все заучено, ну или нам везет с кандидатами!
Коротко пообщавшись с более опытным и уважаемым разработчиком, скорректировал свою позицию по COW-у.
- Спрашивать сухую теорию по Сopy-on-write есть смысл на скрининге у джуна.
- Во время обсуждения reference / value семантики можно задать практический вопрос по COW.
P.S. Все еще считаю, что сухую теорию спрашивать практически бесполезно. Все заучено, ну или нам везет с кандидатами!
Telegram
iOS makes me hate
❔❔❔⚠️
🔥11👨💻1🫡1
HR отбор
Нам, разработчикам, порой сложно проходить hr отбор.
- То мы не написали всеми используемый фреймворк, о котором и говорить не принято.
- То у нас некрасивый шрифт в резюме.
- То сегодня hr Раков по знаку задиака не принимает.
Вот так, проведя десяток другой собеседований с разными кандидатами, не пройти hr отбор к себе же в команду, к себе же на собеседование...
(Да-да, узнали, узнали 😅)
В следующем посту наш HR Даша расскажет, как составить хорошее резюме и пройти дальше hr-a!
Если вы - крутой разработчик Java / Android / iOS, то мы ждем именно вас:
https://hh.ru/employer/1505393
P.S.
- Спасибо Даше за хорошее настроение!
- Раков тоже принимаем.
#HR
Нам, разработчикам, порой сложно проходить hr отбор.
- То мы не написали всеми используемый фреймворк, о котором и говорить не принято.
- То у нас некрасивый шрифт в резюме.
- То сегодня hr Раков по знаку задиака не принимает.
Вот так, проведя десяток другой собеседований с разными кандидатами, не пройти hr отбор к себе же в команду, к себе же на собеседование...
(Да-да, узнали, узнали 😅)
В следующем посту наш HR Даша расскажет, как составить хорошее резюме и пройти дальше hr-a!
Если вы - крутой разработчик Java / Android / iOS, то мы ждем именно вас:
https://hh.ru/employer/1505393
P.S.
- Спасибо Даше за хорошее настроение!
- Раков тоже принимаем.
#HR
😁10🔥2🏆2🫡1
Бабл-бар. Часть 1
Бабл-бар - это кастомный таб-бар с дополнительным расстоянием снизу и по горизонтали.
Чаще всего, такое UI решение встречается в карточных приложениях, к примеру:
- Яндекс Карты (режим «Навигатор»)
- Навигатор
- MAPS.ME
Проблемы бабл-бара:
- Необходимость следить за отступом снизу на всех экранах, чтобы бабл-бар не перекрывал контент. Проблема решается изменением safeArea, либо добавлением пространства в UITableView. В любом случае - головная боль, о которой дизайнер, чаще всего, не подумал.
- Невозможность использовать нативные возможности таб-бара, вроде hidesBottomBarWhenPushed. Переопределить tabBar у UITabBarController нельзя, а значит все, что нужно, придется реализовывать самостоятельно.
- Размазанный переход при изменении ориентации телефона (вертикальная, горизонтальная налево, горизонтальная направо). Приложения от Яндекса поступают хитро, скрывая бабл-бар во время поворота. А вот тот-же MAPS.ME никак не решает эту проблему (видео в комментариях).
#БаблБар
Бабл-бар - это кастомный таб-бар с дополнительным расстоянием снизу и по горизонтали.
Чаще всего, такое UI решение встречается в карточных приложениях, к примеру:
- Яндекс Карты (режим «Навигатор»)
- Навигатор
- MAPS.ME
Проблемы бабл-бара:
- Необходимость следить за отступом снизу на всех экранах, чтобы бабл-бар не перекрывал контент. Проблема решается изменением safeArea, либо добавлением пространства в UITableView. В любом случае - головная боль, о которой дизайнер, чаще всего, не подумал.
- Невозможность использовать нативные возможности таб-бара, вроде hidesBottomBarWhenPushed. Переопределить tabBar у UITabBarController нельзя, а значит все, что нужно, придется реализовывать самостоятельно.
- Размазанный переход при изменении ориентации телефона (вертикальная, горизонтальная налево, горизонтальная направо). Приложения от Яндекса поступают хитро, скрывая бабл-бар во время поворота. А вот тот-же MAPS.ME никак не решает эту проблему (видео в комментариях).
#БаблБар
👍7🤔2🔥1🫡1
Передаем слово HR-у Даше! Часть 1
👋🏻 Привет, вот несколько важных моментов которые я бы выделила по улучшению резюме, накидывай свои идеи в комментариях! 🧐
- Всегда оставляй поле "образование" заполненным, будь то вышка, курсы и доп лекции.
- Не забывай про раздел "о себе" (расскажи про то, что тебе важно, что тебя увлекает и обязательной оставляй свои контакты и тут - так ты получишь больше писем от hr 🙃).
- Если твой коммерческий опыт небольшой, не прикручивай себе "несуществующий" лучше создай отдельную графу с "фриланс" и пиши туда все проекты где ты мог быть полезен.
- Удели внимание последнему опыту работу (1-2 года), его лучше описать подробнее за счет сокращения опыта в прошлых местах работы.
#HR
👋🏻 Привет, вот несколько важных моментов которые я бы выделила по улучшению резюме, накидывай свои идеи в комментариях! 🧐
- Всегда оставляй поле "образование" заполненным, будь то вышка, курсы и доп лекции.
- Не забывай про раздел "о себе" (расскажи про то, что тебе важно, что тебя увлекает и обязательной оставляй свои контакты и тут - так ты получишь больше писем от hr 🙃).
- Если твой коммерческий опыт небольшой, не прикручивай себе "несуществующий" лучше создай отдельную графу с "фриланс" и пиши туда все проекты где ты мог быть полезен.
- Удели внимание последнему опыту работу (1-2 года), его лучше описать подробнее за счет сокращения опыта в прошлых местах работы.
#HR
🔥7❤2👍1🤩1🫡1
Передаем слово HR-у Даше! Часть 2
- Если у тебя есть ссылки на реализованные проекты, обязательно оставляй (это так же важно как пример в GitHub).
- Оставляй свое фото (может с котом/ковром или алоэ) это поможет заметить тебя любому работодателю нежели 1000 кандидатов как и ты с превью "ios разработчик".
- Если зарплата для тебя вопрос № 1, то стоит указать её, если же ты достаточно гибкий в этом вопросе, то лучше не заполнять это поле.
P.S. Шутки в резюме всегда приветствуются (но важно найти для них место, например в том же разделе "о себе", особенно если они реально о себе 😅).
#HR
- Если у тебя есть ссылки на реализованные проекты, обязательно оставляй (это так же важно как пример в GitHub).
- Оставляй свое фото (может с котом/ковром или алоэ) это поможет заметить тебя любому работодателю нежели 1000 кандидатов как и ты с превью "ios разработчик".
- Если зарплата для тебя вопрос № 1, то стоит указать её, если же ты достаточно гибкий в этом вопросе, то лучше не заполнять это поле.
P.S. Шутки в резюме всегда приветствуются (но важно найти для них место, например в том же разделе "о себе", особенно если они реально о себе 😅).
#HR
🔥10❤1👍1🤩1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
Бабл-бар. Часть 2
При разработке транспортного приложения нам тоже пришлось столкнутся с бабл-баром.
Стандартная реализация бабл-бара:
- Скрытие нативного tabBar в UITabBarController.
- Добавление кастомного бара через view.addSubview(bubbleBar).
- Связка констрейнами.
- Реализация общения между bubbleBar и UITabBarController.
С такой реализацией, для приложений, поддерживающих горизонтальный режим, бабл-бар - это боль для глаз.
И если в приложении MAPS.ME анимация при повороте белого бабл-бара на белой карте выглядит еще терпимо (смотри первый пост по #БаблБар).
Tо для нашего дизайна... «размазанная черная колбаса», не иначе, как 💩.
Что ж, тогда мы начали брейншторм...
#БаблБар
При разработке транспортного приложения нам тоже пришлось столкнутся с бабл-баром.
Стандартная реализация бабл-бара:
- Скрытие нативного tabBar в UITabBarController.
- Добавление кастомного бара через view.addSubview(bubbleBar).
- Связка констрейнами.
- Реализация общения между bubbleBar и UITabBarController.
С такой реализацией, для приложений, поддерживающих горизонтальный режим, бабл-бар - это боль для глаз.
И если в приложении MAPS.ME анимация при повороте белого бабл-бара на белой карте выглядит еще терпимо (смотри первый пост по #БаблБар).
Tо для нашего дизайна... «размазанная черная колбаса», не иначе, как 💩.
Что ж, тогда мы начали брейншторм...
#БаблБар
👍9😁4
This media is not supported in your browser
VIEW IN TELEGRAM
Бабл-бар. Часть 3. Финал
Задача была ясна: убрать анимацию при поворотах, чтобы бабл-бар не «размазывало» по экрану.
Что мы только не перепробовали:
- Различные комбинации работы с версткой: от autolayout-a до фреймов, с попыткой обновления без анимации в отдельных комплишенах, пробовали отключать анимацию внутри с помощью
С фреймами анимация становилась менее размазанной, и все же, это было не то...
- Различные комбинации иерархии ViewController-ов с переопределенным
Либо эффекта не было, либо приложение оставалось всегда в одной ориентации, что нас не устраивало..
И все же, мы нашли решение! Теперь в нашем приложении два пользовательский UIWindow, второй нужен только для бабл-бара.
Нюансов в реализации так много, что не хватит ни одного поста, поэтому ждите статью на Хабре.
Подписывайтесь, чтобы не пропустить!
Задача была ясна: убрать анимацию при поворотах, чтобы бабл-бар не «размазывало» по экрану.
Что мы только не перепробовали:
- Различные комбинации работы с версткой: от autolayout-a до фреймов, с попыткой обновления без анимации в отдельных комплишенах, пробовали отключать анимацию внутри с помощью
layer.removeAllAnimations. С фреймами анимация становилась менее размазанной, и все же, это было не то...
- Различные комбинации иерархии ViewController-ов с переопределенным
supportedInterfaceOrientations: UIInterfaceOrientationMask. И что бабл-бал чайлд над табБаром, и что fullScreen, и что чайлд / fullScreen над RootViewController. Либо эффекта не было, либо приложение оставалось всегда в одной ориентации, что нас не устраивало..
И все же, мы нашли решение! Теперь в нашем приложении два пользовательский UIWindow, второй нужен только для бабл-бара.
Нюансов в реализации так много, что не хватит ни одного поста, поэтому ждите статью на Хабре.
Подписывайтесь, чтобы не пропустить!
🔥23👍5👏1🍌1