Pull to refresh
0
@Black-Opiumread⁠-⁠only

iOS developer

Send message

Превратности диспетчеризации в Swift

Level of difficultyMedium
Reading time7 min
Views3.2K

Всем привет, меня зовут Сергей, я работаю в компании Joy Dev в должности iOS TeamLead. Эта статья - моя “проба пера” на Хабре. В ней, вместе с обзором видов диспетчеризации в Swift, мы рассмотрим несколько примеров, когда реализация методов в extension может вести себя неожиданным образом. Итак.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments2

Многопоточность в iOS-разработке

Level of difficultyMedium
Reading time15 min
Views18K

Здравствуйте, уважаемые читатели Хабра!

Меня зовут Кирилл, я iOS-разработчик приложений Сбера в Студии Олега Чулакова.

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

В этой статье мы разберемся с основами многопоточности и познакомимся с такими инструментами Swift, как Grand Central Dispatch (GCD), OperationQueues, NSLock. А также существующими низкоуровневыми технологиями, такими как pthread и NSThread. Бонусом я расскажу про async/await. Мы обсудим, как эти инструменты помогают управлять асинхронными и параллельными операциями, и посмотрим на некоторые примеры их использования.

Приятного чтения, и давайте начнем наше путешествие в мир многопоточности Swift!

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments5

SOLID в Swift. Простое объяснение с примерами для начинающих

Level of difficultyMedium
Reading time3 min
Views12K

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

Давайте рассмотрим каждый из этих принципов с примерами нарушения и соблюдения на языке Swift.

Читать далее
Total votes 10: ↑9 and ↓1+14
Comments20

Заблуждения Clean Architecture

Reading time15 min
Views421K
Превращаем круги в блоки

­­ 


На первый взгляд, Clean Architecture – довольно простой набор рекомендаций к построению приложений. Но и я, и многие мои коллеги, сильные разработчики, осознали эту архитектуру не сразу. А в последнее время в чатах и интернете я вижу всё больше ошибочных представлений, связанных с ней. Этой статьёй я хочу помочь сообществу лучше понять Clean Architecture и избавиться от распространенных заблуждений.

Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments203

“Ешь и умней: здоровье мозга в тарелке?”

Reading time6 min
Views8.5K

Что делать, когда близится дедлайн, а ничего еще не готово? Рекламный лозунг шоколадных батончиков подсказывает нам: «Заряжай мозги!». Старшее поколение вспомнит, как всем детям давали невкусный рыбий жир в школах и детских садах: «омега-3-жирные кислоты полезны для мозга». Тем, кто носил в детстве очки, рекомендовали есть побольше черники и моркови — «для зрения». Но насколько продукты питания действительно могут повлиять на состояние нашего мозга — и как именно?

Еда (пищевое подкрепление) выступает для нас таким же вознаграждением, как эротические или финансовые стимулы.

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

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

Читать далее
Total votes 16: ↑9 and ↓7+2
Comments15

Дайджест интересных материалов для мобильного разработчика #374 (7 — 13 декабря)

Reading time4 min
Views3.4K
В этом выпуске эпическая история переписывания приложения Uber на Swift, новые возможности AR и доступности, приемы быстрой разработки и возможность принять участие в разработке Fuchsia, результаты мобильного рынка 2020, симулятор успешного успеха и многое другое.

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

Как Uber переписал приложение iOS на Swift

Reading time9 min
Views15K
Итак, друзья, садитесь в кружок и послушайте историю самой большой инженерной катастрофы, в которой я участвовал. Это история о политике, архитектуре и логической ошибке невозвратных затрат (вы уж извините, просто сейчас пью Aberlour Cask Strength Single Malt Scotch).


Шёл 2016 год. Трампа ещё не избрали президентом, поэтому движение #DeleteUber пока не началось. Трэвис Каланик оставался гендиром, мы переживали фазу гиперактивного роста с открытием филиалов в других странах, общественные настроения в целом позитивные, все довольны, Uber на высоте.
Total votes 34: ↑34 and ↓0+34
Comments45

Как мы делаем страховое приложение для людей

Reading time8 min
Views2.2K

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

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

Но сначала пару слов о нашем первом приложении. Мы делали его в качестве небольшого эксперимента, чтобы посмотреть, а нужно ли оно вообще и будут ли клиенты им пользоваться. У нас был 1 (один) разработчик, который в марте этого года собрал весь свой энтузиазм и начал с создания обертки под web view. В апреле мы выкатили приложение в Google Play, а в июне — в App Store. 

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

Читать далее
Total votes 10: ↑8 and ↓2+11
Comments2

Погружение в автотестирование на iOS. Часть 1. Как работать с accessibilityidentifier объектов

Reading time6 min
Views21K

Всем привет!

Меня зовут Борис. Я AQA iOS-engineer в Vivid Money.

Это вступительная статья, в цикле статей по iOS-автоматизации, в которых хочется рассказать о пользе ui-тестов на проекте, их эффективном использовании и написании.

Данная статья будет полезна начинающим iOS-автоматизаторам, либо разработчикам, которые решили изучить XCUITest и покрыть свой проект ui-тестами.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments4

Оверинжиниринг головного мозга

Reading time4 min
Views6.5K

Попалась мне простая развлекательная задача: собрать данные о температуре воды и воздуха с пары HTML страниц и выдать результат, в JSON из API. Задача тривиальная, решается кодом строк в 40 (или около того) с комментариями. Конечно если писать руководствуясь принципом Quick & Dirty. Тогда написаный код будет с душком и не будет соответствовать современным стандартам программирования

Порефакторим
Total votes 10: ↑7 and ↓3+9
Comments18

TeamCity: настраиваем CI/CD в вашей команде

Reading time15 min
Views97K

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

TeamCity — пожалуй, один из самых популярных CI/CD-серверов, который используют разработчики по всему миру. В этой статье я расскажу про базовые концепции, на которых он построен, и на примерах покажу, как можно настроить CI/CD в вашей команде.

Читать далее
Total votes 21: ↑20 and ↓1+22
Comments26

Чаты на вебсокетах в iOS, если у вас WAMP

Reading time7 min
Views4.6K


Разработка заняла примерно 9 месяцев, а я занимался реализацией клиент-серверного общения по сокету для iOS. Особенности нашей ситуации:

  1. Поддержка старых версий iOS, где нативных методов для общения по сокетам ещё не было — пришлось искать рабочую библиотеку и фиксить баги.
  2. Протокол WAMP на бэкенде — предстояло научить клиент декодировать any, декодировать протоколы и создать объект, который отвечает за отправку и приём сообщений.

Примечание: описанные ниже способы декодирования, можно применить и в других задачах.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments18

Новости о машинном обучении Apple в 2020 году

Reading time24 min
Views6.5K

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

К счастью, это вовсе не означает, что Apple прекратила разрабатывать инновационные технологии.

В этой публикации я кратко расскажу о новостях в отношении платформы Core ML и других технологий искусственного интеллекта и машинного обучения в экосистеме Apple.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments0

BoxView — удобный autolayout для iOS

Reading time4 min
Views2.8K
Хочу поделиться библиотекой для эффективного построения пользовательского интерфейса iOS приложений на основе autolayout.

Хотя с появлением SwiftUI актуальность autolayout быстро уменьшается, пока этот механизм все еще активно используется, и библиотека может быть полезна для тех, кто создает (или меняет) UI непосредственно в коде.
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments2
2

Information

Rating
Does not participate
Location
Махачкала, Дагестан, Россия
Registered
Activity