Pull to refresh
0
@Daniel_Vread⁠-⁠only

User

Send message

[Личный опыт] «Повзрослевшая Россия»: тонкости переезда в Канаду

Reading time17 min
Reach and readers83K

В июле 2020 года, в разгар уже опостылевшей всем пандемии, ValCanada получил статус резидента Канады и переехал с семьёй в Северную Америку.


Откровенно и искренне он поделился с нами особенностями страны, про которые мало говорят в инструкциях о релокации: как получить максимум баллов для ПМЖ, каким IT-специалистам легче найти работу, как законно сэкономить на съёмном жилье (но, возможно, заработать невроз), почему при переезде стоит одеваться теплее, и как обстоят дела с новомодным дайверсити.


Впереди лонгрид!




Читать дальше →

Сценарий идеального технического собеседования

Reading time14 min
Reach and readers37K


Дисклеймер: это сценарий идеального технического собеседования в Delivery Club Tech. Мнение нашей команды может не совпадать с мнением читателей.

Привет, Хабр! Меня зовут Василий Козлов, я iOS-техлид в Delivery Club. Я часто и много провожу собеседования. В этой статье я собрал накопленный опыт и собственные наблюдения, которыми хочу поделиться. Во второй части статьи приведу пример собеса с комментариями со своей стороны. Итак, начнём.

1. Собесы бывают разные: жёлтые, зелёные, красные (лирическое отступление)


Есть мнение, что сложные технические собесы не работают. Сооснователь платформы для рекрутинга Interviewing.io Алин Лернер ранее писала, что компании, которые подбирают сотрудников, опираясь на сложные технические собеседования, «тратят ресурсы на множество кандидатов, которые не понимают игровую сущность собеседований». В результате на финишную прямую в таких компаниях выходят кандидаты, которые хороши именно в прохождении интервью.
Читать дальше →

Архитектурные паттерны в iOS: страх и ненависть в диаграммах. MV(X)

Reading time15 min
Reach and readers34K

Каждый iOS разработчик в своей жизни уходил с собеседования в расстроенных чувствах и мыслью “это что еще за новая аббревиатура?” Архитектурами пугают и джунов, и миддлов, и синьоров (и наверное даже синьорит). Важно не просто знать что стоит за названием, но ещё и в каком случае какую использовать. Литературы по этому вопросу преступно мало, редкие обсуждения в интернете ограничиваются собственным опытом и какими-то поделками на гитхабе.

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

Первая часть посвящена MV(X) паттернам: самым известным и распространенным практикам в индустрии.

Читать далее

Вторая причина остаться без зубов в 45 лет

Reading time12 min
Reach and readers30K

Есть две причины по которым вы можете лишиться зубов. Первую вы уже знаете — это кариес. Сегодня будем говорить про вторую — воспаление дёсен и пародонтит. На самом деле мало иметь зубы без кариозных полостей. Если повреждён опорный аппарат зубов, то они такими красивыми и выпадут. Мы реально нередко пытаемся собрать рассыпающуюся челюсть годам к 45 из-за генерализованного пародонтита. Всё начинается с небольших зубных камешков и лёгкого покраснения дёсен, а заканчивается жёсткой патологической подвижностью, когда зуб буквально вынимается из лунки двумя пальцами.

Группы риска:

1.      Люди с плохой гигиеной. Впрочем, кариес лишит зубов раньше, чем пародонтит.

2.      Диабетики. У них проблемы с сосудами и местным иммунитетом.

3.      Курящие. У них тоже проблемы с сосудами. И да, вейпы несильно спасают: никотин токсичен сам по себе. Кроме этого, у курящих налёт прочнее фиксируется на эмали.

4.      Люди, чьи родители или ближайшие родственники имеют поставленный пародонтальный диагноз.

