#обучение #пуши
В: https://twitter.com/katleta3000/status/1685735838582272000?s=46
О: https://gist.github.com/katleta3000/6478752b49860553cdb23846992a234f
В: https://twitter.com/katleta3000/status/1685735838582272000?s=46
О: https://gist.github.com/katleta3000/6478752b49860553cdb23846992a234f
Twitter
На днях решал банальную задачку – при входе по пушу в приложение отослать корректно событие в аналитику.
Открыл stackoverflow https://t.co/hSUWn0VDSD и потонул в количестве неправильных, неточных или устаревших ответов.
Поэтому предлагаю свой – можно просто…
Открыл stackoverflow https://t.co/hSUWn0VDSD и потонул в количестве неправильных, неточных или устаревших ответов.
Поэтому предлагаю свой – можно просто…
👍5🔥3
#собеседования #обучение
В: "На собеседовании начинается игра в незнайку: Cделать свой compactMap, сделать свой Optional, спрашивают какие-то невероятные вещи, т.к зачем реализовывать свой compactMap, map, optional и другие кастомные вещи, если можно пообщаться намного продуктивнее: лайвкод приложения, решение многопоточных проблем, пообщаться за system design и так далее." Так вот, что делать когда спрашивают какую-то херню?
О: Поучись в стили манагера уточнять вопросы "Я правильно понимаю, что вы хотите, чтобы я реализовал компапкт мэп, который есть в стандатной библиотеке свифта?". Потом "Что же, экзотичная задача, но да ладно. Давайте в начале определимся с условиями вашей задачи". И так на каждый вопрос... Вообще интонация и дотошность хорошо срабатывают на собесе. В основном ведь эти джентельмены сидят в стиле "я всё знаю, а ты отвечай на вопросы, мхгазь". А если начать уточнять их вопросы, то у них резко зона комфорта исчезает...хе-хе-хе)
В: "На собеседовании начинается игра в незнайку: Cделать свой compactMap, сделать свой Optional, спрашивают какие-то невероятные вещи, т.к зачем реализовывать свой compactMap, map, optional и другие кастомные вещи, если можно пообщаться намного продуктивнее: лайвкод приложения, решение многопоточных проблем, пообщаться за system design и так далее." Так вот, что делать когда спрашивают какую-то херню?
О: Поучись в стили манагера уточнять вопросы "Я правильно понимаю, что вы хотите, чтобы я реализовал компапкт мэп, который есть в стандатной библиотеке свифта?". Потом "Что же, экзотичная задача, но да ладно. Давайте в начале определимся с условиями вашей задачи". И так на каждый вопрос... Вообще интонация и дотошность хорошо срабатывают на собесе. В основном ведь эти джентельмены сидят в стиле "я всё знаю, а ты отвечай на вопросы, мхгазь". А если начать уточнять их вопросы, то у них резко зона комфорта исчезает...хе-хе-хе)
🔥11❤3💯1
#собеседования #обучение #зп
Совет по торговле за ЗП:
Хотел увеличить ЗП по итогу оффера. Похвалил компанию и выделил то, что мне понравилось. Плюс отдельно подсветил уверенность, что я удовлетворю их хотелки.
Сказал, что у меня есть оффер на х + 50к. И попросил облегчить мне муки выбора. (Не обязательно иметь этот оффер, если что)
Ну и последним абзацем укрепил веру в то, что если оффер меня устроит, то я останавливаю поиски и соглашаюсь.
Может быть получилось бы и больше выбить, но мне прям много раз подсветили что XXX RUB максимум по этой вилке.
Совет по торговле за ЗП:
Хотел увеличить ЗП по итогу оффера. Похвалил компанию и выделил то, что мне понравилось. Плюс отдельно подсветил уверенность, что я удовлетворю их хотелки.
Сказал, что у меня есть оффер на х + 50к. И попросил облегчить мне муки выбора. (Не обязательно иметь этот оффер, если что)
Ну и последним абзацем укрепил веру в то, что если оффер меня устроит, то я останавливаю поиски и соглашаюсь.
Может быть получилось бы и больше выбить, но мне прям много раз подсветили что XXX RUB максимум по этой вилке.
✍5🔥2
#uikit #обучение
Недавно была задача добавить гиперссылку в UILabel и оказалось, что атрибутед текст ссылку то принять примет, но вот отображать не отобразит.
Решений оказалось два – менять на UITextView (не вариант) и высчитывать положение гиперссылки через UIGestureRecognizer и переходить по ссылке
Единственная статья которая помогла это эта. Тимур, ты видел в полезное выкладываешь от сюда что-то, мб это полезно будет, решил поделиться.
https://augmentedcode.io/2020/12/20/opening-hyperlinks-in-uilabel-on-ios/
Недавно была задача добавить гиперссылку в UILabel и оказалось, что атрибутед текст ссылку то принять примет, но вот отображать не отобразит.
Решений оказалось два – менять на UITextView (не вариант) и высчитывать положение гиперссылки через UIGestureRecognizer и переходить по ссылке
Единственная статья которая помогла это эта. Тимур, ты видел в полезное выкладываешь от сюда что-то, мб это полезно будет, решил поделиться.
https://augmentedcode.io/2020/12/20/opening-hyperlinks-in-uilabel-on-ios/
👍3❤2
#ментор #обучение
В: У кого-нибудь есть на примете сайт или что-нибудь, где можно ментора найти для мок собеса или типа того по Европе?
O: Learn and grow with help from world-class mentors for free, probuite:
https://adplist.org/
В: У кого-нибудь есть на примете сайт или что-нибудь, где можно ментора найти для мок собеса или типа того по Европе?
O: Learn and grow with help from world-class mentors for free, probuite:
https://adplist.org/
👍2❤🔥1❤1🔥1
#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