Ищем 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
vc.ru
3 дизайн-решения, которые улучшили показатели мобильного сайта Альфа-Банка в несколько раз — Альфа-Банк на vc.ru
Пара обновлений — и +4 млн рублей каждый месяц.
Статья от ребят про улучшение мобильного сайта Альфа-Банка.
Выводы вполне подходят и для мобильных приложений.
- Видеобаннеры вместо статичных картинок.
По статистике, большинство статичных баннеров пропускаются пользователями, баннеров стало слишком много, пользователь чаще воспринимает баннеры - как шум. А вот видеобаннеры - новый тренд, ловим волну, господа.
- Отказаться от множества баннеров, которые ведут на продуктовые страницы, и заменить их на иконки с текстом.
Тут без комментариев, в некоторые банковские приложения страшно заходить... На странице со счетами, где я бы ожидал увидеть, как это не странно, свои счета, вместо этого 70% экрана занимают "Рекомедации", предложения с кешбэком, предложения с подписками и прочий шум и шлак.
P.S.
На экране "Мои счета" я хочу видеть МОИ СЧЕТА! Да-да, МТС Банк, СЧЕТА!
Тинек в этом вплане впереди всех, ИМХО.
Ссылки: статья на VC «3 дизайн-решения, которые улучшили показатели мобильного сайта Альфа-Банка в несколько раз»
Выводы вполне подходят и для мобильных приложений.
- Видеобаннеры вместо статичных картинок.
По статистике, большинство статичных баннеров пропускаются пользователями, баннеров стало слишком много, пользователь чаще воспринимает баннеры - как шум. А вот видеобаннеры - новый тренд, ловим волну, господа.
- Отказаться от множества баннеров, которые ведут на продуктовые страницы, и заменить их на иконки с текстом.
Тут без комментариев, в некоторые банковские приложения страшно заходить... На странице со счетами, где я бы ожидал увидеть, как это не странно, свои счета, вместо этого 70% экрана занимают "Рекомедации", предложения с кешбэком, предложения с подписками и прочий шум и шлак.
P.S.
На экране "Мои счета" я хочу видеть МОИ СЧЕТА! Да-да, МТС Банк, СЧЕТА!
Тинек в этом вплане впереди всех, ИМХО.
Ссылки: статья на VC «3 дизайн-решения, которые улучшили показатели мобильного сайта Альфа-Банка в несколько раз»
👍9🔥3❤1😁1🤩1
Моменты неотзывчивости iOS-приложений: как найти и исправить
Небольшой и интересный доклад о неотзычивости, Hang Rate, Xcode Organiser, MetricKit.
Когда-нибудь дойдем до performance тестов и сбора метрик отзычивости.
Ссылка
#ЯндексСубботник
Небольшой и интересный доклад о неотзычивости, Hang Rate, Xcode Organiser, MetricKit.
У нас тут не Яндекс!
Когда-нибудь дойдем до performance тестов и сбора метрик отзычивости.
Ссылка
#ЯндексСубботник
YouTube
Я.Субботник по мобильной разработке
Я.Субботник по мобильной разработке — большой митап в офисе Яндекса и онлайн для iOS- и Android-разработчиков. В этот раз проводим трансляцию сразу из двух городов: Москва и Новосибирск.
Вопросы можно задавать с хэштегом #вопрос (https://www.youtube.com…
Вопросы можно задавать с хэштегом #вопрос (https://www.youtube.com…
👍5😎4🍌2😁1
Добиваем Я.Субботник докладом про нюансы разработки для Apple Vision Pro
Кинопоиск уже на Vision Pro, реклама, как для продукта - топ!
Однако, опять же, это импорт iOS-ного приложения.
Лет через 5-7 полноценная разработка под Vision может и будет актуальна, но там и другие доклады смотреть будем.
P.S.
Пара бесплатных идей для стартапа:
- Vision нарды.
- Интерфейс "Терминатора" из первого фильма.
- AI раздевание людей вокруг.
Ссылка
#ЯндексСубботник
Кинопоиск уже на Vision Pro, реклама, как для продукта - топ!
Однако, опять же, это импорт iOS-ного приложения.
У нас тут не Яндекс!
Лет через 5-7 полноценная разработка под Vision может и будет актуальна, но там и другие доклады смотреть будем.
P.S.
Пара бесплатных идей для стартапа:
- Vision нарды.
- Интерфейс "Терминатора" из первого фильма.
- AI раздевание людей вокруг.
Ссылка
#ЯндексСубботник
YouTube
Я.Субботник по мобильной разработке
Я.Субботник по мобильной разработке — большой митап в офисе Яндекса и онлайн для iOS- и Android-разработчиков. В этот раз проводим трансляцию сразу из двух городов: Москва и Новосибирск.
Вопросы можно задавать с хэштегом #вопрос (https://www.youtube.com…
Вопросы можно задавать с хэштегом #вопрос (https://www.youtube.com…
👍7😁2🍌2🎉1
WWDC нужно смотреть в оригинале.
Для этого начинаем учить английский прямо сейчас c Trannoscriptum!
Попробуй бесплатно trannoscriptum 🆓🆒🆙
Для этого начинаем учить английский прямо сейчас c Trannoscriptum!
Попробуй бесплатно trannoscriptum 🆓🆒🆙
Telegram
Trannoscriptum
Умный чат-бот для тренировки разговорной речи на английском, французском и немецком 🇬🇧🇩🇪🇫🇷
Нужна помощь? Пишите @issdev
Нужна помощь? Пишите @issdev
🔥13
Только ленивый не рассказал про обновление Swift 5.10. Теперь мой черёд
- Закрыты все известные дыры в безопасности статической гонки данных за счет полной строгой проверки параллелизма.
Правда, пока только с флагом
Пример:
- Добавлен новый неизолированный (небезопасный) модификатор
- Исправлено множество ошибок в проверке изоляции субъектов @MainActor и Sendable, чтобы усилить гарантии полной проверки параллелизма.
Мои мысли:
Swift становится все проще для разработки, и все сложнее для понимания.
Но я рад, что Apple стандартизирует разные области нашего ремесла, и теперь ответ для моего вопроса с собеседования "Как вы видите data-race safety" становится более четким.
Ссылка
- Закрыты все известные дыры в безопасности статической гонки данных за счет полной строгой проверки параллелизма.
Правда, пока только с флагом
-strict-concurrency=complete.Пример:
@MainActor
class MyModel {
init() {
MainActor.assertIsolated()
}
static let shared = MyModel()
}
func useShared() async {
let model = MyModel.shared
}
await useShared()
warning: expression is 'async' but is not marked with 'await'
let model = MyModel.shared
^~~~~~~~~~~~~~
await
- Добавлен новый неизолированный (небезопасный) модификатор
nonisolated(unsafe) для аннотации глобальных или статических переменных для подавления нарушений изоляции данных при ручной синхронизации. - Исправлено множество ошибок в проверке изоляции субъектов @MainActor и Sendable, чтобы усилить гарантии полной проверки параллелизма.
Мои мысли:
Swift становится все проще для разработки, и все сложнее для понимания.
Но я рад, что Apple стандартизирует разные области нашего ремесла, и теперь ответ для моего вопроса с собеседования "Как вы видите data-race safety" становится более четким.
Ссылка
GitHub
swift/CHANGELOG.md at release/5.10 · swiftlang/swift
The Swift Programming Language. Contribute to swiftlang/swift development by creating an account on GitHub.
🔥7👍4🍓1
Веб-распространение iOS приложений (Только для ЕС) Ч1
В весеннем обновлении появится функция авторизованным разработчикам
Apple предоставит доступ к API, которые облегчат распространение их приложений из интернета.
Ссылка
В весеннем обновлении появится функция авторизованным разработчикам
распространять свои приложения iOS среди пользователей из ЕС непосредственно с веб-сайта, принадлежащего разработчику. Apple предоставит доступ к API, которые облегчат распространение их приложений из интернета.
Ссылка
Apple
More options for apps distributed in the European Union - Latest News - Apple Developer
We’re providing more flexibility for developers who distribute apps in the European Union (EU), including introducing a new way to distribute apps directly from a developer’s website.More flexibilityDevelopers who’ve agreed to the Alternative Terms Addendum…
👍7👀3
Веб-распространение iOS приложений. Ч2
Подробности:
- Приложение может быть установлено только с домена веб-сайта, который разработчик зарегистрировал в App Store Connect.
- Используя App Store Connect, разработчики могут легко загружать подписанные двоичные ресурсы и размещать их на своем веб-сайте для распространения.
- Чтобы устанавливать приложения с веб-сайта разработчика, пользователям сначала необходимо разрешить разработчику устанавливать приложения в настройках на своем iPhone.
- Apple будет авторизовать разработчиков после соблюдения определенных критериев и соблюдения постоянных требований.
Ссылка
Подробности:
- Приложение может быть установлено только с домена веб-сайта, который разработчик зарегистрировал в App Store Connect.
- Используя App Store Connect, разработчики могут легко загружать подписанные двоичные ресурсы и размещать их на своем веб-сайте для распространения.
- Чтобы устанавливать приложения с веб-сайта разработчика, пользователям сначала необходимо разрешить разработчику устанавливать приложения в настройках на своем iPhone.
- Apple будет авторизовать разработчиков после соблюдения определенных критериев и соблюдения постоянных требований.
Ссылка
👍5❤2
Веб-распространение iOS приложений. Ч3
Чтобы иметь право на распространение через Интернет, вы должны:
- Быть зарегистрированным в программе Apple Developer Program в качестве организации, зарегистрированной в ЕС (или иметь дочернее юридическое лицо, зарегистрированное в ЕС, которое указано в App Store Connect).
- Быть участником программы Apple Developer Program с хорошей репутацией в течение двух или более лет подряд и иметь приложение, которое за предыдущий календарный год было установлено более одного миллиона первых ежегодных установок на iOS в ЕС.
- Предлагать приложения только из вашей учетной записи разработчика.
- Быть отзывчивы на сообщения Apple относительно ваших приложений, распространяемых через веб-распространение, особенно в отношении любого мошеннического, злонамеренного или незаконного поведения, а также чего-либо еще, что, по мнению Apple, влияет на безопасность, защищенность или конфиденциальность пользователей.
- Опубликовать прозрачные политики сбора данных и предложите пользователям контролировать сбор и использование их данных.
- Соблюдать применимые законы юрисдикций, в которых вы работаете (например, Закон о цифровых услугах, Общие положения о защите данных и законы о защите потребителей).
- Нести ответственность за обработку правительственных и других запросов на удаление списков приложений.
Ссылка
Чтобы иметь право на распространение через Интернет, вы должны:
- Быть зарегистрированным в программе Apple Developer Program в качестве организации, зарегистрированной в ЕС (или иметь дочернее юридическое лицо, зарегистрированное в ЕС, которое указано в App Store Connect).
- Быть участником программы Apple Developer Program с хорошей репутацией в течение двух или более лет подряд и иметь приложение, которое за предыдущий календарный год было установлено более одного миллиона первых ежегодных установок на iOS в ЕС.
- Предлагать приложения только из вашей учетной записи разработчика.
- Быть отзывчивы на сообщения Apple относительно ваших приложений, распространяемых через веб-распространение, особенно в отношении любого мошеннического, злонамеренного или незаконного поведения, а также чего-либо еще, что, по мнению Apple, влияет на безопасность, защищенность или конфиденциальность пользователей.
- Опубликовать прозрачные политики сбора данных и предложите пользователям контролировать сбор и использование их данных.
- Соблюдать применимые законы юрисдикций, в которых вы работаете (например, Закон о цифровых услугах, Общие положения о защите данных и законы о защите потребителей).
- Нести ответственность за обработку правительственных и других запросов на удаление списков приложений.
Ссылка
👍4🔥4