Дома невозможно полностью убрать все поддесневые зубные отложения. Это можно сделать только мощным ультразвуковым скейлером у стоматолога, и то не без труда. Поэтому, даже если вы хорошо чистите зубы дома, регулярная профессиональная гигиена вам всё равно необходима.

Поэтому, чтобы не брать потом ипотеку под залог почки на лечение, расскажу, что нужно делать задолго до появления проблемы. Буду показывать вам зубные камни, кровоточивость дёсен и то, почему пародонтит невозможно вылечить, а только приостановить.

Читать далее

Процесс загрузки iPhone. Часть 1: Boot ROM

Reading time14 min
Reach and readers27K

Мне показалось интересным поделиться с сообществом информацией о внутреннем устройстве техники Apple, так как статей на эту тему крайне мало. Начать я решил с iPhone. Поэтому предлагаю вам вместе со мной попробовать разобраться в работе этого загадочного девайса.

Почитать

Йога глазами дата-сайентиста: как мы строили computer vision в мобильном приложении

Reading time10 min
Reach and readers15K

Привет! Я Денис Соколов, руковожу R&D в Zenia Yoga — первом приложении для йоги на основе ИИ. В этой статье я расскажу, из чего состоит современная система, работающая с компьютерным зрением: как влияет каждый элемент пайплайна на конечный результат, который видит пользователь. Мы пошагово разберем создание модели для human pose estimation и сравним ее с готовыми «коробочными» решениями от производителей мобильных платформ, а также открытыми аналогами.

Читать далее

Core Data + Repository pattern. Детали реализации

Reading time13 min
Reach and readers9.1K

Всем привет! Данный пост рассчитан на людей, которые немного знают о том что такое Core Data. Если вы не один из них, прочитайте краткую информацию тут и присоединяйтесь! Прежде всего, мне хотелось бы поделиться своим взглядом на некоторые проблемы и подходы к организации работы с данными в IOS приложениях, надеюсь - это будет как минимум интересно, а может даже и полезно. Поехали!

Читать далее

10 расширений Swift, которые мы используем на Livefront

Reading time11 min
Reach and readers4.7K

Добавьте в Swift свою собственную изюминку

Давайте будем честными. Фреймворки Swift и Apple не обладают всей функциональностью, необходимой при создании лучшего программного обеспечения для устройств Apple. К счастью, Swift поддерживает расширения, чтобы мы могли добавлять недостающие части, необходимые для более удобной работы.

Если вы новичок в Swift, пожалуйста, обратитесь к документации, чтобы узнать больше о Расширениях перед тем, как продолжить.

В этой статье я сосредоточусь на расширениях, которые добавляют дополнительные функциональные возможности к существующим типам. Расширения также могут добавлять функции по умолчанию для протоколов, добавлять ограничения для типов протоколов и многое другое.

При создании собственных расширений я бы порекомендовал создать несколько юнит-тестов для проверки их выполнения, чтобы удостовериться, что вы получаете желаемый результат. 

Стремясь к тому, чтобы содержание ниже было относительно кратким, я не включил в описание наши юнит-тесты.

Вы можете найти Xcode Playground, используемый в этой статье, на моей странице GitHub.

Вот только 10 из многих расширений, которые мы используем в Livefront.

Читать далее

Подходы к спискам на UICollectionView

Reading time14 min
Reach and readers8.8K

Уже давным давно, во всех известных нам галактиках мобильные приложения представляют информацию в виде списков - будь то доставка еды на Татуине, имперская почта или обычный ежедневник джедая. С незапамятных времен мы писали UI на UITableView и не задумывались.

Копились бесчисленные баги и знания об устройстве этого инструмента и о лучших практиках. И когда мы получили очередной infinite scroll дизайн, мы поняли: пришло время задуматься и дать отпор тирании UITableViewDataSource и UITableViewDelegate.

Читать далее

Если вы не чистите зубы, то я их вам почищу: FAQ про гигиену

Reading time12 min
Reach and readers138K
image

