Привет! На связи 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
🤔 Развитие в 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 рассказывают как сделать простую апку с помощью известной сети.
Ждем разрабов в мусорке или учимся правильно задавать вопросы?
Недавно я проводил опрос как разрабы интегрировали революционные инструменты в жизнь. Некоторые писали или говорили, что уже не знают как без них работать. А до многих эти технологии так и не дошли.
В статье ребята из lamoda рассказывают как сделать простую апку с помощью известной сети.
Ждем разрабов в мусорке или учимся правильно задавать вопросы?
Хабр
ChatGPT-4 в помощь: используем AI в доработке простого iOS-приложения
Мне всегда было интересно, как AI-инструменты изменят трудовые будни программиста. Когда появился ChatGPT, я начал пробовать использовать его в работе, и он быстро стал для меня вспомогательным...
👍7
Правильные Atomic свойства
Как-то на интервью меня спросили как сделать правильный atomic класс. Был дан класс, в котором есть свойство с геттером и сеттером. Что с ним не так?
В теории, все ок. Только есть один нюанс. Я помнил о нем. По отдельности геттер и сеттер будут работать нормально, но если будет оператор +=, то начнется гонка.
Потом уже я вспомнил решение, которое помогает нам решить эту проблему — создать отдельный метод для мутации.
Дополнительно про атомарность:
- Swift Atomic Properties with Property Wrappers
- Atomic Properties in Swift
- Benchmarking Swift Locking APIs
Как-то на интервью меня спросили как сделать правильный 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 Properties in Swift
- Benchmarking Swift Locking APIs
www.objc.io
Swift Tip: Atomic Variables
Providing synchronized access to values
❤🔥7👍3👎2
Не зовите джунов и мидлов проводить сложные собесы
Ревьюер часто ошибается. У нас в компании есть обучение перед тем, как проводить собес. На каждой секции тебе надо 3 раза быть слушателем и 2 раза получить апрув под присмотром опытного ревьюера. Всего секций может быть 5. Быть хорошим интервьюером тоже навык.
Мне иногда ставят собесы, чтобы я оценивал тимлидов или техлидов. Хоть я и прошел весь отбор к собесам и провел уже >50 разных, без обучения таким собесам я отказываю. Одно дело собесить разрабов с небольшим опытом… Есть несколько причин:
1. Тимлидов должен оценивать опытный ревьюер тимлид или пара сеньоров
2. У нас с ними будет другой язык
Помимо четких односложных формулировок, опытный интервьюер должен обладать многими навыками. Где чаще софты не менее важны, чем харды . Часто бывает, что неопытные интервьюеры допускают ошибки при оценки кандидата. Они закапываются в незначительные детали, спорят о незадокументированных редких вещах или уходят в споры о теории. Это проблемы из-за малого практического опыта. В представлениях новичков есть свои проекции черного и белого.
Еще хуже, когда собеседование превращается не в лайтовый процесс оценки кандидата, а в стрессовую конкуренцию. Интервьюера может занести не туда и думать, что это интеллектуальная игра "Что? Где? Когда?" в которой он должен быть победителем.
Кто-то скажет, что методички помогают. Но часто нет. Методички всеми трактуются по-разному, даже если их четко прописать. Их будут игнорировать или забывать. А еще чаще видно, что автор задач в методичке закладывал один смысл, а менее опытный интервьюер или разработчик вложил свои идеи и домыслы.
Ревьюер часто ошибается. У нас в компании есть обучение перед тем, как проводить собес. На каждой секции тебе надо 3 раза быть слушателем и 2 раза получить апрув под присмотром опытного ревьюера. Всего секций может быть 5. Быть хорошим интервьюером тоже навык.
Мне иногда ставят собесы, чтобы я оценивал тимлидов или техлидов. Хоть я и прошел весь отбор к собесам и провел уже >50 разных, без обучения таким собесам я отказываю. Одно дело собесить разрабов с небольшим опытом… Есть несколько причин:
1. Тимлидов должен оценивать опытный ревьюер тимлид или пара сеньоров
2. У нас с ними будет другой язык
Помимо четких односложных формулировок, опытный интервьюер должен обладать многими навыками. Где чаще софты не менее важны, чем харды . Часто бывает, что неопытные интервьюеры допускают ошибки при оценки кандидата. Они закапываются в незначительные детали, спорят о незадокументированных редких вещах или уходят в споры о теории. Это проблемы из-за малого практического опыта. В представлениях новичков есть свои проекции черного и белого.
Еще хуже, когда собеседование превращается не в лайтовый процесс оценки кандидата, а в стрессовую конкуренцию. Интервьюера может занести не туда и думать, что это интеллектуальная игра "Что? Где? Когда?" в которой он должен быть победителем.
Кто-то скажет, что методички помогают. Но часто нет. Методички всеми трактуются по-разному, даже если их четко прописать. Их будут игнорировать или забывать. А еще чаще видно, что автор задач в методичке закладывал один смысл, а менее опытный интервьюер или разработчик вложил свои идеи и домыслы.
👍45
Fast Safe Mutable State
Старый, но интересный доклад про решения частых задач и устройство языка Swift:
🟡 Оценка сложности функций высшего порядка при разных контекстах
🟡 Оптимизация решений
🟡 Разбор частых проблем
🟡 Бенчмарки решений
🟡 Оптимизации с помощью Copy-On-Write
🟡 Анализ исходников языка и коллекций
Когда искал бронзу, а нашел золото
Старый, но интересный доклад про решения частых задач и устройство языка Swift:
Когда искал бронзу, а нашел золото
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Ben Cohen - Fast Safe Mutable State
👍18❤🔥2
8 лучших технологий управления временем
Про планирование и таймменеджменте говорят уже 10 лет и тяжело его назвать модным навыком. Уже есть множество техник и у каждого есть свои фавориты.
Про это рассказали уже во многих статьях и даже внедрили в обязательную программу высшего образования. Это обязательный софт скилл.
Назову ли я себя экспертом в планировании? Нет. Продолжаю ли я расписывать свой день и жить по расписанию? Да.
Недавно я решил улучшить этот навык и структурировать этот вопрос. Собрал, на мой взгляд, лучшие практики:
🔵 Принцип Парето
🔵 Матрица Эйзенхауэра
🔵 Mindmaps
🔵 Пирамида Франклина
🔵 Метод АБВГД
🔵 Задачи лягушек
🔵 Джедайские техники
🔵 Метод помидора
Про планирование и таймменеджменте говорят уже 10 лет и тяжело его назвать модным навыком. Уже есть множество техник и у каждого есть свои фавориты.
Про это рассказали уже во многих статьях и даже внедрили в обязательную программу высшего образования. Это обязательный софт скилл.
Назову ли я себя экспертом в планировании? Нет. Продолжаю ли я расписывать свой день и жить по расписанию? Да.
Недавно я решил улучшить этот навык и структурировать этот вопрос. Собрал, на мой взгляд, лучшие практики:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forbes.ru
Закон Парето, или правило 80/20: как достигать большего при минимальных усилиях
Иногда усердие не окупается, и мы получаем результат, далекий от ожидаемого. Всегда ли эти вещи соотносятся? Закон Парето (его еще называют правилом 80/20) заключается в том, что 20% усилий дают 80% результата. И если избавиться от факторов, которые
👍14👎6
Чистая архитектура для SwiftUI
Автор статьи говорит, что большинство архитектурных шаблонов уйдут в историю вместе с UIKit. Концептуальные и технические изменения не оставят никого в стороне:
🟢 MVVM новый общий стандарт
🟢 Координаторы тесно связаны с маршрутизацией
🟢 VIPER, VIP, RIB больше не имеют смысла
🟢 Хоть и кол-во слоев в Clean Architecture либерально, но чаще достаточно только три
Мне кажется, со временем мобильная разработка станет похожа на современный web, где понятие архитектурный шаблон сократилось до пары штук
Автор статьи говорит, что большинство архитектурных шаблонов уйдут в историю вместе с UIKit. Концептуальные и технические изменения не оставят никого в стороне:
Мне кажется, со временем мобильная разработка станет похожа на современный web, где понятие архитектурный шаблон сократилось до пары штук
Please open Telegram to view this post
VIEW IN TELEGRAM
Alexey Naumov
Clean Architecture for SwiftUI
Are VIPER, RIBs, MVVM, VIP, or MVC suitable for a SwiftUI project?
👍19👎10
MVU для SwiftUI
Об MVU я случайно узнал от андроид разрабов. Говорят, он уже 2 года как один из модных паттернов. Сразу пошел гуглить о нем и нашел статью, что паттерн стремительно набирает популярность в среде фронтенда, андроидов и геймдева.
MVU, популяризированный архитектурой Elm. В MVU модель определяет состояние приложения, представление отображает пользовательский интерфейс на основе состояния (модели), а функция обновления изменяет состояние на основе сообщений (таких как действия пользователя или ответы сервера). Этот однонаправленный поток данных обеспечивает предсказуемость пользовательского интерфейса и существенно упрощает отладку.
Еще один однонаправленный паттерн, который нам так не хватало.
Об MVU я случайно узнал от андроид разрабов. Говорят, он уже 2 года как один из модных паттернов. Сразу пошел гуглить о нем и нашел статью, что паттерн стремительно набирает популярность в среде фронтенда, андроидов и геймдева.
MVU, популяризированный архитектурой Elm. В MVU модель определяет состояние приложения, представление отображает пользовательский интерфейс на основе состояния (модели), а функция обновления изменяет состояние на основе сообщений (таких как действия пользователя или ответы сервера). Этот однонаправленный поток данных обеспечивает предсказуемость пользовательского интерфейса и существенно упрощает отладку.
Еще один однонаправленный паттерн, который нам так не хватало.
Medium
SwiftUI: Model View Update - Everything you need to know.
SwiftUI is essentially based on the MVU (Model-View-Update) pattern. In this pattern, the view observes observable variables to update…
👎14👍3
Что выведется в консоль?
Anonymous Quiz
16%
a, b, b, a
4%
nil, nil, b, a
8%
a, b, nil, nil,
45%
nil, nil, nil, nil
5%
Будет ошибка
22%
Посмотреть результат
👍10👎9
2# Что выведется в консоль ?
Anonymous Quiz
3%
a, b, nil, nil
10%
nil, b, b, nil
48%
a, b, b, a
11%
nil, nil, nil, nil
2%
nil, nil, b, a
3%
a, nil, nil, a
5%
будет ошибка
19%
посмотреть результат
👎11👍6😡6 1
Что выведет в консоль? #3
Anonymous Quiz
20%
a, b, b, a
3%
a, nil, nil, a
7%
nil, b, b, nil
35%
nil, b, nil, nil
12%
nil, nil, nil, nil
23%
Посмотреть результат
👍7👎7
Forwarded from Мобильная разработка
Если пропустили новость, то Ян «Hixie» Хиксон, фаундер и техлид Flutter, покинул Google
Новость грустная. Но что она значит на самом деле? Ведь, как сказал сам Hixie, OpenSource тем и хорош, что даже в этом случае он сможет продолжать работать над Flutter.
Скорее всего, последствия печальны не столько для Flutter сколько для Google. Разработчик из Apple Тим Снит подтвердил, что последняя неделя была сложной для команды Flutter, а в Google по непонятной причине не понимают ценность этого проекта и необходимость сохранения ресурсов его разработчиков.
«Любой негатив, который последнее время публикуют про ситуацию в команде Flutter, исходит от людей, которые хотели, чтобы их старшие руководители лучше распоряжались этим удивительным наследием» — считает разработчик.
Он так же рассказал: «Дело не в зарплате. Это разработчики, которые считают эту работу своим призванием. Это не взаимозаменяемые ресурсы, которые можно перераспределять по своему усмотрению. Я надеюсь, что Google наконец осознает, какими ценными активами она обладает, пока не стало слишком поздно. Часы тикают».
#flutter #google
Новость грустная. Но что она значит на самом деле? Ведь, как сказал сам Hixie, OpenSource тем и хорош, что даже в этом случае он сможет продолжать работать над Flutter.
Скорее всего, последствия печальны не столько для Flutter сколько для Google. Разработчик из Apple Тим Снит подтвердил, что последняя неделя была сложной для команды Flutter, а в Google по непонятной причине не понимают ценность этого проекта и необходимость сохранения ресурсов его разработчиков.
«Любой негатив, который последнее время публикуют про ситуацию в команде Flutter, исходит от людей, которые хотели, чтобы их старшие руководители лучше распоряжались этим удивительным наследием» — считает разработчик.
Он так же рассказал: «Дело не в зарплате. Это разработчики, которые считают эту работу своим призванием. Это не взаимозаменяемые ресурсы, которые можно перераспределять по своему усмотрению. Я надеюсь, что Google наконец осознает, какими ценными активами она обладает, пока не стало слишком поздно. Часы тикают».
#flutter #google
👍7👎2❤🔥1😡1
Реимплементация опционала с дженериком и Equatable
Сейчас, когда SwiftUI весь в дженериках, то вопросы о них стали звучать чаще. На собесах почти всегда уже просят написать свой опционал, а к нему добавить Equatable или Hashable. Почти все такие вопросы легко гуглятся. Но есть интересные статьи.
Самые частые вопросы, которые мне задавали давно и недавно:
🔵 Как написать свой Optional?
🔵 Как использовать Equatable, Comparable и Hashable протоколы?
🔵 Как ограничить дженерики протоколами
🔵 Как написать свой uwrap
🔵 Написать функцию, которая удаляет дубликаты
Пример не для прода, а скорее концептуальный
Cтатьи:
- Re-implement optionals in Swift
- GENERICS in Swift
Сейчас, когда SwiftUI весь в дженериках, то вопросы о них стали звучать чаще. На собесах почти всегда уже просят написать свой опционал, а к нему добавить Equatable или Hashable. Почти все такие вопросы легко гуглятся. Но есть интересные статьи.
Самые частые вопросы, которые мне задавали давно и недавно:
Пример не для прода, а скорее концептуальный
Cтатьи:
- Re-implement optionals in Swift
- GENERICS in Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😡3 1