Pull to refresh
9
0
Михаил Куренков @spolispastom

iOS разработчик

Send message

Как сделать Swift-friendly API с Kotlin Multiplatform Mobile

Reading time6 min
Views4.7K

Kotlin Multiplatform Mobile позволяет компилировать Kotlin код в нативные библиотеки для Android и iOS. И если в случае с Android полученная из Kotlin библиотека будет интегрироваться с приложением написанным на Kotlin, то для iOS интеграция будет с Swift и на стыке Kotlin и Swift, из-за разницы языков, происходит потеря удобства использования. В основном это связано с тем, что компилятор Kotlin/Native (который компилирует Kotlin в iOS framework и является частью Kotlin Multiplatform) генерирует публичное API фреймворка на ObjectiveC, а из Swift мы обращаемся к Kotlin за счет этого сгенерированного ObjectiveC API, так как Swift имеет интероп с ObjectiveC. Далее я покажу примеры ухудшения API на стыке Kotlin-Swift и покажу инструмент, который позволяет получить более удобное API для использования из Swift.

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

На пути к «10x инженеру»: шорткаты, сниппеты, шаблоны

Reading time15 min
Views13K
Мы разобрались, как избежать рутины с помощью шорткатов для навигации, редактирования и отладки, чем могут помочь кастомные сниппеты и как прокачать файловые шаблоны. Описали это в «методичке» по командам в Xcode. Добавляйте в закладки, чтобы посмотреть при случае (а навигация в статье поможет быстро найти то, что нужно).


Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments3

Домашний кинотеатр на Raspberry

Reading time6 min
Views117K
Так случилось, что решил я упростить себе вопрос он-лайн просмотра фильмов, вариант стандартного смарт ТВ меня не устраивал, а постоянно торчащий кабель HDMI для подключения к ноутбуку раздражал. Решение моей проблемы я увидел в приобретении Raspberry Pi 4, который можно аккуратно спрятать за корпусом телевизора.
Читать дальше →
Total votes 32: ↑26 and ↓6+20
Comments164

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

Reading time6 min
Views11K

Ученье — детям не игрушка


Пока ребенок ходит пешком под стол, планшет — часть его обучения. Все радостно качают малышам Toca Boca, помогают укладывать пальцем простейшие пазлы, поют с ним песенки, двигают туда-сюда треугольники. Человек делает первые шаги в науке и вся семья готова аплодировать, если он верно сортирует грибочки по цветам.

На другом уровне, на уровне высшего образования, игры снова работают на человека.
Читать дальше →
Total votes 27: ↑6 and ↓21-15
Comments41

Фулстеки — это вечные мидлы. Не идите по этому пути, если не хотите страдать

Reading time4 min
Views135K


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

Читать дальше →
Total votes 249: ↑205 and ↓44+161
Comments733

SOLID

Reading time5 min
Views269K
SOLID критикует тот, кто думает, что действительно понимает ООП
© Куряшкин Виктор

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

Читать дальше →
Total votes 53: ↑35 and ↓18+17
Comments163

Где лучше всего жить и работать разработчику

Reading time7 min
Views71K
Алёна Лазарева, редактор-фрилансер, перевела для блога Нетологии статью Benjamin Martin о городах, в которых разработчиков ждут лучшие зарплаты.



Где лучше всего искать работу разработчику? В Нью-Йорке? Сан-Франциско?

Если судить по уровню заработной платы, Кремниевая долина явный победитель — среднегодовой доход для разработчика там составляет 110 554 $, согласно данным Glassdoor. Но стоимость аренды в области залива Сан-Франциско настолько высока, что не все разработчики могут позволить себе снимать там жильё.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments170

Как мы починили свой процесс и стали меньше отвлекаться

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

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

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments19

Синглтоны и общие экземпляры

Reading time14 min
Views43K


Каждый раз при обсуждении программного обеспечения с другими разработчиками всплывает тема синглтонов, особенно в контексте развития WordPress’а. Я часто пытаюсь объяснить, почему их надо избегать, даже если они считаются стандартным шаблоном.


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

Читать дальше →
Total votes 47: ↑35 and ↓12+23
Comments55