Зубы до гигиены, химический агент для окраски налёта (используется в обучающих целях для того, чтобы пациент видел непрочищаемые участки) и состояние после гигиены.

Про чистку зубов есть очень много вопросов, поэтому пробежимся по основным:

  • Что будет, если не чистить зубы?
  • Можно ли чистить зубы редко, но ходить к стоматологу время от времени, чтобы он их вам «мощно почистил»?
  • Как проходит чистка зубов в стоматологии?
  • Почему швейцарцы чистят зубы вообще без пасты?
  • Работает ли жвачка?
  • Какие щётки выбирать и как? Что насчёт электрических?
  • Правда ли, что щётку надо выкидывать, когда хотя бы одна ворсинка отклоняется от вертикали?
  • Зачем нужны скребки для языка, межзубные ёршики, зубная нить и всё остальное?
  • Ирригатор заменяет чистку зубов щёткой?
  • Ополаскиватель для рта — хорошая тема?
  • Когда важнее чистить зубы — утром или вечером?
  • Чем ИТ-специалист отличается от среднего пациента по анамнезу относительно гигиены ротовой полости?
Читать дальше →

Compositional Layout: стоит ли игра свеч?

Reading time8 min
Reach and readers14K


Всем привет! Меня зовут Алексей Скоробогатов, я ведущий iOS-разработчик в Delivery Club. Сегодня я хотел бы рассказать про вёрстку в нашем приложении на примере использования Compositional Layout. В конце прошлого года волевым решением iOS-команды и апрувом руководства мы перешли на iOS 13+. Этот манёвр позволил нам начать использовать новые нативные инструменты, в том числе и новый декларативный подход к описанию layout-коллекций. Расскажу о переводе нашего экрана поиска и его компонентов на Compositional Layout, а также о проблемах, с которыми я столкнулся.

Для полноценного представления о Compositional Layout предлагаю прочитать вот эту статью и ознакомиться с примерами Apple.
Читать дальше →

Как «приручить» консоль, или 5 шагов к жизни с командной строкой

Reading time15 min
Reach and readers32K

Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.

Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).

Читать далее

Погружение в автотестирование на iOS. Часть 4. Ожидания в XCUITest

Reading time4 min
Reach and readers11K

Привет, Хабр!

В UI тестах не все события происходят синхронно друг за другом. Сетевые запросы, анимации, чтение файлов – все это требует времени. Встает вопрос – как заставить тест ждать наступления определенного события?

В этой статье мы разберем:

- Что такое ожидание и для чего они используются в тестах;

- Рассмотрим какие бывают ожидания;

- Разберем из чего состоят ожидания;

- Рассмотрим пример эффективных ожиданий в тестах.

Читать далее

Типичные зубы пациента-айтишника: что с ними не так

Reading time7 min
Reach and readers107K
Добрый день! Меня зовут Ярослав, я главврач клиники на Зиларте сети «Белая радуга». 10 лет я работаю с зубами пациентов, и вот на 10-й год обнаружилось кое-что интересное. Мы в декабре начали писать про свою клинику, и у нас в гостях оказались люди, которые говорили, что они с Хабра.

Начиная примерно с 20-го пациента я научился узнавать общий профиль по первому взгляду в ротовую полость. Это же независимо заметили коллеги. Возможно, я позже займусь научной работой по характерным заболеваниям ИТ-специалистов, когда накоплю статистику, но пока просто хочу рассказать вам, что не так с вашими зубами. И задать вам несколько вопросов, ответы на которые помогут подтвердить или опровергнуть первичные гипотезы.

image
Стираемость на нижней челюсти.

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

Если коротко, то у моих пациентов данного профиля есть четыре основные проблемы:

  1. Нарушение саливации из-за ночной работы, обезвоживания или стресса.
  2. Привычка перекусывать джанк-фудом (пицца, печенье).
  3. Малоподвижный образ жизни с детства, что в целом сказывается на формировании постуры, скелета и прикуса.
  4. Привычка блокировать телесные сигналы: развитая «встроенная» аутоанестезия.

