iOS Makes Me Hate
3.94K subscribers
1.16K photos
167 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Особенности диспетчеризации потоков и выполнение акторов

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

Прочитав статью можно понять насколько же в будущем использование Swift Concurrency поможет избежать выстрелов в колено
👍6
Вкратце, о всех кроссплатформенных инструментах

Украдено у Миши Рубанова
😁57👍1👎1😡1
iOS Makes Me Hate
Вкратце, о всех кроссплатформенных инструментах Украдено у Миши Рубанова
ну я тоже выскажусь по кроссплатформам:

1. У них если и будет успех, то в очень узких кейсах. Максимум 10% кода в проекте.

2. Как ни странно до сих пор сложно доказать продуктовую ценность. Ну вот вы потыкали КММ, РН, флаттер и что? А как доказать, что фичу быстрее сделали или поддержали? Сам не раз слышал требования от бизнеса про четкие метрики, но так и не нашел даже в интернетах.

3. Кроссплатформа очень хрупкая на совместимости с версиями операционных систем, языков, сред разработки. До сих пор никто не подсчитал сколько уходит времени на очередные адаптации к версиям.

Мой вердикт, кроссплатформа это и хорошо, но только в очень узких кейсах с жииииирной бизнес-логикой
👍24
iOS Makes Me Hate
ну я тоже выскажусь по кроссплатформам: 1. У них если и будет успех, то в очень узких кейсах. Максимум 10% кода в проекте. 2. Как ни странно до сих пор сложно доказать продуктовую ценность. Ну вот вы потыкали КММ, РН, флаттер и что? А как доказать, что фичу…
Блин, че вспомнил

Почти 5 лет назад на одной Тюменской сходке я уже рассказывал наш опыт перехода с реакт нэйтив на натив. И почему кроссплатформа была плохим выбором.

Правда потом спустя 2 года и натив под иос сдох. Но это, на мой взгляд, из-за ресурсных проблем найма…

В общем, все циклично. Каждые 5 лет приходит какаято кроссплатформа, а потом ее убивают и обратно…

Микрофон будто в задницу засунул.
😁7👍3
😎 SwiftUI — уже пора?

Начинаю делиться докладами с митапа.

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

Мы их называем Inner Source проекты. Где любые желающие могут взять интересные и полезные технологии, организовать разработку и шарить задачи между командами. Так улучшается культура и легко находить ресурсы. Когда-нибудь отдельно расскажу про это.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥5😁1
кто-то юзает copilot/chatgpt или другие нейросети в разработке? Расскажите, какие кейсы решаете? Встраиваете ли плагины в IDE?

интересует не только ответы на вопросы в чатботах тг, но и всякий автокодинг, снипеты, подсказки. Говорят андроид далеко вперед от нас ушел
👍16👎3
💳 Гармония статики и динамики: погружаемся в mergeable libraries

Лучший доклад по мнению зрителей. Я думал, что он будет немного сложным для аудитории, но оказался самым интересным. Думаю, это благодаря скиллу Саши рассказывать сложные вещи простым языком. Мне этому точно нужно поучиться)

Кстати, с Сашей мы знакомы давно. Он был моим руководителем, когда я работал в сберздоровье. Можно сказать, что он косвенно повлиял на создание этого канала, когда позвал меня читать доклады в "Цифровые привычки". Именно тогда создался этот канал для студентов того потока.

У Саши огромный опыт выступлений. Из последнего и свежего написал супер полезную статью "Как стать iOS-разработчиком?", которую вы уже скорее всего видели. Очень полезно знать критерии, которые пишут нанимающие менеджеры. А также ведет свой канал.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤‍🔥3
🔵 Топ 5 советов новичков

Пока готовится новая версия симулятора с собесом по SwiftUI, то решил описать список самых частых ошибок, с которыми на менторство приходят новички.

Многие советы кому-то покажутся банальными. Но избавиться от этих установок сложнее, чем кажется. Иногда я сам учусь на чужих ошибках. реже на своих 🤣.

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

