iOS Roadmap - Полезное | Swift, SwiftUI, Интервью
446 subscribers
107 photos
3 videos
8 files
195 links
iOS Roadmap: Swift, SwiftUI, архитектуры, интервью. Еженедельные подборки статей и видео, плейбуки, чек-листы, решения задач с пояснениями. Полезно начинающим и практикующим iOS-разработчикам.
Download Telegram
#сервер #бекенд

Товарищи, вот вам приблуды, чтобы можно было развернуть "локальный" бекенд. Свой джейсон, ручки и все что надо будет. Теперь даже можно свои тестовые приложение реализовать по-божески, ашалеть, почему в мое время не было...

- https://github.com/typicode/json-server
- https://github.com/wiremock/wiremock
- https://youtu.be/n_7UUghLpco
🔥8🤯2
#concurrency #async #modern_concurrency

Весьма хорошая реализаяи API клиента, дженерика причем, на async/await + выше вчера про реализацию мок сервера газовал, пробуй!

https://kean.blog/post/new-api-client
🔥4👍1
#sui #кодстайл #ревью

1) Как лучше, все держать в body, побить на сабклассы, или же мини проперти? - Рассказываю. У меня была проблема, что хкод ломался на бади, т.к долго оценивал, перенес на мини переменные, вроде-бы помогло, не помню. В новом хкоде это улучшили кратно, но бтв. Читать легче, представьте, что у вас 300-400 строк и как это ревьюить? Изменять? И так далее. Что выбрать пропертю или сабструктуру? Если это сабструктура и у вас есть EnvironmentObject для той же темы, к примеру, то надо будет его и там заюзать иначе в основном, где указано, менятся будут апирансы, а в сабструктуре - нет. Если это что-то небольшое, и не переиспользуемое, лимит в 400-500 строк файл не превысил, Я делаю пропертю и кайфую. Ибо сделаешь вот так сабструктуру и за ней смотреть еще.

2) Вместо if isMuted != nil. Лучше заюзать @ViewBuilder, т.к всё-равно он внутри используется, плюс достаточно if let isMuted {}, т.к в случае фейла SUI под-копотом газует EmptyView() и ее явно указывать не надо.
👍6🔥2
Вдруг кому-то будет полезно, чуть позже отредачу пост)
👍2🔥2
Forwarded from Roman Buzko
2022_02_22_Путеводитель_для_цифровых_кочевников_Buzko_Krasnov.pdf
2.1 MB
В связи со сложившимися обстоятельствами мы решили выложить в открытый доступ наш самый популярный платный продукт "Налоговый путеводитель для цифровых кочевников".

Он посвящен структурированию активов за границей и включает почти 90 страниц полезных материалов по российским налогам и не только.
🔥11❤‍🔥2👍21
Forwarded from Swift Tips
Исчерпывающее руководство по настройке Jenkins под iOS в 2023 году

Подробный гайд по настройке Jenkins под iOS.

👉 Установка зависимостей
👉 Настройка джобов
👉 Настройка вашего Jenkinsfile
👉 Зависающие сборки
👉 Заключение

Оригинал тут: Step-by-Step Jenkins Setup for iOS in 2023 | Ultimate Guide

Читать (Ru)
🔥5👍1🤔1
Скажите, а тема крипты вообще интересна? Стоит кидать? Имею ввиду лекции, книги, статьи, сайты. Никакие не сигналы и етк, т.е сугубообразовательный контент. Без инвест рекомендаций и всего такого самособой. Я просто уже 10 месяцев изучаю, как вернулся с Измира, и вот друг Алексей Измириский, который делал и делает на ReactNative кошельки, он тогда и подсадил, просто вижу много кого интересует эта тема, судя по смс в лс и иногда в чатике. Кидать рекомендательные ссылки по крипте? 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111🔥1
#крипта #обучение #криптобаза #блокчейн