Конференции для разработчиков как путь в Senior? И что, работает?

Reading time10 min
Views18K


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

В общем, ниже про то, как выжать максимум из посещения профильной конференции для разработчиков, чего можно и чего нельзя добиться, и где самый жир.
Читать дальше →
Total votes 49: ↑46 and ↓3+43
Comments18

LLVM для исследователей

Reading time14 min
Views50K
В этой статье рассказывается о проведении исследований на базе инфраструктуры компилятора LLVM. Нашего рассказа должно хватить для того, чтобы исследователи, которым компиляторы прежде были по большей части безразличны, пришли в восторг от LLVM и сделали с его помощью что-нибудь интересное.

Что такое LLVM?


LLVM — это по-настоящему удобный для разборки и сборки «ранний» компилятор для таких традиционных языков программирования, как C и C++.

LLVM настолько хорош, что считается «больше, чем просто компилятором» (это динамический компилятор, он работает с языками, не относящимися к семейству C, он представляет собой новый формат доставки для App Store и т. д. и т. п.). Все перечисленное верно, но для нашей статьи важно лишь приведенное выше определение.

LLVM имеет несколько ключевых отличий от других компиляторов:

  • Главное новшество — промежуточное представление (ПП). LLVM работает с ПП, которое действительно можно прочитать (если вы умеете читать ассемблерный код). Возможно, кому-то это не покажется столь уж большим откровением, однако это свойство очень важно. ПП других компиляторов обычно имеют настолько сложную структуру, что их невозможно записать вручную, трудно понять и использовать.
Читать дальше →
Total votes 72: ↑68 and ↓4+64
Comments6

Повседневный C++: изолируем API в стиле C

Reading time8 min
Views25K

Мы все ценим C++ за лёгкую интеграцию с кодом на C. И всё же, это два разных языка.


Наследие C — одна из самых тяжких нош для современного C++. От такой ноши нельзя избавиться, но можно научиться с ней жить. Однако, многие программисты предпочитают не жить, а страдать. Об этом мы и поговорим.

Читать дальше →
Total votes 35: ↑30 and ↓5+25
Comments63

Изучите все языки программирования

Reading time9 min
Views85K
Когда я был ещё первокурсником, то познакомился с другим студентом, который утверждал, что может писать код на любом языке программирования, который я смогу назвать. Я был несколько шокирован и ответил подначкой:

— Что, даже на том нечитаемом эзотерическом языке, где есть всего пара команд, которые едва-едва симулируют машину Тьюринга?
— Да, этот язык называется brainfuck. Я знаю brainfuck.

И это был не трюк — мы проверили. Я называл известный мне язык программирования, он тратил пару минут в Интернете на то, чтобы освежить свои знания по нему — и был способен писать на этом языке работающие алгоритмы. Я никак не мог понять этого. Ему, как и мне, было тогда около 18 лет — как он мог в этом возрасте знать все эти языки?

image
Интерпретатор brainfuck, написанный на brainfuck

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

Сегодня я советую своим студентам «постараться изучить все языки программирования». Подумайте сами — ведь эта идея лучше, чем все вот эти «В этом году я выучу Go! Ой, нет, теперь говорят что в моде Rust — выучу лучше Rust! Или Swift ...». Просто выучите все — не ошибётесь. А эта статья, возможно, вам в этом немного поможет.
Читать дальше →
Total votes 89: ↑81 and ↓8+73
Comments94

Как стать тимлидом и не взорваться

Reading time12 min
Views70K


Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


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

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

Читать дальше →
Total votes 92: ↑89 and ↓3+86
Comments24

Junior, который в первый день работы удалил базу данных с production

Reading time2 min
Views143K
Reddit и другие иностранные ресурсы буквально покорила история о младшем разработчике, который, придя на свою первую работу, в первый же день удалил базу данных на production.


«Два типа людей в эксплуатации: кто уже сломал production, кто ещё только собирается это сделать»

Опубликованная 10 дней назад заметка собрала более 23 тысяч положительных голосов на Reddit и разошлась по другим специализированным ресурсам вроде The New Stack. Суть истории такова:
Читать дальше →
Total votes 139: ↑136 and ↓3+133
Comments376

