#swiftlint
Установил на проект swiflint + swiftformat и хочу написать об этом. В основном хочу пару подводных подсветить, может кому сэкономит время
1) Сначала устанавливаем swiftlint/swiftformat. В гугле есть вся документация, ставим через homebrew + в target скрипты пишем, тут объяснять ничего не надо
2) Сначала ставим скрипт только на swiftlint дабы не сломать проект.
3) Настройки конфигурации находятся в файле .swiftlint в корне проекта (в таргет включать не обязательно), конкретно моменты которые могут сэкономить время:
a) Ищем какой-нибудь yaml файл и ставим его, потом будем под себя править. Вот этот например
b) Смотрим какие выдает ошибки, есть три пути шо делать с этим: фиксим их, отключаем через disabled_rules либо правим параметры, документацию ищем просто гугля название ошибки, на сайте realm написана документация, в примере можете увидеть. Есть еще четвертый путь отключить локально через swiftlint:disable
c) Некоторые правила как я понял по дефолту отключены (почему-то) и нужно их написать в opt_in_rules, конкретно я вносил force_unwrapping и force_try, без этого не работало чето
По идеи на этом моменте swiftlint настроен, идем к свифтформату.
1) Добавляем скрипт как в документации и создаем файл .swiftformat, копируя откуда-нибудь. Например отсюда
2) Главные правила: обязательно сначала кидаем в --exclude то что не нужно форматировать. Скорей всего это Pods/Submodules и т.п
3) Насчет правил: есть вот этот файл где написаны главные правила. Идем по следующей логике, к примеру нужно убирать запятые в ненужных местах, пишем в поиске "comma" и смотрим что выдаст, если кавычки то "brackets" и т.п. Думаю понятна логика
4) Из неочевидного: у некоторых правил есть уникальные аргументы вроде "unnamed-only/before-first" и т.п, а некоторые нужно добавлять в # rules через --enabled шоб заработало. В файле что кинул выше это вынесено в графу Opt-in Rules (disabled by default), видимо из-за этого ну было и было!
5) Be careful: когда swiftformat заработает то у вас будут сотни/тысячи измененных файлов. Поетому аккуратно надо
В принципе основные подводные подсветил на которых потерял пару часов.
Установил на проект swiflint + swiftformat и хочу написать об этом. В основном хочу пару подводных подсветить, может кому сэкономит время
1) Сначала устанавливаем swiftlint/swiftformat. В гугле есть вся документация, ставим через homebrew + в target скрипты пишем, тут объяснять ничего не надо
2) Сначала ставим скрипт только на swiftlint дабы не сломать проект.
3) Настройки конфигурации находятся в файле .swiftlint в корне проекта (в таргет включать не обязательно), конкретно моменты которые могут сэкономить время:
a) Ищем какой-нибудь yaml файл и ставим его, потом будем под себя править. Вот этот например
b) Смотрим какие выдает ошибки, есть три пути шо делать с этим: фиксим их, отключаем через disabled_rules либо правим параметры, документацию ищем просто гугля название ошибки, на сайте realm написана документация, в примере можете увидеть. Есть еще четвертый путь отключить локально через swiftlint:disable
c) Некоторые правила как я понял по дефолту отключены (почему-то) и нужно их написать в opt_in_rules, конкретно я вносил force_unwrapping и force_try, без этого не работало чето
По идеи на этом моменте swiftlint настроен, идем к свифтформату.
1) Добавляем скрипт как в документации и создаем файл .swiftformat, копируя откуда-нибудь. Например отсюда
2) Главные правила: обязательно сначала кидаем в --exclude то что не нужно форматировать. Скорей всего это Pods/Submodules и т.п
3) Насчет правил: есть вот этот файл где написаны главные правила. Идем по следующей логике, к примеру нужно убирать запятые в ненужных местах, пишем в поиске "comma" и смотрим что выдаст, если кавычки то "brackets" и т.п. Думаю понятна логика
4) Из неочевидного: у некоторых правил есть уникальные аргументы вроде "unnamed-only/before-first" и т.п, а некоторые нужно добавлять в # rules через --enabled шоб заработало. В файле что кинул выше это вынесено в графу Opt-in Rules (disabled by default), видимо из-за этого ну было и было!
5) Be careful: когда swiftformat заработает то у вас будут сотни/тысячи измененных файлов. Поетому аккуратно надо
В принципе основные подводные подсветил на которых потерял пару часов.
GitHub
SwiftLint/.swiftlint.yml at main · realm/SwiftLint
A tool to enforce Swift style and conventions. Contribute to realm/SwiftLint development by creating an account on GitHub.
👍7❤3🔥3
#обучение #uikit #collectionview
В: Подскажите пожалуйста какой-нибудь хороший пример реализации Compositional Layout ?
O: iOS 13 Compositional Layout Food Delivery Layout и на русском
В: Подскажите пожалуйста какой-нибудь хороший пример реализации Compositional Layout ?
O: iOS 13 Compositional Layout Food Delivery Layout и на русском
👍3
#обучение #яндекс
Лонгрид про Школу Мобильной Разработки от Яндекса
Про поступление
Попасть туда было не трудно. Я случайно залетел, решив 2/5 задач на алгоритмическом контесте и ответив на меньше половины вопросов в тесте на знание платформы. После этого мне на почту пришло письмо мол «мы не знаем брать вас или нет, поэтому мы проведем вам собеседование, чтобы узнать вашу мотивацию». Я пришел на собес, это не был собес в обычном представлении. Меня собеседовал Коля из команды Яндекс Карт, это было его первое собеседование. Я просто рассказал ему чем занимаюсь по жизни, почему хочу в школу, он задал мне пару простых вопросов по типу «Что такое nil» и «Как работает guard» и отпустил. После чего меня окончательно взяли в школу.
Первый этап
Нас было 100 человек, поделили на группы 4-6 человек. У каждой группы есть свой ментор. У нас был Даня из Яндекс GO. Ментора можно было пинать по любому вопросу, он всегда помогал. Было два созвона в неделю с ним. Один индивидуальный, второй со всей командой. Он подсказывал как фиксить ошибки, как написать лучше/эффективней, даже проводил какие-то мини-лекции нам.
Все это происходит в дистанционном формате. 3-4 лекции в неделю, одно домашнее задание. Все домашние задания являются одним большим продуктом — приложением Todo-List, которое с каждым новым дз обрастает все большим функционалом. Лекции всегда очень глубокие и подробные. Лекторы всегда были разные, от них зависело насколько интересно было слушать лекцию. Прошлись кажется по всем темам, по которым только можно было, даже system design в Яндексе затронули.
Так же каждую неделю ты обязан делать code review двух чужих работ. Таким образом мы сами себя проверяли весь первый этап. За сделанно дз давали определенное количество баллов, в зависимости от того, сделал ты его плохо/нормально/хорошо/отлично. После месяца смотрели на эти баллы и выбирали тех, кто пройдет на второй этап.
Второй этап
Начинается самое интересное, это очный этап который заключается в работе в команде над одним огромным проектом. На первом этапе Школа Менеджеров Яндекса вынашивали идеи проектов, их было около 50-60, и нам разработчикам надо было выбрать проект в который мы хотим залететь. Там было оооочень много крутых и интересных проектов. Из моей команды из 6 человек толко 4 включая меня прошло на второй этап. Всего прошло 50 iOS-еров. Мы так же нашей тимой из 4-х человек решили выбрать один проект. Выбрали работу над уже существующим приложением YANGO. Все подробности, что нам надо было сделать под NDA. А дальше началась магия. У нас самая огромная команда из 30 человек в которой: менеджеры, дизайнеры, маркетологи, аналитики, тестировщики, iOS-еры, Android-еры и бэкендеры. Про менеджеров я наврал, он не смог прилететь в Москву, потому что тусовался в Южной Америке. Он в целом очень мало участвовал в проекте, с этим нам сильно не повезло. Маркетологам, аналитикам и тестировщикам приходилось делать работу за него. У нас огромная тима и надо каким-то образом за месяц сделать готовый продукт, при этом без менеджера.
Вчера был наш последний хакатон, 25 числа будет защита проекта, 26 числа выпускной на котором все будут жестко тусить.
Что потом
В процессе прохождения второго этапа была возможность пройти mock-собеседование а так же пробное собеседование по платформе. Пробное собеседование в случае успешного прохождения засчитывалось, в противном случае давался подробный фидбэк. Из моей команды двое, включая меня прошли пробное собеседование. Дальше в сентябре будет собеседование на алгоритмы, потом собес с HR и потом поиск подходящей команды.
Что запомнилось больше всего
Нетворкинг. На первом этапе я слушал лекции и думал «вау, какие же они умные, интересно было бы пообщаться». А на втором этапе мы уже сидим вместе, пьем кофе и говорим о чем угодно. То есть тут база про «Окружи себя умными людьми ...»
Лонгрид про Школу Мобильной Разработки от Яндекса
Про поступление
Попасть туда было не трудно. Я случайно залетел, решив 2/5 задач на алгоритмическом контесте и ответив на меньше половины вопросов в тесте на знание платформы. После этого мне на почту пришло письмо мол «мы не знаем брать вас или нет, поэтому мы проведем вам собеседование, чтобы узнать вашу мотивацию». Я пришел на собес, это не был собес в обычном представлении. Меня собеседовал Коля из команды Яндекс Карт, это было его первое собеседование. Я просто рассказал ему чем занимаюсь по жизни, почему хочу в школу, он задал мне пару простых вопросов по типу «Что такое nil» и «Как работает guard» и отпустил. После чего меня окончательно взяли в школу.
Первый этап
Нас было 100 человек, поделили на группы 4-6 человек. У каждой группы есть свой ментор. У нас был Даня из Яндекс GO. Ментора можно было пинать по любому вопросу, он всегда помогал. Было два созвона в неделю с ним. Один индивидуальный, второй со всей командой. Он подсказывал как фиксить ошибки, как написать лучше/эффективней, даже проводил какие-то мини-лекции нам.
Все это происходит в дистанционном формате. 3-4 лекции в неделю, одно домашнее задание. Все домашние задания являются одним большим продуктом — приложением Todo-List, которое с каждым новым дз обрастает все большим функционалом. Лекции всегда очень глубокие и подробные. Лекторы всегда были разные, от них зависело насколько интересно было слушать лекцию. Прошлись кажется по всем темам, по которым только можно было, даже system design в Яндексе затронули.
Так же каждую неделю ты обязан делать code review двух чужих работ. Таким образом мы сами себя проверяли весь первый этап. За сделанно дз давали определенное количество баллов, в зависимости от того, сделал ты его плохо/нормально/хорошо/отлично. После месяца смотрели на эти баллы и выбирали тех, кто пройдет на второй этап.
Второй этап
Начинается самое интересное, это очный этап который заключается в работе в команде над одним огромным проектом. На первом этапе Школа Менеджеров Яндекса вынашивали идеи проектов, их было около 50-60, и нам разработчикам надо было выбрать проект в который мы хотим залететь. Там было оооочень много крутых и интересных проектов. Из моей команды из 6 человек толко 4 включая меня прошло на второй этап. Всего прошло 50 iOS-еров. Мы так же нашей тимой из 4-х человек решили выбрать один проект. Выбрали работу над уже существующим приложением YANGO. Все подробности, что нам надо было сделать под NDA. А дальше началась магия. У нас самая огромная команда из 30 человек в которой: менеджеры, дизайнеры, маркетологи, аналитики, тестировщики, iOS-еры, Android-еры и бэкендеры. Про менеджеров я наврал, он не смог прилететь в Москву, потому что тусовался в Южной Америке. Он в целом очень мало участвовал в проекте, с этим нам сильно не повезло. Маркетологам, аналитикам и тестировщикам приходилось делать работу за него. У нас огромная тима и надо каким-то образом за месяц сделать готовый продукт, при этом без менеджера.
Вчера был наш последний хакатон, 25 числа будет защита проекта, 26 числа выпускной на котором все будут жестко тусить.
Что потом
В процессе прохождения второго этапа была возможность пройти mock-собеседование а так же пробное собеседование по платформе. Пробное собеседование в случае успешного прохождения засчитывалось, в противном случае давался подробный фидбэк. Из моей команды двое, включая меня прошли пробное собеседование. Дальше в сентябре будет собеседование на алгоритмы, потом собес с HR и потом поиск подходящей команды.
Что запомнилось больше всего
Нетворкинг. На первом этапе я слушал лекции и думал «вау, какие же они умные, интересно было бы пообщаться». А на втором этапе мы уже сидим вместе, пьем кофе и говорим о чем угодно. То есть тут база про «Окружи себя умными людьми ...»
🔥6👍2❤1
#обучение #финальный_проект #figma
Пример дипломного проекта из какого-то курса:
https://www.figma.com/file/k1LcgXHGTHIeiCv4XuPbND/FakeNFT-(YP)?type=design&node-id=597-48015&mode=design&t=9XR8lfkHu5IuOS1M-0
Пример дипломного проекта из какого-то курса:
https://www.figma.com/file/k1LcgXHGTHIeiCv4XuPbND/FakeNFT-(YP)?type=design&node-id=597-48015&mode=design&t=9XR8lfkHu5IuOS1M-0
Figma
FakeNFT (YP)
Created with Figma
👍4🔥1
#debug #proxyman #обучение
Нужно было детектить с собственного устройства траффик, но гайд на сайте Proxyman почему-то не работал (после настройки прокси все висло и даже сертификат не скачать)
Методом тыка разобрался как решить, мб поможет кому:
1) Устнавливаем сертификат на MacOS (я не знаю насколько это мастхев, но у меня до этого было установлено) конкретно в проксимене на скриншоте нажать на кнопку снизу справа (Enable this domain) и там автоматом добавиться
2) В прокси вбивать айпишник который показан в проксимене на "Listening to: ***" вот который айпи слушает тот и добавляем, а не тот что в гайде написан (на 172 начинается)
3) Порт 9090
4) Тамам! С устройтва трафик детектим!
Нужно было детектить с собственного устройства траффик, но гайд на сайте Proxyman почему-то не работал (после настройки прокси все висло и даже сертификат не скачать)
Методом тыка разобрался как решить, мб поможет кому:
1) Устнавливаем сертификат на MacOS (я не знаю насколько это мастхев, но у меня до этого было установлено) конкретно в проксимене на скриншоте нажать на кнопку снизу справа (Enable this domain) и там автоматом добавиться
2) В прокси вбивать айпишник который показан в проксимене на "Listening to: ***" вот который айпи слушает тот и добавляем, а не тот что в гайде написан (на 172 начинается)
3) Порт 9090
4) Тамам! С устройтва трафик детектим!
👍3
#собеседования #вопросы
https://docs.google.com/document/d/1A0ROqvFwEL2UYfJIDkBI9PHeUPp5oiwHd_53OrI7SHs/edit
https://docs.google.com/document/d/1A0ROqvFwEL2UYfJIDkBI9PHeUPp5oiwHd_53OrI7SHs/edit
Google Docs
Вопросы на собеседование iOS
Вопросы и темы на собеседованиях iOS Материал создан и развивается сообществом мобильных разработчиков Coffee&Code. Вы можете узнать об актуальных анонсах и встречах в нашем телеграм-канале и задать свои вопросы в чате. По вопросам, дополнениям и помощи…
🔥13
#sui #обучение
https://www.youtube.com/watch?v=b1oC7sLIgpI
Яндекс браузер + перевод на русский = тамам
https://www.youtube.com/watch?v=b1oC7sLIgpI
Яндекс браузер + перевод на русский = тамам
YouTube
SwiftUI Fundamentals | FULL COURSE | Beginner Friendly
Build Native Swift Apps with AI - https://bitrig.com/?utm_source=swiftnews_yt
In this 12 hour course we build 4 apps that ramp up in difficulty. The first 3 apps are quite simple, but the 4th and final app grows substantially in size and challenge. See the…
In this 12 hour course we build 4 apps that ramp up in difficulty. The first 3 apps are quite simple, but the 4th and final app grows substantially in size and challenge. See the…
👍6❤3🔥1