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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Я предал яблокодрочеров

Смотрю планшет хуавей с harmony os и в целом не дурно. Единственный момент это чувство подделки.

UI и UX бросается в глаза, хоть очень старается. Эффект зловещей долины. Если уж делать что-то, то лучше или чуть по-другому . А копирка чужого успеха как-то дешево выглядит
👎43❤‍🔥3😡1
5 основных Property Wrappers SwiftUI и как их эффективно использовать

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

На собеседованиях уже активно спрашивают SwiftUI и Swift Concurrency. Прям отдельными блоками с лайфкодингом. Будто держали методичку с вопросами заранее. Мобильная разработка становится еще сложнее из-за кучи новых технологий. Опыт становится не только вертикальный, но и горизонтальный. Для нас это хорошо.

Самое время начать с базы. Какую базу вы бы спрашивали для SwiftUI?
👍5
Две одинаковые строки в Swift. Или нет?

И снова рубрика "Чудеса дизайна языка". Многими считается, что строки в Swift сделаны правильней всего. А кто-то так не считает. Об этом часто спорят на литкоде, когда некоторые общие решения не подходят для Swift.

Можно бесконечно спорить, но в нем есть много специфик, которые необходимо знать. Например, как правильно сравнить две одинаковые строки
👎22❤‍🔥5👍5
Узнал шок контент, после которого мир не станет прежним:

1. Самокат сделан на react native
2. Сбермегамаркет на нативе

проснитесь. Как получилось так, что рн выглядит лучше натива?
👎27👍10😡7
Лучшие компании для карьеры иос-разработчиком?
Anonymous Poll
7%
2ГИС
17%
Ozon
28%
Avito
32%
Yandex
10%
Сбер
37%
Тинькофф
3%
Wildberries
5%
MTS
38%
Другое
👎22👍1
Почему Kotlin Multiplatform не добьется успеха

Известный разработчик и автор делится мнением что:

👉 Разработчики не хотят менять стек, особенно iOS разработчики
👉 Уже было много попыток сделать это
👉 Разработчикам надо знать несколько языков и платформ, но хороших разработчиков-полиглотов очень мало
👉 Сложность мультиплатформенных библиотек и SDK либо они имеют мало функционала
👉 Компании с сильными инженерами только смогут успешно применить KMP, а это высокие зарплаты

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

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

Некоторые ютуберы и блогеры, у которых платные курсы по кмм, будто подпитывают этот шейминг и цитата "не уйдешь со свифта — уйдешь на помойку". Иноагенты Авроры? DevRel Jetbrains? Будто формируется радикальное движение ненавистников эпл и киперов своего бизнеса, а не любителей других технологий.

Давайте не накалять и жить дружно.
👍40👎5
Привет! На связи Podlodka iOS Crew — онлайн-конференция для мобильных разработчиков.

🤔 Развитие в IT порой напоминает блуждание по лабиринту. Куда свернуть, какой путь выбрать? C джунами всё понятно — нужно растить грейд до middle и senior, но что делать дальше? 

📈 Как правильно выстроить карьеру iOS-разработчика — вот основная тема нового сезона, который стартует 27 ноября.

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

🔹 Помогут составить карьерный роадмап — найти точки роста, источники вдохновения, преодолеть ментальные барьеры. 
🔹 Объяснят, как привести pet-проект к результату в 10к пользователей в месяц.
🔹 Обсудят, как работать в зарубежных компаниях в разных частях мира на круглом столе.

🎁 Бонус: новый формат Podlodka Lightning Talks. Это короткие авторские видео от экспертов iOS-разработки о hard и soft-навыках.

Купить билет можно на сайте: https://podlodka.io/ioscrew

Реклама. ИП Толстая Елена Петровна ИНН:507503278104 erid:2SDnjcLtQHW
👍7👎6😡2❤‍🔥1
Лучшие компании для карьеры иос-разработчиком? ч. 2
Anonymous Poll
38%
Dodo
3%
МойОфис
17%
Альфа
31%
VK
7%
Касперский
2%
Совкомбанк
2%
Билайн
1%
Теле2
38%
Другое
👎26👍9
This media is not supported in your browser
VIEW IN TELEGRAM
Прикольная фича SwiftUI с автоматической грамматикой
👍53❤‍🔥1
ChatGPT для iOS разрабов

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

