Особенности диспетчеризации потоков и выполнение акторов
Интересная работа акторов с ассинхронным кодом, который вызывается из синхронного контекста. Где на уровне компиляции среда помогает нам избежать будущие ошибки.
Прочитав статью можно понять насколько же в будущем использование Swift Concurrency поможет избежать выстрелов в колено
Интересная работа акторов с ассинхронным кодом, который вызывается из синхронного контекста. Где на уровне компиляции среда помогает нам избежать будущие ошибки.
Прочитав статью можно понять насколько же в будущем использование Swift Concurrency поможет избежать выстрелов в колено
SwiftLee
Thread dispatching and Actors: understanding execution
Methods marked with @MainActor are not always executed on the main thread. It's essential to understand thread dispatching with actors.
👍6
iOS Makes Me Hate
Вкратце, о всех кроссплатформенных инструментах Украдено у Миши Рубанова
ну я тоже выскажусь по кроссплатформам:
1. У них если и будет успех, то в очень узких кейсах. Максимум 10% кода в проекте.
2. Как ни странно до сих пор сложно доказать продуктовую ценность. Ну вот вы потыкали КММ, РН, флаттер и что? А как доказать, что фичу быстрее сделали или поддержали? Сам не раз слышал требования от бизнеса про четкие метрики, но так и не нашел даже в интернетах.
3. Кроссплатформа очень хрупкая на совместимости с версиями операционных систем, языков, сред разработки. До сих пор никто не подсчитал сколько уходит времени на очередные адаптации к версиям.
Мой вердикт, кроссплатформа это и хорошо, но только в очень узких кейсах с жииииирной бизнес-логикой
1. У них если и будет успех, то в очень узких кейсах. Максимум 10% кода в проекте.
2. Как ни странно до сих пор сложно доказать продуктовую ценность. Ну вот вы потыкали КММ, РН, флаттер и что? А как доказать, что фичу быстрее сделали или поддержали? Сам не раз слышал требования от бизнеса про четкие метрики, но так и не нашел даже в интернетах.
3. Кроссплатформа очень хрупкая на совместимости с версиями операционных систем, языков, сред разработки. До сих пор никто не подсчитал сколько уходит времени на очередные адаптации к версиям.
Мой вердикт, кроссплатформа это и хорошо, но только в очень узких кейсах с жииииирной бизнес-логикой
👍24
iOS Makes Me Hate
ну я тоже выскажусь по кроссплатформам: 1. У них если и будет успех, то в очень узких кейсах. Максимум 10% кода в проекте. 2. Как ни странно до сих пор сложно доказать продуктовую ценность. Ну вот вы потыкали КММ, РН, флаттер и что? А как доказать, что фичу…
Блин, че вспомнил
Почти 5 лет назад на одной Тюменской сходке я уже рассказывал наш опыт перехода с реакт нэйтив на натив. И почему кроссплатформа была плохим выбором.
Правда потом спустя 2 года и натив под иос сдох. Но это, на мой взгляд, из-за ресурсных проблем найма…
В общем, все циклично. Каждые 5 лет приходит какаято кроссплатформа, а потом ее убивают и обратно…
Микрофон будто в задницу засунул.
Почти 5 лет назад на одной Тюменской сходке я уже рассказывал наш опыт перехода с реакт нэйтив на натив. И почему кроссплатформа была плохим выбором.
Правда потом спустя 2 года и натив под иос сдох. Но это, на мой взгляд, из-за ресурсных проблем найма…
В общем, все циклично. Каждые 5 лет приходит какаято кроссплатформа, а потом ее убивают и обратно…
YouTube
React-Native. Кроссплатформенная разработка. The Good, the Bad and the Ugly. Бондаренко Лев
в докладе будут рассмотрены плюсы и минусы разработки "кроссплатформы", или как небольшой командой JS разработчиков доставить продукт в короткие сроки
😁7👍3
Начинаю делиться докладами с митапа.
Тимур рассказал наш опыт, который собирали множество ребят. Сначала один человек из продуктовой команды начал потихоньку писать на SwiftUI, потом подхватили платформенные разработчики. И вот уже целое движение с армией для внутреннего проекта.
Мы их называем Inner Source проекты. Где любые желающие могут взять интересные и полезные технологии, организовать разработку и шарить задачи между командами. Так улучшается культура и легко находить ресурсы. Когда-нибудь отдельно расскажу про это.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
SwiftUI — уже пора? | Тимур Долотказин, Авито
SwiftUI шагает по планете уже 4 года. Пора ли уже переводить свои приложения на него или стоит подождать?
Тимур расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.
О спикере: Тимур — iOS Engineer…
Тимур расскажет про свой опыт перехода на новый (старый) фреймворк, подводные камни и выводы, к которым он пришёл.
О спикере: Тимур — iOS Engineer…
👍14❤🔥5😁1
кто-то юзает copilot/chatgpt или другие нейросети в разработке? Расскажите, какие кейсы решаете? Встраиваете ли плагины в IDE?
интересует не только ответы на вопросы в чатботах тг, но и всякий автокодинг, снипеты, подсказки. Говорят андроид далеко вперед от нас ушел
интересует не только ответы на вопросы в чатботах тг, но и всякий автокодинг, снипеты, подсказки. Говорят андроид далеко вперед от нас ушел
👍16👎3
Лучший доклад по мнению зрителей. Я думал, что он будет немного сложным для аудитории, но оказался самым интересным. Думаю, это благодаря скиллу Саши рассказывать сложные вещи простым языком. Мне этому точно нужно поучиться)
Кстати, с Сашей мы знакомы давно. Он был моим руководителем, когда я работал в сберздоровье. Можно сказать, что он косвенно повлиял на создание этого канала, когда позвал меня читать доклады в "Цифровые привычки". Именно тогда создался этот канал для студентов того потока.
У Саши огромный опыт выступлений. Из последнего и свежего написал супер полезную статью "Как стать iOS-разработчиком?", которую вы уже скорее всего видели. Очень полезно знать критерии, которые пишут нанимающие менеджеры. А также ведет свой канал.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Гармония статики и динамики: погружаемся в mergeable libraries |Александр Сычев Тинькофф Страхование
На WWDC 2023 компания Apple представила новое решение — mergeable libraries, Оно объединяет преимущества статических и динамических фреймворков. Александр рассмотрит их внутреннее устройство и разберёт, как можно интегрировать их в свои iOS-проекты. В ходе…
👍13❤🔥3
Пока готовится новая версия симулятора с собесом по 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
Как вы могли заметить, было много дел с последнего релиза. Написания курса в яндекс, организация митапа. По его горячим следам сделал собес в стартап с 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 — это не про технологии. Это про стиль и дизайн. Именно поэтому кроссплатформа никогда не заменит полностью, потому что специфика андроид разрабов не ассимилируется в среде. Как носитель языка с вечным акцентом.
Единственная возможноть, иногда выносить общую бизнес логику как с кмм. Но опять же. Истории о нем скорее больше для тех.докладов, чем "как мы сделали продукт быстрее".
Снова о кроссплатформе. Почему я уверен, что никогда не будет полной смены натива? А все просто. Посмотрите на игры.
Разработчики игровых консолей не заинтересованы создавать по-настоящему хорошие продукты для всех платформ сразу. Эксклюзивы всегда стараются быть демонстративно лучше во всем. А их порты на другие консоли выходят cпустя годы и с заметными недостатками. Как кто бы не пытался создать универсальный движок, но это не получалось и приходилось что-то дополнять под себя.
Для них игровые консоли — это свой собственный рынок, со своим маркетплейсом, правилами и рамками. Уникальный дистрибьютор и установщик палк в колеса другим. Зачем мне звать сюда конкурентов, в свой же дом?
Также и рынок приложений. У каждой мобильной платформы есть свои особенности. У iOS это впервую очередь дизайн. Соглашусь с ребятами из Dodo. У кого получилось повторить UI компоненты? У реакт нэйтива с его лагами? У флаттера, который сразу в глаза бросается? У кмм, который даже туда и не целится?
Дизайн — это уникальный язык. Конкурентное преимущество. В iOS дизайн всегда на порядок сложнее и лучше. Им приятнее пользоваться. Он создает эксклюзивы для той аудитории, которой это важно. Если ты сделаешь приложение только для андроида, то узнает о твоем существовании юзер айфона?
Дизайн даже в языке Swift. После которого многим неудобно писать на других языках.
Сам продукт apple — это не про технологии. Это про стиль и дизайн. Именно поэтому кроссплатформа никогда не заменит полностью, потому что специфика андроид разрабов не ассимилируется в среде. Как носитель языка с вечным акцентом.
Единственная возможноть, иногда выносить общую бизнес логику как с кмм. Но опять же. Истории о нем скорее больше для тех.докладов, чем "как мы сделали продукт быстрее".
❤🔥19👍9👎3
Skip — фреймворк для кроссплатформы для иосеров
В комментах к прошлому посту скинули еще один инструмент, который позволяет написать андроид приложение на Swift в Kotlin.
Большой вопрос как это точно и без багов будет преобразовываться в нативный код... И чем это лучше chatGPT
Пока только у КМП что-то получается. И слава богам Джетбрейнс не лезет в UI.
В комментах к прошлому посту скинули еще один инструмент, который позволяет написать андроид приложение на Swift в Kotlin.
Большой вопрос как это точно и без багов будет преобразовываться в нативный код... И чем это лучше chatGPT
Пока только у КМП что-то получается. И слава богам Джетбрейнс не лезет в UI.
Skip
Skip Documentation
Skip brings SwiftUI app development to Android
👎8👍5😁3😡3
Используете ли вы кроссплатформу на проекте?
Anonymous Poll
8%
Да, все ок
2%
Да, есть проблемы
4%
Да, терпимо
7%
Нет, но хотим
5%
Нет, ушли
34%
Нет, и не будем
39%
Я чистокровный нативщик
Самые технически сложные приложения в мобильной разработке?
Final Results
22%
Мессенджеры
26%
Банки
8%
Маркетплейсы
22%
Социальные сети
31%
Видео/аудио звонки
25%
Карты
46%
Фото и видеоредакторы
30%
AR/VR
8%
Другое
Forwarded from iOS Dev
По словам разработчика, Skip выступает в роли команды Android (как по мне, это слишком громко сказано), создавая эквивалентное приложение параллельно с iOS-версией.
Сердцем Skip является интеллектуальный транспилятор языка Swift в Kotlin (и еще несколько лет назад Skip был бы невозможен).
Для анализа исходного кода используется SwiftSyntax, после чего код преобразуется в Kotlin, сохраняя даже комментарии.
Благодаря схожести языков, результат часто не отличается от Kotlin, который был бы написан нативно (но с оговорками).
📖 Документация.
И хотя поддержка API по-прежнему ограничена (будут сложности с внедрением SwiftData или, например, Firebase), все библиотеки Skip имеют открытый исходный код и разработчик приглашает поучаствовать в их улучшении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13😁7❤🔥1
iOS Makes Me Hate
Skip — фреймворк для кроссплатформы для иосеров В комментах к прошлому посту скинули еще один инструмент, который позволяет написать андроид приложение на Swift в Kotlin. Большой вопрос как это точно и без багов будет преобразовываться в нативный код...…
Витя лучше расписал про Skip. Наконец заменим андроидеров?
😁12👍7❤🔥2
Верите ли, что эйпл когда-нибудь совершит свою очередную революцию и сделает лучшую кроссплатформу?
Anonymous Quiz
16%
Да
29%
Нет
10%
Никогда
38%
А зачем? Уже есть лучшая ОС
6%
Хз
👎14👍8❤🔥1
Ни дня без революций
Вообще, очень большой буст будет для индустрии, когда придут альтернативные сторы.
Верим, надеемся, ждем
Вообще, очень большой буст будет для индустрии, когда придут альтернативные сторы.
Верим, надеемся, ждем
Telegram
Код Дурова
🍏 Вот это номер, вот это революция! //
«Айфоны» с iOS 17.1 на борту научились устанавливать программы в обход App Store, выяснил и проверил «Код Дурова». Работает это при передаче файла .ipa (аналог .apk в Android) через AirDrop.
Но есть нюанс: приложение…
«Айфоны» с iOS 17.1 на борту научились устанавливать программы в обход App Store, выяснил и проверил «Код Дурова». Работает это при передаче файла .ipa (аналог .apk в Android) через AirDrop.
Но есть нюанс: приложение…
👍11👎5
Немного о System Design для мобильных разрабов
Начал читать книгу о проектировании мобильных систем и поделюсь некоторыми выжимками. Для многих моб.апки это просто и легко. Это правда, пока ты делаешь MVP или просто рисуешь JSON'ы. Но как только ты выйдешь на уровень больших и сложных апок, то правила игры меняются.
🟡 Термин пришел к нам из бэкенда и чаще представляется с собесами. Обычно кандидату дают задачу "Как бы ты сделал фичу X?". На что он рисует диаграмы и перечисляет свои решения.
В мобильной разработке есть свои ограничения:
🔵 Синхронизация офлайн данных с онлайном
🔵 Обход сбоев приложения
🔵 Недопустимость перегрузки сервера с клиента
🔵 Уменьшение пересечений одних продуктовых флоу с другими
🔵 Синхронизация данных между экранами и модулями
🔵 Переиспользование функций между платформами и устройствами
📌 Почему System Design важен?
Хорошая система не только должна делаться быстро, но и сокращать время разработки, поддержки и адаптации в будущем.
⚡️ Частые челенджи для мобильных разрабов
🟢 Общие компоненты должны соотвествовать стандартам компании
🟢 Избыточные абстракции приводят к лишней сложности
🟢 Over-engineering
🟢 Слишком большое или слишком малое дублирование кода.
🟢 Ловушки запутанного кода
Начал читать книгу о проектировании мобильных систем и поделюсь некоторыми выжимками. Для многих моб.апки это просто и легко. Это правда, пока ты делаешь MVP или просто рисуешь JSON'ы. Но как только ты выйдешь на уровень больших и сложных апок, то правила игры меняются.
В мобильной разработке есть свои ограничения:
Хорошая система не только должна делаться быстро, но и сокращать время разработки, поддержки и адаптации в будущем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤🔥3😁2