4. Мотивация не главное. Основа роста — дисциплина. Нужно уметь составлять график и не пропускать его. Ты не улучшишь результат интуитивно и ситуативно занимаясь спортом, когда появится вдохновение. Учеба, спорт, карьера — все это научило, что стабильный рост важнее внезапных скачков.

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

2. Практика важнее теории. Зазубренная дока и вопросы с собесов это все круто, может быть кого-то и получится обмануть на плохом собесе на 30 минут. Но не стоит путать эрудицию с навыками. Собес — это возможность одурачить незнакомого тебе человека, а когда он тебя разгадает, то убежать в другую компанию, попутно крича что "навык собесов важнее всего".

На такой стратегии карьеру не построишь. На работе вы не будете играть в игру "Что? Где? Когда?", а писать код. Многие отлично говорят умные вещи, но попросишь их написать это в код — сыпятся. Я сам бывает из таких 🤡. А заученные знания никак не помогают нам решать задачи.

1. Читать доку, а не искать секреты. Главная проблема новичков — не уметь сопротивляться шуму. Везде каждый кричит, как сломал игру или имеет уникальный опыт для достижения успеха. Этот дешевый соблазн привлекает внимание. Страх упущенной выгоды заставляет отдавать деньги на курсы, закрытые чаты и бусти, когда же весь их контент лежит на поверхности. Никто от нас ничего не скрывает. Все лежит на первой полке и бесплатно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👎4❤‍🔥2😁1
Как учить переполненный мозг или гигиена мозга

Увидел статью у Вити и это правда одна из лучших статей за последние годы. Практика, пруфы и исследования.

Мозг — наш главный инструмент. И для меня халатное преступление захламлять его или тратить драгоценные ресурсы на пустую или глупую работу. Я пью кучу витаминов, потихоньку отказываюсь от алко и мяса. Занимаюсь саморазвитием и спортом ежедневно. Чувствую себя плохо, если проведу хоть один день непродуктивно. Особенно, если этот день нужен для восстановления сил. Не потому, что так "надо", или эта установка моего окружения, или я хочу получить похвалу от социума. Просто мне это начинает нравится.

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

После статьи чувствуешь сильный заряд энергии. Удаляю хлам, выхожу из лишних чатов и когда-нибудь снесу этот канал 👨‍🍳
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14👎4❤‍🔥3
💎 Новая версия симулятора (0.6.7)

Как вы могли заметить, было много дел с последнего релиза. Написания курса в яндекс, организация митапа. По его горячим следам сделал собес в стартап с SwiftUI.

Ставьте пятерки и оставляйте фидбэк 😘. С вашей помощью сделаем продукт еще лучше. Или заходите в чат и оставляйте предложения/замечания туда.

Новый релиз симулятора:
- Добавлен собес по SwiftUI
- Исправлены баги
- улучшена производительность и исправлены баги
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁4❤‍🔥3
🌴 Отпуск

Скоро у меня день рождения, а сейчас я ухожу на недолгий отпуск. Было много планов на этот год. Что-то получилось, что-то нет. Но одно я точно могу сказать.

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

Люблю подводить итоги. За этот год я:
⁃ Впервые поучавствовал в телеграм конкурсе и занял призовое место
⁃ Выпустил свою обучающую апку, которая оказалась в топ 3 апстора
⁃ Сменторил кучу людей, которые нашли или поменяли работу
⁃ Придумал, организовал и провел митап
⁃ Прошел испытания водой, огнем и 200 дней решения алгосов
- вошел в топ 50 по конкуру алгосов Яндекса
⁃ Выпустил образовательный курс с топовой компанией
⁃ Взял амбициозную ипотеку, которая вопреки многим стереотипам меня не сковала, а наоборот позволила еще больше рисковать и зарабатывать
Стал топ 1 иосником в своем же канале 😆

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

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

