Привет! Меня зовут Даниил Димов. Я основатель комьюнити EasySwift, работаю в Online Premier iOS разработчиком.
Я верю в то, что для нашего развития как мобильного разработчика, программиста, важно повышать насмотренность, расширять кругозор и усердно учиться. Проще всего это делать, читая статьи и книги, а так же смотреть IT подкасты. Поэтому я читаю много статей и книг про программирование, разработку и процессам , а самыми полезными материалами делюсь в этом канале. Так же каждую пятницу мы будем делать для Вас интерессный контент с мок-собеседованиями, подкастами и докладами.
Если какой-то пост был вам полезен – ставьте 👍, ❤️ и 🔥, мне это важно!
Навигация по постам:
#digest – регулярные подборки лучших материалов
#книги – рекомендации книг
#найм – все, связанное с подбором людей и собеседованиями
#развитие_себя – улучшение своих навыков
#люди – про все навыки, связанные с работой с людьми
#процессы – процессы разработки, управление сроками и скоупом
#доклады - доклады на различные темы
#собеседование - публичные мок-собеседования на iOS разработчика
Я верю в то, что для нашего развития как мобильного разработчика, программиста, важно повышать насмотренность, расширять кругозор и усердно учиться. Проще всего это делать, читая статьи и книги, а так же смотреть IT подкасты. Поэтому я читаю много статей и книг про программирование, разработку и процессам , а самыми полезными материалами делюсь в этом канале. Так же каждую пятницу мы будем делать для Вас интерессный контент с мок-собеседованиями, подкастами и докладами.
Если какой-то пост был вам полезен – ставьте 👍, ❤️ и 🔥, мне это важно!
Навигация по постам:
#digest – регулярные подборки лучших материалов
#книги – рекомендации книг
#найм – все, связанное с подбором людей и собеседованиями
#развитие_себя – улучшение своих навыков
#люди – про все навыки, связанные с работой с людьми
#процессы – процессы разработки, управление сроками и скоупом
#доклады - доклады на различные темы
#собеседование - публичные мок-собеседования на iOS разработчика
👍20❤7🔥2🤡2
iOS Такой 🍏 pinned «Привет! Меня зовут Даниил Димов. Я основатель комьюнити EasySwift, работаю в Online Premier iOS разработчиком. Я верю в то, что для нашего развития как мобильного разработчика, программиста, важно повышать насмотренность, расширять кругозор и усердно учиться.…»
Математические основы Auto Layout
Auto Layout — это система верстки. Прежде, чем углубиться в неё, поговорим о современной верстке вообще. Затем займемся Auto Layout — разберемся какую задачу он решает и как это делает. Рассмотрим особенности в имплементации Auto Layout в iOS, и попробуем выработать практические советы, которые могут помочь в работе с ним.
Auto Layout под капотом работают на уровне линейных уравнений. Системы линейных уравнений знакомы нам еще со школы — обозначаются фигурной скобкой, а их решение — уже без. Также у систем линейных уравнений есть сущности, которыми оперирует Auto Layout — ограничения. Обозначаются прямой линией.
Система линейных уравнений особенна тем, что над ней определена масса операций: складывание строк, умножение их на константы и т.д. Эти операции называются линейными преобразованиями, и с их помощью система приводится к произвольной форме.
Прелесть линейных преобразований в том, что они обратимы. Это подводит нас к интересной и довольно тонкой идее, с которой начинается вся современная верстка.
Более подробно читать тут
#digest
Auto Layout — это система верстки. Прежде, чем углубиться в неё, поговорим о современной верстке вообще. Затем займемся Auto Layout — разберемся какую задачу он решает и как это делает. Рассмотрим особенности в имплементации Auto Layout в iOS, и попробуем выработать практические советы, которые могут помочь в работе с ним.
Auto Layout под капотом работают на уровне линейных уравнений. Системы линейных уравнений знакомы нам еще со школы — обозначаются фигурной скобкой, а их решение — уже без. Также у систем линейных уравнений есть сущности, которыми оперирует Auto Layout — ограничения. Обозначаются прямой линией.
Система линейных уравнений особенна тем, что над ней определена масса операций: складывание строк, умножение их на константы и т.д. Эти операции называются линейными преобразованиями, и с их помощью система приводится к произвольной форме.
Прелесть линейных преобразований в том, что они обратимы. Это подводит нас к интересной и довольно тонкой идее, с которой начинается вся современная верстка.
Более подробно читать тут
#digest
👍7❤3🔥3🖕2
Разбираем ошибки начинающих iOS-разработчиков
В этой статье приведены несколько популярных ошибок начинающих iOS-разработчиков, чтобы вы могли не повторять их в своей работе. К чему они приводят и как их можно избежать. В статье разбирают с вёрстки, и до стратегии для хороших практик. Прочитав 20-минутный доклад, можно расширить свой кругозор и общее понимания для начинающих специалистов.
План статьи, который стоит придерживаться:
1. Вёрстка
2. Использование опционалов
3. Императивный/деклоративный стиль
4. Нейминг, общая структура приложения.
5. Использования ARC в приложении.
#digest #развитие_себя
В этой статье приведены несколько популярных ошибок начинающих iOS-разработчиков, чтобы вы могли не повторять их в своей работе. К чему они приводят и как их можно избежать. В статье разбирают с вёрстки, и до стратегии для хороших практик. Прочитав 20-минутный доклад, можно расширить свой кругозор и общее понимания для начинающих специалистов.
План статьи, который стоит придерживаться:
1. Вёрстка
2. Использование опционалов
3. Императивный/деклоративный стиль
4. Нейминг, общая структура приложения.
5. Использования ARC в приложении.
#digest #развитие_себя
👍11❤3🔥3👎2
Сеанс отладки iOS
Разработчики не идеальны. Даже лучшие разработчики в мире допускают ошибки при разработке приложений для iOS - это случается.
Эти ошибки в кодировании могут привести ко всевозможным проблемам, которые в конечном итоге могут повлиять на работу пользователя, а иногда и на основные функциональные возможности вашего приложения.
Вот почему отладка является такой важной частью жизненного цикла разработки программного обеспечения, поскольку выполняются различные тесты. Устранение ошибок имеет решающее значение для всех приложений, а не только для мобильных приложений, работающих на устройстве iOS. Отладка приложений одинаково важна для приложений Android, веб-приложений, macOS и любого другого программного обеспечения.
Предоставляю к прочтению хорошие статьи по отладке вашего приложения:
Cтатья к прочтению
Статья к прочтению
Видео к просмотру
#digest
Разработчики не идеальны. Даже лучшие разработчики в мире допускают ошибки при разработке приложений для iOS - это случается.
Эти ошибки в кодировании могут привести ко всевозможным проблемам, которые в конечном итоге могут повлиять на работу пользователя, а иногда и на основные функциональные возможности вашего приложения.
Вот почему отладка является такой важной частью жизненного цикла разработки программного обеспечения, поскольку выполняются различные тесты. Устранение ошибок имеет решающее значение для всех приложений, а не только для мобильных приложений, работающих на устройстве iOS. Отладка приложений одинаково важна для приложений Android, веб-приложений, macOS и любого другого программного обеспечения.
Предоставляю к прочтению хорошие статьи по отладке вашего приложения:
Cтатья к прочтению
Статья к прочтению
Видео к просмотру
#digest
🔥6❤4👍2👎2
Что почитать начинающему iOS разработчику?
Язык Swift прост, понятен и отлично подойдет как новичкам, так и опытным программистам. Чтобы начать писать код, вам потребуются только эта книга, компьютер и желание учиться. Все базовые концепции программирования и основы синтаксиса объясняются доступным языком, поэтому если вы никогда раньше не занимались разработкой, то эта книга – отличный старт. Теория чередуется с практическими примерами и кодом – так вы сразу сможете связать абстрактные понятия с реальными ситуациями. В каждой главе вас ждут тесты и домашние задания, которые помогут закрепить материал.
#книги
Язык Swift прост, понятен и отлично подойдет как новичкам, так и опытным программистам. Чтобы начать писать код, вам потребуются только эта книга, компьютер и желание учиться. Все базовые концепции программирования и основы синтаксиса объясняются доступным языком, поэтому если вы никогда раньше не занимались разработкой, то эта книга – отличный старт. Теория чередуется с практическими примерами и кодом – так вы сразу сможете связать абстрактные понятия с реальными ситуациями. В каждой главе вас ждут тесты и домашние задания, которые помогут закрепить материал.
#книги
👍12❤5👎3🔥3
Как локализовать все ваши iOS приложения на 20 языков за 5 минут
В современном мире спрос на мобильные приложения, которыми пользуются люди из разных стран и регионов, значительно увеличился. Для разработчиков важно сделать свои приложения доступными на нескольких языках. Локализация приложения может предложить много преимуществ:
- Расширение аудитории: Локализация вашего приложения вы можете охватить пользователей, которые не могут говорить на языке вашего приложения по умолчанию. Это может помочь вам подключиться на новые рынки и увеличить вашу пользовательскую базу.
- Улучшение пользовательского опыта: Пользователи с большей вероятностью будут использовать и наслаждаться приложением, которое доступно на их родном языке. Локализация вашего приложения может помочь вам обеспечить лучший пользовательский опыт, что может привести к лучшим обзорам, рейтингам и показателям удержания. Локализация вашего приложения может дать вам конкурентное преимущество в регионах, где ваши конкуренты, возможно, не локализовали свои приложения.
- Увеличение доходов: Локализация вашего приложения может привести к увеличению доходов, поскольку пользователи с большей вероятностью будут делать покупки в приложении или оплатить подписки, если приложение доступно на их родном языке.
Но есть также несколько проблем и потенциальных проблем, с которыми могут столкнуться разработчики. Локализация может занять много времени и ресурсов, особенно, для приложений с большим количеством контента и длинным списком поддерживаемых языков.
Но мы бы не были разработчиками, если бы пытались всегда все автоматизировать. Автоматизированная локализация может быстро и эффективно переводить контент, снизить затраты, связанные с ручным переводом, например, наем профессиональных переводчиков или выделение внутренних ресурсов для этой задачи. Это особенно эффективно, если приложение создается одним разработчиком. Читать про установку и настройку в данной статье.
В современном мире спрос на мобильные приложения, которыми пользуются люди из разных стран и регионов, значительно увеличился. Для разработчиков важно сделать свои приложения доступными на нескольких языках. Локализация приложения может предложить много преимуществ:
- Расширение аудитории: Локализация вашего приложения вы можете охватить пользователей, которые не могут говорить на языке вашего приложения по умолчанию. Это может помочь вам подключиться на новые рынки и увеличить вашу пользовательскую базу.
- Улучшение пользовательского опыта: Пользователи с большей вероятностью будут использовать и наслаждаться приложением, которое доступно на их родном языке. Локализация вашего приложения может помочь вам обеспечить лучший пользовательский опыт, что может привести к лучшим обзорам, рейтингам и показателям удержания. Локализация вашего приложения может дать вам конкурентное преимущество в регионах, где ваши конкуренты, возможно, не локализовали свои приложения.
- Увеличение доходов: Локализация вашего приложения может привести к увеличению доходов, поскольку пользователи с большей вероятностью будут делать покупки в приложении или оплатить подписки, если приложение доступно на их родном языке.
Но есть также несколько проблем и потенциальных проблем, с которыми могут столкнуться разработчики. Локализация может занять много времени и ресурсов, особенно, для приложений с большим количеством контента и длинным списком поддерживаемых языков.
Но мы бы не были разработчиками, если бы пытались всегда все автоматизировать. Автоматизированная локализация может быстро и эффективно переводить контент, снизить затраты, связанные с ручным переводом, например, наем профессиональных переводчиков или выделение внутренних ресурсов для этой задачи. Это особенно эффективно, если приложение создается одним разработчиком. Читать про установку и настройку в данной статье.
👍3❤2👎2🔥1
iOS-разработка со SnapKit
SnapKit — это библиотека, содержащая синтаксический сахар и обертки для более удобной работы с классом NSLayoutConstraint, позволяющим настроить взаимное расположение объектов интерфейса. Первый релиз SnapKit случился ещё в далёком 2016 и создавался под Swift 2.3; последний релиз 5.6.0 вышел в апреле 2022 и умеет работать с Swift 5.6.
В данных статьях давайте попробуем спасти логи от ошибок констрейнтов, увидите особенности и удобные подходы для работы с ограничениями, разберете краевые случаи и попробуете чуть глубже разобраться в тонкостях работы со SnapKit.
Статья к прочтению (рекомендую)
Статья к прочтению
#digest
SnapKit — это библиотека, содержащая синтаксический сахар и обертки для более удобной работы с классом NSLayoutConstraint, позволяющим настроить взаимное расположение объектов интерфейса. Первый релиз SnapKit случился ещё в далёком 2016 и создавался под Swift 2.3; последний релиз 5.6.0 вышел в апреле 2022 и умеет работать с Swift 5.6.
В данных статьях давайте попробуем спасти логи от ошибок констрейнтов, увидите особенности и удобные подходы для работы с ограничениями, разберете краевые случаи и попробуете чуть глубже разобраться в тонкостях работы со SnapKit.
Статья к прочтению (рекомендую)
Статья к прочтению
#digest
👍8❤2👎2🔥1
Вопросы на собеседование Senior iOS разработчик
Мы все знаем, что собеседование - сложный процесс. Итак, вы, вероятно, работаете полный рабочий день и каждый день решаете серьезные проблемы, выполняете регулярные задания, у вас ежедневные встречи, спринты или вы вовсе ищите впервые работу. То предлагаю, заглянуть в статью с нестандартными вопросами на позицию Senior iOS Dev.
1. Различие сильных и слабых ссылок в Objective-C.
2. Что такое покрытие кода?
3. Каковы различные состояния приложений в iOS?
4. В чем разница между Android и iOS?
5. Что такое глубокие ссылки в iOS?
6. В чем разница между потоком и процессом?
7. Что такое шаблоны проектирования?
8. Насколько хорошо вы понимаете назначение и сохранение ключевых слов?
9. Чем идентификатор пакета отличается от идентификатора приложения?
10. Какие типы данных существуют в Objective-C?
11. Каковы особенности языка программирования Swift?
12. Что такое UUID?
13. Что такое @synthesize в Objective C?
14. Что вы понимаете в KVC и KVO в Swift?
Являетесь ли вы профессиональным разработчиком или новичком, не стесняйтесь ознакомиться с вопросами и ответами на интервью для iOS в данной статье
Мы все знаем, что собеседование - сложный процесс. Итак, вы, вероятно, работаете полный рабочий день и каждый день решаете серьезные проблемы, выполняете регулярные задания, у вас ежедневные встречи, спринты или вы вовсе ищите впервые работу. То предлагаю, заглянуть в статью с нестандартными вопросами на позицию Senior iOS Dev.
1. Различие сильных и слабых ссылок в Objective-C.
2. Что такое покрытие кода?
3. Каковы различные состояния приложений в iOS?
4. В чем разница между Android и iOS?
5. Что такое глубокие ссылки в iOS?
6. В чем разница между потоком и процессом?
7. Что такое шаблоны проектирования?
8. Насколько хорошо вы понимаете назначение и сохранение ключевых слов?
9. Чем идентификатор пакета отличается от идентификатора приложения?
10. Какие типы данных существуют в Objective-C?
11. Каковы особенности языка программирования Swift?
12. Что такое UUID?
13. Что такое @synthesize в Objective C?
14. Что вы понимаете в KVC и KVO в Swift?
Являетесь ли вы профессиональным разработчиком или новичком, не стесняйтесь ознакомиться с вопросами и ответами на интервью для iOS в данной статье
👍7👎3❤🔥2🔥2❤1
iOS Responder Chain
Экземпляры UIResponder - это объекты, которые могут обрабатывать и реагировать на произвольные события. Многие вещи в iOS являются UIResponder, включая UIView, UIViewController, UIWindow, UIApplication и UIApplicationDelegate.
В iOS Responder Chain — это основа для всего, что касается событий (touch, motion).
Всем процессом iOS Responder Chain занимается UIKit, который динамично работает со связным списком UIResponder-ов. Не взирая на то, что iOS Responder Chain полностью контролируется UIKit-ом, его можно использовать для решения проблемы делегирования/общения. UIResponder действия похоже на одноразовые NotificationCenter.default.post.
📝Статья для прочтения
📝 Статья для прочтения
Экземпляры UIResponder - это объекты, которые могут обрабатывать и реагировать на произвольные события. Многие вещи в iOS являются UIResponder, включая UIView, UIViewController, UIWindow, UIApplication и UIApplicationDelegate.
В iOS Responder Chain — это основа для всего, что касается событий (touch, motion).
Всем процессом iOS Responder Chain занимается UIKit, который динамично работает со связным списком UIResponder-ов. Не взирая на то, что iOS Responder Chain полностью контролируется UIKit-ом, его можно использовать для решения проблемы делегирования/общения. UIResponder действия похоже на одноразовые NotificationCenter.default.post.
📝Статья для прочтения
📝 Статья для прочтения
👍7❤2👎2🔥1👏1
Как работает массив в Swift
Массив — это набор элементов одного типа, которые можно устанавливать и извлекать через непрерывный ряд целых чисел, так называемые индексы.
Эти индексы, которые в большинстве компьютерных языков начинаются с нуля, определяют, где в массиве происходит действие.
О массивах нужно знать три вещи:
1. Во-первых, массивы могут содержать практически все, что угодно: числа, строки, объекты и даже другие массивы.
2. Во-вторых, массивы имеют фиксированный размер. Вы не видите этого в Swift, потому что в Swift, когда мы создаем множество, мы не указываем его размер. Но во многих других компьютерных языках при инициализации массива вы должны дать ему начальный размер.
3. В-третьих, у массивов есть уникальная возможность случайного доступа к данным через индекс
Вывод:
1. Массив имеет фиксированный размер.
2. Рандомный доступ О(1).
3. Вставка/ удаление – О(n).
4. Массивы могут сокращаться и расти О(n).
5. Swift проделывает большую работу за нас при создании массива.
#digest
Массив — это набор элементов одного типа, которые можно устанавливать и извлекать через непрерывный ряд целых чисел, так называемые индексы.
Эти индексы, которые в большинстве компьютерных языков начинаются с нуля, определяют, где в массиве происходит действие.
О массивах нужно знать три вещи:
1. Во-первых, массивы могут содержать практически все, что угодно: числа, строки, объекты и даже другие массивы.
2. Во-вторых, массивы имеют фиксированный размер. Вы не видите этого в Swift, потому что в Swift, когда мы создаем множество, мы не указываем его размер. Но во многих других компьютерных языках при инициализации массива вы должны дать ему начальный размер.
3. В-третьих, у массивов есть уникальная возможность случайного доступа к данным через индекс
Вывод:
1. Массив имеет фиксированный размер.
2. Рандомный доступ О(1).
3. Вставка/ удаление – О(n).
4. Массивы могут сокращаться и расти О(n).
5. Swift проделывает большую работу за нас при создании массива.
#digest
👍9❤3👎2🔥1
Ребята, всем привет!
В это воскресенье у нас первое интервью на канале. Гость - Роман Галь. Head of Mobile TradingView
Сделаем круглый стол, и разберем следующие темы:
Как устроиться на работу джуну
• Как преподнести своё решение тимлиду и коллегам
• Как совмещать работу, учёбу и отдых
• Как навести порядок в процессах в команде
В беседе примут участие:
1) Сергей Ирбеткин, iOS Lead РНКБ Банка.
2) Максим Анохин, Senior iOS Санлайт.
3) ну и я тоже поучаствую 🙂
Встречаемся в 17-00 по Москве в воскресенье 26 марта по ссылке.
В это воскресенье у нас первое интервью на канале. Гость - Роман Галь. Head of Mobile TradingView
Сделаем круглый стол, и разберем следующие темы:
Как устроиться на работу джуну
• Как преподнести своё решение тимлиду и коллегам
• Как совмещать работу, учёбу и отдых
• Как навести порядок в процессах в команде
В беседе примут участие:
1) Сергей Ирбеткин, iOS Lead РНКБ Банка.
2) Максим Анохин, Senior iOS Санлайт.
3) ну и я тоже поучаствую 🙂
Встречаемся в 17-00 по Москве в воскресенье 26 марта по ссылке.
👍13🔥6❤3🤡2
За год в российском IT стало на пятую часть меньше вакансий, а количество резюме выросло более чем на треть
По данным Исследовательского центра SuperJob:
1. Зарплаты в IT в Москве за год выросли на 11,8%. В прошлом году рост был рекорд роста в 21.1%.
2. В России за год вакансий стало меньше на 19%. Количество резюме, наоборот, увеличилось на 38%.
3. В Москве за год вакансий стало меньше на 25%, а количество резюме увеличилось на 47%.
И что: IT-сфера сегодня имеет высокий порог вхождения, в приоритете — практический опыт. Зарплаты middle- и senior-разработчиков продолжают расти. При этом снизились зарплатные предложения для junior-специалистов.
Большинство работодателей не публикует требования к образованию в вакансиях для разработчиков. Например, среди вакансий для программистов требование о наличии высшего образования содержат лишь 25—30%. Пожалуй, только госкорпорации и крупные компании с госучастием не спешат отказываться от этого требования.
Однако чтобы построить карьеру в IT и вырасти до должности системного архитектора, руководителя IT-отдела, директора IT-департамента высшее образование по-прежнему — обязательное требование.
#digest #люди
По данным Исследовательского центра SuperJob:
1. Зарплаты в IT в Москве за год выросли на 11,8%. В прошлом году рост был рекорд роста в 21.1%.
2. В России за год вакансий стало меньше на 19%. Количество резюме, наоборот, увеличилось на 38%.
3. В Москве за год вакансий стало меньше на 25%, а количество резюме увеличилось на 47%.
И что: IT-сфера сегодня имеет высокий порог вхождения, в приоритете — практический опыт. Зарплаты middle- и senior-разработчиков продолжают расти. При этом снизились зарплатные предложения для junior-специалистов.
Большинство работодателей не публикует требования к образованию в вакансиях для разработчиков. Например, среди вакансий для программистов требование о наличии высшего образования содержат лишь 25—30%. Пожалуй, только госкорпорации и крупные компании с госучастием не спешат отказываться от этого требования.
Однако чтобы построить карьеру в IT и вырасти до должности системного архитектора, руководителя IT-отдела, директора IT-департамента высшее образование по-прежнему — обязательное требование.
#digest #люди
🔥8👍2👎2👏1
Bottom sheet: Custom transitioning
Современные требования к дизайну мобильных приложений всё чаще подкидывают задачи по отображению контента со сложным поведением. Для его реализации необходимо понимание того, как работают кастомные презентация и транзишены.
Эта статья подробно описывает работу кастомного transitioning delegate для отображения любого контента на экране в виде bottom sheet. Такое отображение подразумевает, что контроллер на экране занимает по высоте только область необходимую и достаточную, чтобы уместить весь содержащийся в нём контент.
#digest
Современные требования к дизайну мобильных приложений всё чаще подкидывают задачи по отображению контента со сложным поведением. Для его реализации необходимо понимание того, как работают кастомные презентация и транзишены.
Эта статья подробно описывает работу кастомного transitioning delegate для отображения любого контента на экране в виде bottom sheet. Такое отображение подразумевает, что контроллер на экране занимает по высоте только область необходимую и достаточную, чтобы уместить весь содержащийся в нём контент.
#digest
👍17🔥3❤2💩2
Я выбрал язык программирования с помощью икигаи, коучей и рефлексии — и это сработало
Для ребят, которые только вкатываются или планируют изучать программирование, обязательно встает вопрос о том, какой язык учить? С чего мне начать? Покупать ли курсы?
Автор данной статьи подробно и интерессно рассказывает о своем пути изучения языка программирования и делится советами, как правильно выстраивать свой путь.
План статьи:
- Просто выбирать язык бесполезно — нужно искать направление
- Метод психолога сократил 9 направлений до 3
- 4 вопроса, которые помогли мне выбрать одно направление
В соотвествии с выбранным направлением, пониманием чем вы хотите заниматься, стоит выбрать язык программирования. Прочтение данной статьи поможет Вам сократить количество направлений до 3–4. После по каждому направлению Вы ответите на четыре вопроса: то ли это направление, которое я люблю; востребовано ли оно в мире, смогу ли я на этом деле заработать и умею ли я этим заниматься.
#люди #развития_себя
Для ребят, которые только вкатываются или планируют изучать программирование, обязательно встает вопрос о том, какой язык учить? С чего мне начать? Покупать ли курсы?
Автор данной статьи подробно и интерессно рассказывает о своем пути изучения языка программирования и делится советами, как правильно выстраивать свой путь.
План статьи:
- Просто выбирать язык бесполезно — нужно искать направление
- Метод психолога сократил 9 направлений до 3
- 4 вопроса, которые помогли мне выбрать одно направление
В соотвествии с выбранным направлением, пониманием чем вы хотите заниматься, стоит выбрать язык программирования. Прочтение данной статьи поможет Вам сократить количество направлений до 3–4. После по каждому направлению Вы ответите на четыре вопроса: то ли это направление, которое я люблю; востребовано ли оно в мире, смогу ли я на этом деле заработать и умею ли я этим заниматься.
#люди #развития_себя
👍12❤2👎2🔥2👏1
Введение в Git Merge и Git Rebase: зачем и когда их использовать
Git Merge и Git Rebase преследуют одну и ту же цель. Они предназначены для интеграции изменений из одной ветки в другую. Хотя конечная цель одинаковая, принципы работы разные.
Некоторые считают, что вы всегда должны использовать Rebase, другие предпочитают Merge. В этом есть свои плюсы и минусы.
Git Merge
Слияние — обычная практика для разработчиков, использующих системы контроля версий. Независимо от того, созданы ли ветки для тестирования, исправления ошибок или по другим причинам, слияние фиксирует изменения в другом месте. Слияние принимает содержимое ветки источника и объединяет их с целевой веткой. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
Плюсы:
- простота
- сохраняет полную историю и хронологический порядок
- поддерживает контекст ветки
Минусы:
- история коммитов может быть заполнена (загрязнена) множеством коммитов;
- отладка с использованием git bisect может стать сложнее.
Git Rebase
Rebase — еще один способ перенести изменения из одной ветки в другую. Rebase сжимает все изменения в один «патч». Затем он интегрирует патч в целевую ветку.
В отличие от слияния, перемещение перезаписывает историю, потому что она передает завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.
Плюсы:
- Упрощает потенциально сложную историю
- Упрощение манипуляций с единственным коммитом
- Избежание слияния коммитов в занятых репозиториях и ветках
- Очищает промежуточные коммиты, делая их одним коммитом, что полезно для DevOps команд
Минусы:
- Сжатие фич до нескольких коммитов может скрыть контекст
- Перемещение публичных репозиториев может быть опасным при работе в команде
- Появляется больше работы
- Для восстановления с удаленными ветками требуется принудительный пуш. Это приводит к обновлению всех веток, имеющих одно и то же имя, как локально, так и удаленно, и это ужасно.
#digest
Git Merge и Git Rebase преследуют одну и ту же цель. Они предназначены для интеграции изменений из одной ветки в другую. Хотя конечная цель одинаковая, принципы работы разные.
Некоторые считают, что вы всегда должны использовать Rebase, другие предпочитают Merge. В этом есть свои плюсы и минусы.
Git Merge
Слияние — обычная практика для разработчиков, использующих системы контроля версий. Независимо от того, созданы ли ветки для тестирования, исправления ошибок или по другим причинам, слияние фиксирует изменения в другом месте. Слияние принимает содержимое ветки источника и объединяет их с целевой веткой. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
Плюсы:
- простота
- сохраняет полную историю и хронологический порядок
- поддерживает контекст ветки
Минусы:
- история коммитов может быть заполнена (загрязнена) множеством коммитов;
- отладка с использованием git bisect может стать сложнее.
Git Rebase
Rebase — еще один способ перенести изменения из одной ветки в другую. Rebase сжимает все изменения в один «патч». Затем он интегрирует патч в целевую ветку.
В отличие от слияния, перемещение перезаписывает историю, потому что она передает завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.
Плюсы:
- Упрощает потенциально сложную историю
- Упрощение манипуляций с единственным коммитом
- Избежание слияния коммитов в занятых репозиториях и ветках
- Очищает промежуточные коммиты, делая их одним коммитом, что полезно для DevOps команд
Минусы:
- Сжатие фич до нескольких коммитов может скрыть контекст
- Перемещение публичных репозиториев может быть опасным при работе в команде
- Появляется больше работы
- Для восстановления с удаленными ветками требуется принудительный пуш. Это приводит к обновлению всех веток, имеющих одно и то же имя, как локально, так и удаленно, и это ужасно.
#digest
👍16👎2❤1🔥1
Ребята, всем привет!
В это воскресенье у нас очередное интервью на канале. Гость - Сергей Гнатюк. iOS Developer, основатель Питерского Coffee&Code, а также популяризатор комьюнити.
Мы с ним хотим пообщаться и поспрашивать его за:
• iOS Разработку, учебу и развитие
• Что такое Coffee&Code и будущее сообщества
• Текущее положение на рынке, и что если не iOS.
В беседе примут участие:
1) Сергей Ирбеткин, iOS Lead РНКБ Банка.
2) Максим Анохин, Senior iOS Санлайт.
3) И конечно же я 🙂
Встречаемся в 18-00 по Москве в воскресенье 2 апреля по ссылке.
#интервью #люди
В это воскресенье у нас очередное интервью на канале. Гость - Сергей Гнатюк. iOS Developer, основатель Питерского Coffee&Code, а также популяризатор комьюнити.
Мы с ним хотим пообщаться и поспрашивать его за:
• iOS Разработку, учебу и развитие
• Что такое Coffee&Code и будущее сообщества
• Текущее положение на рынке, и что если не iOS.
В беседе примут участие:
1) Сергей Ирбеткин, iOS Lead РНКБ Банка.
2) Максим Анохин, Senior iOS Санлайт.
3) И конечно же я 🙂
Встречаемся в 18-00 по Москве в воскресенье 2 апреля по ссылке.
#интервью #люди
👍14🔥5❤3🤡2
Доступный MVVM на хакнутых экстеншенах
MVVM успешного программиста должен включать в себя, помимо реализации самого паттерна, решение для управления зависимостями. В яблочном мире паттерн, придуманный в Microsoft, чувствует себя немного иностранцем, и его реализация потребует от вас дополнительных усилий.
В данной статье вы будете на практике рассматривать данный архитектурный паттерн и создавать свое мини приложение, на примере которого рассмотрите все тонкости и подводные камни. Это приложение будет состоять из одного-единственного экрана, отображающего список заказов.
#digest
MVVM успешного программиста должен включать в себя, помимо реализации самого паттерна, решение для управления зависимостями. В яблочном мире паттерн, придуманный в Microsoft, чувствует себя немного иностранцем, и его реализация потребует от вас дополнительных усилий.
В данной статье вы будете на практике рассматривать данный архитектурный паттерн и создавать свое мини приложение, на примере которого рассмотрите все тонкости и подводные камни. Это приложение будет состоять из одного-единственного экрана, отображающего список заказов.
#digest
👍7🥴5👎2❤1🔥1
Шаблон координатора с TabBar контроллером
Шаблон координатора - это шаблон в iOS, отвечающий за управление потоками приложений и навигацию между ViewControllers. Это помогает сделать навигационные потоки более управляемыми и более многократно используемыми, а также позволяет нам настраивать их по мере необходимости.
В данной статье автор показывает как можно это реализовать, используя наиболее распространенные потоки: поток входа и основной поток(который включает TabBar контроллер). Используя координатор, мы можем определять потоки приложений и управлять навигацией между ViewController. Читать и смотреть код, в данной статье
#digest
Шаблон координатора - это шаблон в iOS, отвечающий за управление потоками приложений и навигацию между ViewControllers. Это помогает сделать навигационные потоки более управляемыми и более многократно используемыми, а также позволяет нам настраивать их по мере необходимости.
В данной статье автор показывает как можно это реализовать, используя наиболее распространенные потоки: поток входа и основной поток(который включает TabBar контроллер). Используя координатор, мы можем определять потоки приложений и управлять навигацией между ViewController. Читать и смотреть код, в данной статье
#digest
👍16❤2🥴2🔥1