Давайте расскажу, что я увидел по зубам.
Читать дальше →

Выгорание — норма? Часть 2. Подробно про фазы и «Что делать?»

Reading time18 min
Reach and readers47K

Стресс — это норма жизни. Без стресса нет роста и обучения новому.

Передоз стресса, как передоз чего угодно — вызывает защитную реакцию. Сначала — сопротивление и попытки адаптации, затем, если эти попытки провалились — схлопывание энергетических систем, чтобы не умереть. 

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

Читать далее

Безопасность iOS-приложений: гайд для новичков

Reading time18 min
Reach and readers22K

Привет! Меня зовут Гриша, я работаю application security инженером в компании Wrike и отвечаю за безопасность наших мобильных приложений. В этой статье я расскажу про основы безопасности iOS-приложений. Текст будет полезен, если вы только начинаете интересоваться безопасностью мобильных приложений под iOS и хотите разобраться, как все устроено изнутри.

Читать далее

Как мы ускоряли работу отладчика Swift

Reading time8 min
Reach and readers9.9K

Привет! Меня зовут Александр Скворцов, я работаю в команде Яндекс.Браузера для iOS. Это очень большой проект, который насчитывает около тысячи clang-модулей и примерно 600 Swift-модулей. Наверное, из-за таких масштабов мы чаще других наталкиваемся на проблемы инструментов разработки, например, находим критические ошибки в компиляторе, неработающую подсветку и автодополнение. Это бывает неприятно, но жить можно. 

Самая серьёзная проблема возникла с отладкой. В худшем случае с момента запуска до остановки в отладчике на точке входа в приложение проходило больше 20 минут. И это на свежем MacBook Pro 16! С таким «быстродействием» инструментов разработки невозможно эффективно развивать проект, поэтому мы решили разобраться в причинах и поискать возможные решения.

В результате получилось не только снять остроту проблемы у себя, но и внести правки в код отладчика Swift — со временем описанные в статье неприятности перестанут беспокоить всех пользователей Xcode. А теперь расскажу подробнее, как это было.

Читать далее

[Личный опыт] Свой среди чужих: как встроиться в шведское общество

Reading time15 min
Reach and readers28K

В блоге мы много говорим про релокейт. Опыт у каждого разный, и в комментариях встречаются споры, где жить лучше, какой зарплаты достаточно, как считать налоги. Но есть тема, взгляды на которую сходятся. Интеграция в любое общество происходит со скрипом — если она вообще возможна. Кто-то верит, что окончательно интегрироваться получится только у их детей — холодок со стороны местных чувствуется, несмотря на дружелюбные улыбки.


Швеция считается самой закрытой страной среди европейских. Спросили инженера, который 2 года назад уехал работать в Spotify, удалось ли ему вписаться в местную культуру, и как это сделать тем, кто только собирается переехать к суровым северянам. Рассказывает Константин Голиков.




Читать дальше →

Цвета в Swift: UIColor

Reading time6 min
Reach and readers24K

UIColor дает возможность настроить цвет для Dark Mode, дает семантический набор цветов "от Apple", а также дает возможность задать не только цвет, но и паттерн заполнения пространства, что как бы кричит нам, что UIColor это вовсе не цвет. Давайте слегка заглянем в эти чертоги UIColor.

Читать далее

Погружение в автотестирование на iOS. Часть 3. Жизненный цикл iOS приложения во время прогона тестов

Reading time5 min
Reach and readers7.8K

Привет, хабр!

В этой статье я расскажу про жизненый цикл iOS приложения во время прогона тестов, а в частности про:

- Предусловия и постусловия в ui-тестах;

- Запуск/завершение работы приложения;

- Запуск стороних приложений;

- Сброс permissions;

- Определение состояния приложения.

Читать далее

Information

Rating
Does not participate
Registered
Activity