В статье ребята из lamoda рассказывают как сделать простую апку с помощью известной сети.

Ждем разрабов в мусорке или учимся правильно задавать вопросы?
👍7
Правильные Atomic свойства

Как-то на интервью меня спросили как сделать правильный atomic класс. Был дан класс, в котором есть свойство с геттером и сеттером. Что с ним не так?


final class Atomic<Value> {
private let queue = DispatchQueue(
label: "com.test.atomic"
)
private var value: Value

var wrappedValue: Value {
get { return queue.sync { value } }
set { queue.sync { value = newValue } }
}
}


В теории, все ок. Только есть один нюанс. Я помнил о нем. По отдельности геттер и сеттер будут работать нормально, но если будет оператор +=, то начнется гонка.

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

Дополнительно про атомарность:
- Swift Atomic Properties with Property Wrappers
- Atomic Pro
perties in Swift
- Benchmarking Swif
t Locking APIs
❤‍🔥7👍3👎2
Не зовите джунов и мидлов проводить сложные собесы

Ревьюер часто ошибается. У нас в компании есть обучение перед тем, как проводить собес. На каждой секции тебе надо 3 раза быть слушателем и 2 раза получить апрув под присмотром опытного ревьюера. Всего секций может быть 5. Быть хорошим интервьюером тоже навык.

Мне иногда ставят собесы, чтобы я оценивал тимлидов или техлидов. Хоть я и прошел весь отбор к собесам и провел уже >50 разных, без обучения таким собесам я отказываю. Одно дело собесить разрабов с небольшим опытом… Есть несколько причин:
1. Тимлидов должен оценивать опытный ревьюер тимлид или пара сеньоров
2. У нас с ними будет другой язык

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

Еще хуже, когда собеседование превращается не в лайтовый процесс оценки кандидата, а в стрессовую конкуренцию. Интервьюера может занести не туда и думать, что это интеллектуальная игра "Что? Где? Когда?" в которой он должен быть победителем.

Кто-то скажет, что методички помогают. Но часто нет. Методички всеми трактуются по-разному, даже если их четко прописать. Их будут игнорировать или забывать. А еще чаще видно, что автор задач в методичке закладывал один смысл, а менее опытный интервьюер или разработчик вложил свои идеи и домыслы.
👍45
Fast Safe Mutable State

Старый, но интересный доклад про решения частых задач и устройство языка Swift:
🟡Оценка сложности функций высшего порядка при разных контекстах
🟡Оптимизация решений
🟡Разбор частых проблем
🟡Бенчмарки решений
🟡Оптимизации с помощью Copy-On-Write
🟡Анализ исходников языка и коллекций

Когда искал бронзу, а нашел золото
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤‍🔥2
8 лучших технологий управления временем

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

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

🔵Принцип Парето
🔵Матрица Эйзенхауэра
🔵Mindmaps
🔵Пирамида Франклина
🔵Метод АБВГД
🔵Задачи лягушек
🔵Джедайские техники
🔵Метод помидора
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14👎6
Чистая архитектура для SwiftUI

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

🟢 MVVM новый общий стандарт
🟢 Координаторы тесно связаны с маршрутизацией
🟢 VIPER, VIP, RIB больше не имеют смысла
🟢 Хоть и кол-во слоев в Clean Architecture либерально, но чаще достаточно только три

Мне кажется, со временем мобильная разработка станет похожа на современный web, где понятие архитектурный шаблон сократилось до пары штук
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19👎10
MVU для SwiftUI

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

MVU, популяризированный архитектурой Elm. В MVU модель определяет состояние приложения, представление отображает пользовательский интерфейс на основе состояния (модели), а функция обновления изменяет состояние на основе сообщений (таких как действия пользователя или ответы сервера). Этот однонаправленный поток данных обеспечивает предсказуемость пользовательского интерфейса и существенно упрощает отладку.

Еще один однонаправленный паттерн, который нам так не хватало.
👎14👍3
👎16👍4
👎10👍5