Команда Ozon в поиске мобильного разработчика iOS 🔍
Вам предстоит развивать мобильное приложение для 100 000 продавцов, участвовать в задаче по переходу с UIKit на SwiftUI, интегрировать внутренние библиотеки и многое другое.
Стек: SwiftUI, Combine (View слой), Needle, Alamofire, Unit, Snapshot, UI-тесты
Задачи:
✔️ Участвовать в разработке приложения
✔️ Включаться в обсуждение дизайна
✔️ Разрабатывать новые идеи по фичам
✔️ Участвовать в code review
✔️ Писать тесты
Условия:
✔️ Удаленка, гибрид или офис (Россия, Казахстан) — выбирать тебе
✔️ Свобода действий в принятии решений
✔️ Конкурентное предложение по зарплате
✔️ А также система бонусов, с возможностью влиять на свой совокупный доход
Если ты хочешь влиться в команду крупнейшего e-commerce и твой опыт разработки на Swift от 2 лет — оставляй отклик на сайте
Вам предстоит развивать мобильное приложение для 100 000 продавцов, участвовать в задаче по переходу с UIKit на SwiftUI, интегрировать внутренние библиотеки и многое другое.
Стек: SwiftUI, Combine (View слой), Needle, Alamofire, Unit, Snapshot, UI-тесты
Задачи:
✔️ Участвовать в разработке приложения
✔️ Включаться в обсуждение дизайна
✔️ Разрабатывать новые идеи по фичам
✔️ Участвовать в code review
✔️ Писать тесты
Условия:
✔️ Удаленка, гибрид или офис (Россия, Казахстан) — выбирать тебе
✔️ Свобода действий в принятии решений
✔️ Конкурентное предложение по зарплате
✔️ А также система бонусов, с возможностью влиять на свой совокупный доход
Если ты хочешь влиться в команду крупнейшего e-commerce и твой опыт разработки на Swift от 2 лет — оставляй отклик на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Использование Swift Charts для создания анимаций
Swift Charts можно использовать не только для того, чтобы строить графики, но и для вот таких анимаций, в которых участвует несколько кривых.
Swift Charts можно использовать не только для того, чтобы строить графики, но и для вот таких анимаций, в которых участвует несколько кривых.
Point-Free про модуляризацию
Бесплатный эпизод Point-Free про современный подход к модуляризации приложений с помощью SPM. Рассматривают несколько разных подходов к выделению модулей, начиная от самого очевидного вынесения в отдельные модули моделей и хелперов, заканчивая разными способами нарезки фичей.
Бесплатный эпизод Point-Free про современный подход к модуляризации приложений с помощью SPM. Рассматривают несколько разных подходов к выделению модулей, начиная от самого очевидного вынесения в отдельные модули моделей и хелперов, заканчивая разными способами нарезки фичей.
Перевод на Bazel большого проекта
Подробный кейс-стади перевода большого iOS проекта на сборку с помощью Bazel. В статье рассказывают про настройку удаленных билд кэшей, распределенную сборку проекта, проблемы с интеграцией с Xcode и управление зависимостями.
Подробный кейс-стади перевода большого iOS проекта на сборку с помощью Bazel. В статье рассказывают про настройку удаленных билд кэшей, распределенную сборку проекта, проблемы с интеграцией с Xcode и управление зависимостями.
Серия статей про Swift Charts
Завершилась отличная серия статей от Маджида про Swift Charts.
📊Basics
📊Mark styling
📊Custom Marks
📊Interactions
📊Customizations
📊Legends
📊Accessibility
Перевод на русский язык
Завершилась отличная серия статей от Маджида про Swift Charts.
📊Basics
📊Mark styling
📊Custom Marks
📊Interactions
📊Customizations
📊Legends
📊Accessibility
Перевод на русский язык
Test Plans стали дефолтными в Xcode 14.3
Я совсем пропустил – в Xcode 11 появились Test Plans. По сути, это способ организовать вместе группы тестов, чтобы их удобно было запускать в Xcode или из консоли. Так вот, в новой версии Xcode Test plans – дефолтный способ организации тестов. Если вы еще не конвертнулись в них, сейчас самое время.
Перевод на русский язык
Я совсем пропустил – в Xcode 11 появились Test Plans. По сути, это способ организовать вместе группы тестов, чтобы их удобно было запускать в Xcode или из консоли. Так вот, в новой версии Xcode Test plans – дефолтный способ организации тестов. Если вы еще не конвертнулись в них, сейчас самое время.
Перевод на русский язык
This media is not supported in your browser
VIEW IN TELEGRAM
Логирование частоты рендера SwiftUI вьюх
DataTile – логгер, который умеет визуализировать серии данных. Один из примеров его использования – логирование того, насколько часто пересоздаются какие-то вьюхи. Для этого создается кастомный модификатор, который при каждом своем вызове логирует номер своего вызова с помощью os_log. Данные из os_log уже подхватываются и визуализируются DataTile.
Перевод на русский язык
DataTile – логгер, который умеет визуализировать серии данных. Один из примеров его использования – логирование того, насколько часто пересоздаются какие-то вьюхи. Для этого создается кастомный модификатор, который при каждом своем вызове логирует номер своего вызова с помощью os_log. Данные из os_log уже подхватываются и визуализируются DataTile.
Перевод на русский язык
Обзор всех изменений в Swift 5.8
- Сняты все ограничения на работу с переменными в reault builder. Например, можно использовать lazy var.
- Новый атрибут backDeployed, который позволяет использовать часть новых API на старых версиях iOS.
- Неявный self в weak self замыканиях.
Xcode playground, в котором можно попробовать все фичи
- Сняты все ограничения на работу с переменными в reault builder. Например, можно использовать lazy var.
- Новый атрибут backDeployed, который позволяет использовать часть новых API на старых версиях iOS.
- Неявный self в weak self замыканиях.
Xcode playground, в котором можно попробовать все фичи
Hacking with Swift
What's new in Swift 5.8
Back-deployable APIs, more implicit self upgrades, improved result builders, and more!
Swift в Google Summer of Code
Если вы студент, или никогда раньше не контрибьютили в опенсорсные проекты, Google проводит крутую программу – Summer of Code. В ней участники вписываются в интересные задачи различных крупных опенсорс проектов, и под руководством ментора выполняют их. Swift – один из проектов, которые принимают участие.
Задачи, за которые можно взяться
Правила участия
Если вы студент, или никогда раньше не контрибьютили в опенсорсные проекты, Google проводит крутую программу – Summer of Code. В ней участники вписываются в интересные задачи различных крупных опенсорс проектов, и под руководством ментора выполняют их. Swift – один из проектов, которые принимают участие.
Задачи, за которые можно взяться
Правила участия
Swift Forums
Swift to participate in GSoC 2023!
Hello everyone, I'm really excited to share that, once again, Swift is going to participate in Google Summer of Code! By now, maybe you've already seen potential participants start some threads 😉 Last year we managed to run 5 awesome and successful projects.…
Спойлеры как в Telegram на SwiftUI
- Разбор того, как спойлеры реализованы в исходниках Телеги.
- Реализация своего спойлера с помощью CAEmitterLayer.
- Заворачивание спойлера в модификатор, чтобы его было легко применить к любой вьюхе.
Исходники
Перевод на русский язык
- Разбор того, как спойлеры реализованы в исходниках Телеги.
- Реализация своего спойлера с помощью CAEmitterLayer.
- Заворачивание спойлера в модификатор, чтобы его было легко применить к любой вьюхе.
Исходники
Перевод на русский язык
This media is not supported in your browser
VIEW IN TELEGRAM
Как не забывать удалять код для поддержки старых версий iOS
Если вы помечаете костыли, которые требуется удалить после отказа от старой версии iOS, TODOшками, то есть способы гораздо лучше.
Если вы помечаете костыли, которые требуется удалить после отказа от старой версии iOS, TODOшками, то есть способы гораздо лучше.
Поддержка RTL локализации в существующем проекте
Додо рассказывают про кучу проблем и особенностей, с которыми они столкнулись при добавлении в приложение поддержки арабского языка.
⬅️Как меняется верстка
⬅️Отзеркаливание коллекций
⬅️Замена иконок, в которых есть направление
⬅️Цифры и пунктуация
Додо рассказывают про кучу проблем и особенностей, с которыми они столкнулись при добавлении в приложение поддержки арабского языка.
⬅️Как меняется верстка
⬅️Отзеркаливание коллекций
⬅️Замена иконок, в которых есть направление
⬅️Цифры и пунктуация
Изменения в прайсинге App Store раскатываются на все категории
В декабре Apple сильно улучшили механики прайсинга, добавив настройку цены с шагом в 10 центов. Теперь эти изменения доступны для всех типов продаж, включая платные приложения и единоразовые покупки.
Второй важный момент – вам надо вручную выбрать правильные цены для ваших товаров, иначе в мае Apple сделает это за вас.
Перевод на русский язык
В декабре Apple сильно улучшили механики прайсинга, добавив настройку цены с шагом в 10 центов. Теперь эти изменения доступны для всех типов продаж, включая платные приложения и единоразовые покупки.
Второй важный момент – вам надо вручную выбрать правильные цены для ваших товаров, иначе в мае Apple сделает это за вас.
Перевод на русский язык
Apple
App Store pricing upgrades have expanded to all purchase types - Latest News - Apple Developer
In December, we announced the most comprehensive upgrade to pricing capabilities since the App Store first launched, including additional price points and new tools to manage pricing by storefront. Starting today, these upgrades and new prices are now available…
Фильтрация логов дебаггера
Любой проект со временем обрастает различными логами – статус и содержание сетевых запросов, события жизненного цикла экранов, операции с базой данных. Такой шум в консоли может сильно мешать дебагу.
В Xcode есть возможность отфильтровать все, что падает в консоль, оставив только логи брейкпойнтов и то, что вы печатаете сами с помощью дебаггера.
Любой проект со временем обрастает различными логами – статус и содержание сетевых запросов, события жизненного цикла экранов, операции с базой данных. Такой шум в консоли может сильно мешать дебагу.
В Xcode есть возможность отфильтровать все, что падает в консоль, оставив только логи брейкпойнтов и то, что вы печатаете сами с помощью дебаггера.
Советы по тому, как избежать выгорания
Несколько давно известных, но от этого не менее важных советов по тому, как программистам избегать выгорания:
🎯При работе над большими неопределенными задачами всегда разбивать их на понятные небольшие куски, которые можно завершить за обозримое время.
⏰Управлять своей загрузкой, приоритизируя задачи, и уделяя внимание только важным.
☝️Стараться фокусироваться только на одной задаче, даже когда подходит дедлайн, и надо успеть сделать сразу много всего.
✋Делать перерывы в работе каждый час, даже когда вы входите в состояние потока на часы.
В статье – еще несколько советов и ссылки на глубокие статьи и книги по теме.
Перевод на русский язык
Несколько давно известных, но от этого не менее важных советов по тому, как программистам избегать выгорания:
🎯При работе над большими неопределенными задачами всегда разбивать их на понятные небольшие куски, которые можно завершить за обозримое время.
⏰Управлять своей загрузкой, приоритизируя задачи, и уделяя внимание только важным.
☝️Стараться фокусироваться только на одной задаче, даже когда подходит дедлайн, и надо успеть сделать сразу много всего.
✋Делать перерывы в работе каждый час, даже когда вы входите в состояние потока на часы.
В статье – еще несколько советов и ссылки на глубокие статьи и книги по теме.
Перевод на русский язык
Krzysztof Zabłocki
How to avoid burnout as a software engineer?
As a software engineer, burnout can be common due to the demanding nature of the job. Prioritizing self-care, setting realistic goals, managing workload, taking breaks, practicing self-care, and setting boundaries can help prevent burnout and maintain a healthy…
Copilot для Xcode
Для Xcode завезли неофициальную поддержку Copilot. Вы печатаете строку в редакторе, а в открытом рядом окне или в комментах показываются саджесты от Copilot.
Для Xcode завезли неофициальную поддержку Copilot. Вы печатаете строку в редакторе, а в открытом рядом окне или в комментах показываются саджесты от Copilot.
Подкаст про мобильную разработку в Spotify
Если вы любите истории про сложности разработки огромных проектов, то подкаст для вас. Инженер из платформенной команды Spotify рассказывает про переезд на Bazel, подходы к уменьшению билд тайма с помощью ремоут кэшей, поддержку разработки в монорепе, и кучу других историй.
Если вы любите истории про сложности разработки огромных проектов, то подкаст для вас. Инженер из платформенной команды Spotify рассказывает про переезд на Bazel, подходы к уменьшению билд тайма с помощью ремоут кэшей, поддержку разработки в монорепе, и кучу других историй.
Spotify
17: Building Apps at Spotify Scale
NerdOut@Spotify · Episode
Performance тестирование с XCTest
У XCTest есть специальный API, который позволяет измерить время прохождения любого блока кода – среднее, минимальное и максимальное. В статье разбираются детали работы с ним и его дополнительные возможности.
У XCTest есть специальный API, который позволяет измерить время прохождения любого блока кода – среднее, минимальное и максимальное. В статье разбираются детали работы с ним и его дополнительные возможности.
Swift with Majid
Performance testing in Swift using the XCTest framework
In Swift, we can do performance testing using the XCTest framework, which is a part of the Xcode development environment. XCTest provides a comprehensive set of tools for writing, running, and analyzing unit and performance tests for Swift applications. This…
Приключение на 20 минут, превратившееся в 1 месяц
Простой переезд со своего форка библиотеки скриншотного тестирования на ее официальную версию вылился в месяц расследования странных багов и обновления казалось бы не очень связанных с изначальной задачей частей проекта. Мемы, кровь и слезы.
Простой переезд со своего форка библиотеки скриншотного тестирования на ее официальную версию вылился в месяц расследования странных багов и обновления казалось бы не очень связанных с изначальной задачей частей проекта. Мемы, кровь и слезы.