Открытое письмо рекрутерам IT-сферы

Reading time8 min
Views43K
От переводчика:

Оригинал данного текста был написан разработчиком программного обеспечения из Швейцарии Адрианом akosma Космачевским. Другой его текст «Каково это — быть разработчиком, когда тебе сорок» уже переводился для Хабра. В первую очередь, все написанное ниже обращено к рекрутерам «по найму» — рекрутинговым агенствам, предоставляющим услуги поиска работников другим компаниям. Но в целом, он применим и для обычных HR-департаментов в нашем регионе.

Приятного чтения.



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

Мне иногда кажется, что преследование со стороны рекрутеров всех мастей является неотъемлемой частью бытности разработчика программного обеспечения. Я получаю по три-четыре письма в неделю на свой e-mail, постоянно отвечаю на телефонные звонки и даже получаю почту (знаете, эти старые-добрые пакеты, конверты, с такими марками на них), с предложениями вакансий по всей Европе.

Мои навыки пользуются спросом и мне кажется, я должен радоваться этому. Но есть проблема, и состоит она в том, что 99% всех попыток контакта со мной со стороны рекрутеров были тем или иным образом провалены. За 19 лет работы разработчиком ПО у меня сложилось не самое хорошее представления обо всех этих «возможностях», призывах «индустрии» и связанными со всем этим методами.

Так что, дамы и господа (рекрутеры), чтя стандартный стиль ваших сообщений, пожалуйста, ознакомьтесь с моим Top Five List некорректных моделей коммуникации рекрутеров с разработчиками программного обеспечения.
Total votes 88: ↑85 and ↓3+82
Comments59

Каково это — быть разработчиком, когда тебе сорок

Reading time18 min
Views229K
Примечание от переводчика:

Этот пост был написан и опубликован на Medium разработчиком приложений Адрианом Космачевским из Швейцарии. Кроме подготовки перевода его публикации, я также пригласил и самого автора, Адриана ( akosma ), на Хабр, для того, чтобы он смог лично ответить на любые вопросы участников сообщества, если таковые возникнут. Думаю, для общего удобства при общении в комментариях с ним стоит использовать английский (и, при желании, дублировать на русском).



Привет всем, я — сорокадвухлетний программист-самоучка, а это моя история.

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

image

Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 10 часов утра 6 октября 1997 года, в городе Оливос, к северу от Буэнос-Айреса, в Аргентине. Был понедельник. Не так давно я праздновал свой 24-й день рождения.

Мир в 1997 году


Тогда он был немного другим. На веб-сайтах не было предупреждений об использовании cookie. Новаторскими в сети были сайты вида Excite.com, а моим любимым поисковиком был AltaVista.

Мой электронный ящик имел вид kosmacze@sc2a.unige.ch и был расположен на личном веб-сайте, который размещался по адресу http://sc2a.unige.ch/~kosmacze. Тогда мы еще оплакивали принцессу Диану, а Стив Джобс только-только вернулся на роль CEO и убедил Microsoft «вбросить» в Apple Computer 150 миллионов долларов. Digital Equipment Corporation подала в суд на Dell, останки Че Гевары вернули на Кубу, только начался четвертый (!) сезон «Друзей». Был убит Джанни Версаче, скончались Мать Тереза, Рой Лихтенштейн и Жанна Кальман. Люди зависали за Final Fantasy 7 на PlayStation, будто бы были наркоманами, Би-Би-2 начал вещание телепузиков, а Кэмерон только собирался показать миру свой «Титаник».
Читать дальше →
Total votes 200: ↑194 and ↓6+188
Comments321

Архитектурные паттерны в iOS

Reading time14 min
Views199K

Введение в MVP, MVC, MVVM и VIPER. Что между ними общего и в чем разница.



Делаете все по MVC, а получается некрасиво? Сомневаетесь, переходить ли на MVVM? Слышали о VIPER, но не уверены, стоит ли оно того?

В этой статье я кратко рассмотрю некоторые популярные архитектурные паттерны в среде iOS и сравню их в теории и на практике. Больше информации вы найдете при переходе по ссылкам, указанным в тексте.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments18

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Works in
Date of birth
Registered
Activity