Если что, iOS / Программирование никуда не уходит, так же будет подовляющее большинство про iOS / Программирование. Просто вот смотрю - сегодня Visa провела успешный тест оплаты комиссий за газ в сети Ethereum с помощью кредитной или дебетовой карты. и вижу, что так-то блокчейн, смарт-контракты, криптовалюта и так далее, начинают выходить из тени. И думаю, Я же вот изучаю видео, читаю книги, статьи, а почему - бы не поделиться с ребятами? Повторюсь, не про то как купить монетку и сделать х100, не про то, что сегодня покупаем NFT Хасбуллы и завтра продаем с профитом. Про технологии в первую очередь! Возможно про языки, у меня есть контакты сеньоров Solidity dev`ов из Европы, возможно с ними как - нибудь заворкшопим. Мне просто интересна эта тема, многим людям(судя по опросам) тоже интересна, плюс 2022 год показал, что бывает, если променять личную ответственность на обещания от самых разных банков. Поэтому Я за - полезное самообразование! Тем - более все бесплатно, без сигналов, без обманов, без инвест идей самособой! Глупо вкладывать свои последнии деньги туда, что ты не совсем до конца понимаешь, тем-более.
Тем более, если вдруг кто подумает, что Я перегоняю траффик, то любой маркетолог и интернет ответит вам, без UTM меток никак не отследить траффик и тем самым не получить вознаграждение 🙂 Кто не в теме, при помощи UTM меток отслеживают траффик рекламные компании, изучите рекомендации от любих блогеров на ютубе, к примеру, и увидите, что траффик только так и отслеживается. Это сообщение было вводным, чтоб вы понимали, что у меня нет цели нажиться!

Тогда начну рекомендации, с замечательного сайта, который можно засчитать за отправную точку для изучения базы, пробуйте: https://a16zcrypto.com/posts/article/crypto-readings-resources/
👍94🥰3
#solid #обучение

Сложные вещи - простым язык, две небольшие статьи на почитать(добавил их для карточки SOLID так же)

1) Martin Fowler - https://www.martinfowler.com/ieeeSoftware/coupling.pdf
2) Tom Dalling - https://www.tomdalling.com/blog/category/software-design/
👍4🔥41
#обучение #собеседования #uikit

В: А можно же у вьюконтроллера viewDidload после инициализации вызвать?
O: Ну смотри, давай думать последоватаельно. viewDidLoad - по сигнатуре обычный метод класса. Вызвать руками 100% можно. По сути нас интересует, реализовали ли Apple внутри UIKit'а ассерт (assertFailure) на это дело. То есть в любом случае если и упадём, то в рантайме.
🔥5👍2
#обучение #network #generic #async

В: Всем привет. Посоветуйте, пожалуйста, ресурсы где изучить как правильно создать нетворк сервис, сервисы который будет возвращать апи модель. Смотрю на ютубе, пытаюсь гуглить, и вариаций миллион, а как правильно не понимаю. Что бы были протоколы, что бы по солиду было. Самому не допедрить...

О:
- https://www.youtube.com/watch?v=BP2wv7OjZnA
- https://kean.blog/post/new-api-client
- https://www.kodeco.com/books/real-world-ios-by-tutorials/v1.0
👍6🔥3❤‍🔥1
#собеседования #обучение

В: "На собеседовании начинается игра в незнайку: Cделать свой compactMap, сделать свой Optional, спрашивают какие-то невероятные вещи, т.к зачем реализовывать свой compactMap, map, optional и другие кастомные вещи, если можно пообщаться намного продуктивнее: лайвкод приложения, решение многопоточных проблем, пообщаться за system design и так далее." Так вот, что делать когда спрашивают какую-то херню?

О: Поучись в стили манагера уточнять вопросы "Я правильно понимаю, что вы хотите, чтобы я реализовал компапкт мэп, который есть в стандатной библиотеке свифта?". Потом "Что же, экзотичная задача, но да ладно. Давайте в начале определимся с условиями вашей задачи". И так на каждый вопрос... Вообще интонация и дотошность хорошо срабатывают на собесе. В основном ведь эти джентельмены сидят в стиле "я всё знаю, а ты отвечай на вопросы, мхгазь". А если начать уточнять их вопросы, то у них резко зона комфорта исчезает...хе-хе-хе)
🔥113💯1
#собеседования #обучение #зп

Совет по торговле за ЗП:
Хотел увеличить ЗП по итогу оффера. Похвалил компанию и выделил то, что мне понравилось. Плюс отдельно подсветил уверенность, что я удовлетворю их хотелки.

Сказал, что у меня есть оффер на х + 50к. И попросил облегчить мне муки выбора. (Не обязательно иметь этот оффер, если что)

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

Может быть получилось бы и больше выбить, но мне прям много раз подсветили что XXX RUB максимум по этой вилке.
5🔥2
#uikit #обучение

Недавно была задача добавить гиперссылку в UILabel и оказалось, что атрибутед текст ссылку то принять примет, но вот отображать не отобразит.

Решений оказалось два – менять на UITextView (не вариант) и высчитывать положение гиперссылки через UIGestureRecognizer и переходить по ссылке

Единственная статья которая помогла это эта. Тимур, ты видел в полезное выкладываешь от сюда что-то, мб это полезно будет, решил поделиться.

https://augmentedcode.io/2020/12/20/opening-hyperlinks-in-uilabel-on-ios/
👍32
#ментор #обучение

В: У кого-нибудь есть на примете сайт или что-нибудь, где можно ментора найти для мок собеса или типа того по Европе?

O: Learn and grow with help from world-class mentors for free, probuite:
https://adplist.org/
👍2❤‍🔥11🔥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 заработает то у вас будут сотни/тысячи измененных файлов. Поетому аккуратно надо

В принципе основные подводные подсветил на которых потерял пару часов.
👍73🔥3