Считаю, что прошел репетицию для следующих масштабных и амбициозных целей. Моя философия жизни проста — оставить полезные и экологичные плоды после себя. Дальше больше.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47❤‍🔥12😁5👎1
О сложном UI и натурализация в iOS

Снова о кроссплатформе. Почему я уверен, что никогда не будет полной смены натива? А все просто. Посмотрите на игры.

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

Для них игровые консоли — это свой собственный рынок, со своим маркетплейсом, правилами и рамками. Уникальный дистрибьютор и установщик палк в колеса другим. Зачем мне звать сюда конкурентов, в свой же дом?

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

Дизайн — это уникальный язык. Конкурентное преимущество. В iOS дизайн всегда на порядок сложнее и лучше. Им приятнее пользоваться. Он создает эксклюзивы для той аудитории, которой это важно. Если ты сделаешь приложение только для андроида, то узнает о твоем существовании юзер айфона?

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

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

Единственная возможноть, иногда выносить общую бизнес логику как с кмм. Но опять же. Истории о нем скорее больше для тех.докладов, чем "как мы сделали продукт быстрее".
❤‍🔥19👍9👎3
Skip — фреймворк для кроссплатформы для иосеров

В комментах к прошлому посту скинули еще один инструмент, который позволяет написать андроид приложение на Swift в Kotlin.

Большой вопрос как это точно и без багов будет преобразовываться в нативный код... И чем это лучше chatGPT

Пока только у КМП что-то получается. И слава богам Джетбрейнс не лезет в UI.
👎8👍5😁3😡3
Forwarded from iOS Dev
🎉 Вышла тех-превью версия Skip — технологии для кроссплатформенных приложений на базе iOS!

По словам разработчика, Skip выступает в роли команды Android (как по мне, это слишком громко сказано), создавая эквивалентное приложение параллельно с iOS-версией.

Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin (и еще несколько лет назад Skip был бы невозможен).

Для анализа исходного кода используется SwiftSyntax, после чего код преобразуется в Kotlin, сохраняя даже комментарии.

Благодаря схожести языков, результат часто не отличается от Kotlin, который был бы написан нативно (но с оговорками).

🧑‍💻 Онлайн-playground, в котором можно попробовать возможности Skip.

📖 Документация.

И хотя поддержка API по-прежнему ограничена (будут сложности с внедрением SwiftData или, например, Firebase), все библиотеки Skip имеют открытый исходный код и разработчик приглашает поучаствовать в их улучшении.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁7❤‍🔥1
Верите ли, что эйпл когда-нибудь совершит свою очередную революцию и сделает лучшую кроссплатформу?
Anonymous Quiz
16%
Да
29%
Нет
10%
Никогда
38%
А зачем? Уже есть лучшая ОС
6%
Хз
👎14👍8❤‍🔥1
Немного о System Design для мобильных разрабов

Начал читать книгу о проектировании мобильных систем и поделюсь некоторыми выжимками. Для многих моб.апки это просто и легко. Это правда, пока ты делаешь MVP или просто рисуешь JSON'ы. Но как только ты выйдешь на уровень больших и сложных апок, то правила игры меняются.

🟡 Термин пришел к нам из бэкенда и чаще представляется с собесами. Обычно кандидату дают задачу "Как бы ты сделал фичу X?". На что он рисует диаграмы и перечисляет свои решения.

В мобильной разработке есть свои ограничения:
🔵Синхронизация офлайн данных с онлайном
🔵Обход сбоев приложения
🔵Недопустимость перегрузки сервера с клиента
🔵Уменьшение пересечений одних продуктовых флоу с другими
🔵Синхронизация данных между экранами и модулями
🔵Переиспользование функций между платформами и устройствами

📌Почему System Design важен?

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

⚡️ Частые челенджи для мобильных разрабов

🟢Общие компоненты должны соотвествовать стандартам компании
🟢Избыточные абстракции приводят к лишней сложности
🟢Over-engineering
🟢Слишком большое или слишком малое дублирование кода.
🟢Ловушки запутанного кода
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤‍🔥3😁2