И спойлер🧑💻
В ближайшее время тут напишу несколько статеек про безопасность, просто хочется раскрыть подробнее некоторые темы
Так шо ждите, дамы и господа
В ближайшее время тут напишу несколько статеек про безопасность, просто хочется раскрыть подробнее некоторые темы
Так шо ждите, дамы и господа
Как и обещал - подробное рассмотрение тем безопасности в iOS-приложениях.
Начнем с сокрытия экрана, приятного прочтения 🙌
Начнем с сокрытия экрана, приятного прочтения 🙌
Telegraph
Скрываем экран от шаловливых глаз
Кто смотрел мой вебинар о безопасности в iOS-приложениях знают, что сейчас будут обучалки по секурности.Кто не смотрел, прошу сюда - https://geekbrains.ru/events/3060Поехали! Основная задача сокрытия экрана при сворачивании - не дать злоумышленникам подглядеть…
И, конечно, маскируйте пароль при вводе🕵️♂️, заменяя его на кружки или звездочки
В UITextField эта функция доступна «из коробки» 📦
В UITextField эта функция доступна «из коробки» 📦
Не про iOS, но про безопасность🤦
Вот наглядный пример того что может быть при херовеньком соблюдении мер безопасности (которые, кстати доступны каждому и бесплатны, смотри OWASP).
Ещё года полтора назад читал в xakep’е как создали чуть ли не самый большой ботнет и все из-за того, что в IoT была нулевая защита.
Ну, кажется, тот самый случай, когда жизнь ничему не учит (а на секунду, такие постоматы могут содержать что-то ценное и конфиденциальное - это я о безопасности)
Вот наглядный пример того что может быть при херовеньком соблюдении мер безопасности (которые, кстати доступны каждому и бесплатны, смотри OWASP).
Ещё года полтора назад читал в xakep’е как создали чуть ли не самый большой ботнет и все из-за того, что в IoT была нулевая защита.
Ну, кажется, тот самый случай, когда жизнь ничему не учит (а на секунду, такие постоматы могут содержать что-то ценное и конфиденциальное - это я о безопасности)
Описал как быстро создать навигацию через UITableView
Будет полезно тем, кто хочет в короткие сроки накидать навигацию для приложения, составить макет или если это надо сделать, например по учебе, но по каким-то причинам эта тема не включена в учебный материал
Читайте, изучаете
Будет полезно тем, кто хочет в короткие сроки накидать навигацию для приложения, составить макет или если это надо сделать, например по учебе, но по каким-то причинам эта тема не включена в учебный материал
Читайте, изучаете
Telegraph
Переходы с UITableView
Иногда нужно быстро накидать макет приложения или просто создать навигацию. В такие моменты нет смысла заморачиваться с созданием дизайнерского UI.Это касается и UITableView, а точнее его ячеек. Быстро делаем ячейки Итак, сейчас рассмотрим как быстро создать…
Вряд ли вам пригодится эта инфа, но если пригодится, она сэкономить вам или вашей компании кучу времени и денег.
Не всегда мы можем скачать приложение из AppStore, есть еще один способ - по прямой ссылке, он требует много заморочек, но это возможно (лично работал над таким проектом).
В больших масштабах это используется для внутренних продуктов компании. Например, супер-секьюрный чат или приложение для каких-то узконаправленнных вычислений.
Такое не закинешь в AppStore (хацкер скачает и разберет, а потом нальет кофе и прочитает всю вашу рабочую переписку). Поэтому такие приложения выдаются по специальной ссылке.🙈
Разве грязный хакер не может найти эту ссылку и проделать все тоже самое? Неа!
Такие приложения выдаются под определенные устройства - в developer program добавляются UDID (уникальный идентификатор устройства) и кто попало не сможет поставить себе это приложение.
И вроде звучит круто... Вы можете выдавать приложение только под определенные устройства, пик секьюрности и надежности! Но долго ли вы сможете это делать?
Если вы работаете через аккаунт разработчика, то, увы, нет 😔 Для разработчика есть ограничение в 100 устройств.
А решить эту проблему и упростить процесс добавления новых пользователей вы можете через Enterprise-аккаунт.
И если бы это было всё, то я бы не писал это сочинение)
Перейти на enterprise - означает подождать чуть дольше чем вечность.🗿
А потому - если у вас есть задача сделать приложение, которое будет работать только внутри компании, то первым делом подключайте Enterprise-аккаунт, а уже потом думайте что это будет за приложение и из чего его готовить🙌
Не всегда мы можем скачать приложение из AppStore, есть еще один способ - по прямой ссылке, он требует много заморочек, но это возможно (лично работал над таким проектом).
В больших масштабах это используется для внутренних продуктов компании. Например, супер-секьюрный чат или приложение для каких-то узконаправленнных вычислений.
Такое не закинешь в AppStore (хацкер скачает и разберет, а потом нальет кофе и прочитает всю вашу рабочую переписку). Поэтому такие приложения выдаются по специальной ссылке.🙈
Разве грязный хакер не может найти эту ссылку и проделать все тоже самое? Неа!
Такие приложения выдаются под определенные устройства - в developer program добавляются UDID (уникальный идентификатор устройства) и кто попало не сможет поставить себе это приложение.
И вроде звучит круто... Вы можете выдавать приложение только под определенные устройства, пик секьюрности и надежности! Но долго ли вы сможете это делать?
Если вы работаете через аккаунт разработчика, то, увы, нет 😔 Для разработчика есть ограничение в 100 устройств.
А решить эту проблему и упростить процесс добавления новых пользователей вы можете через Enterprise-аккаунт.
И если бы это было всё, то я бы не писал это сочинение)
Перейти на enterprise - означает подождать чуть дольше чем вечность.🗿
А потому - если у вас есть задача сделать приложение, которое будет работать только внутри компании, то первым делом подключайте Enterprise-аккаунт, а уже потом думайте что это будет за приложение и из чего его готовить🙌
Частая проблема - клавиатура перекрывает часть контента.🤦♂️
Одно из решений - UIScrollView. На мой взгляд это не самое красивое решение (с точки зрения UI/UX).
В статье рассмотрен ещё один вариант работы с клавиатурой и контентом.
Мне, как разработчику и пользователю, больше нравится такой подход✨
Одно из решений - UIScrollView. На мой взгляд это не самое красивое решение (с точки зрения UI/UX).
В статье рассмотрен ещё один вариант работы с клавиатурой и контентом.
Мне, как разработчику и пользователю, больше нравится такой подход✨
Telegraph
Симпотная форма логина + keyboard + animation
Любое приложение начинается с идеи, бизнес-плана и формы логина. Сегодня поговорим про последнее. Клавиатура + UITextField'ы Известная проблема - есть несколько UITextField на экране. Открывается клавиатура и все UITextField'ы перекрываются и непонятно что…
Так, ребята, очень важная и крутая тема - читайте и вникайте, расписал все подробно, потом на собесе будете шагать по столу как медведь балу😈
Статья о том как создать виджет для приложения, подключить его к базе данных Realm и настроить синхронизацию данных с приложением, не обожгитесь!
Статья о том как создать виджет для приложения, подключить его к базе данных Realm и настроить синхронизацию данных с приложением, не обожгитесь!
Telegraph
Бесподобный виджет с Realm'ом
Стартовый код проекта можно скачать тут:https://github.com/NiFilonov/AppWithWidget Итоговый, соответственно, там же :) О приложении Приложение достаточно простое.Данное приложение подсчитывает сколько вам осталось выпить воды до достижения суточной нормы.Есть…
Ну вот прям искренне не понимаю как так можно то?🤬
Сидел я значит работал на новеньком iMac Catalina, со своим прелестным XCode 12.1.
Вроде и солнышко светит в мой утренний взор и все дела переделаны. В фильмах это момент для чего-то нового. А моя жизнь - лучший фильм. Ну и решил обновлю-ка я все что есть на этом свете, а конкретно macOS и XCode.
Поставил обновляться, увидел примерное время, понял что ещё пару часиков могу полежать под одеялом. 😴
Встал радостный и полный сил, хрустнул пальцами и приступил к работе.
Клонирую репозиторий с гитхаба. Хм, странно загрузка заморозилась почти на самом завершении. Думаю, ну ладно, всякое бывает. Пробую ещё раз и ещё раза 4, потом понимаю, что репозиторий все эти разы успешно клонировался, но XCode просто застывает на моменте загрузки.🤔
Пока только левая бровь нахмурена, а в глазах лишь недопонимание и слабая надежда, что этим все и закончится.
Наивный глупец, подумал я, когда проект периодически открывался лишь с 3 раза (первые 2 открытия - закрывался через 2 секунды и именно с 3-его раза открывался). Чуть позже началось мое любое в этой истории.
Repeat, please. Новый iMac, последняя ось, а я сижу с дергающимся правым глазом и смотрю как на 3 минуты подвис браузер, после того как я закинул картинку в чатик телеграма. В остальном такая же el problema.
☝️Вывод: отдаёшь большие деньги за бренд, за доверие, за надёжность хоть какую-то, а в итоге сидишь и глаз дергается, чаще чем обновляется монитор.
❗️Никогда не обновляйтесь сразу на последний update. Подождите немного, когда первые баги будут исправлены. Честно, всегда сам так поступал, но это божественное утро запудрило мои эмоциональные мозги.🙃
Сидел я значит работал на новеньком iMac Catalina, со своим прелестным XCode 12.1.
Вроде и солнышко светит в мой утренний взор и все дела переделаны. В фильмах это момент для чего-то нового. А моя жизнь - лучший фильм. Ну и решил обновлю-ка я все что есть на этом свете, а конкретно macOS и XCode.
Поставил обновляться, увидел примерное время, понял что ещё пару часиков могу полежать под одеялом. 😴
Встал радостный и полный сил, хрустнул пальцами и приступил к работе.
Клонирую репозиторий с гитхаба. Хм, странно загрузка заморозилась почти на самом завершении. Думаю, ну ладно, всякое бывает. Пробую ещё раз и ещё раза 4, потом понимаю, что репозиторий все эти разы успешно клонировался, но XCode просто застывает на моменте загрузки.🤔
Пока только левая бровь нахмурена, а в глазах лишь недопонимание и слабая надежда, что этим все и закончится.
Наивный глупец, подумал я, когда проект периодически открывался лишь с 3 раза (первые 2 открытия - закрывался через 2 секунды и именно с 3-его раза открывался). Чуть позже началось мое любое в этой истории.
Repeat, please. Новый iMac, последняя ось, а я сижу с дергающимся правым глазом и смотрю как на 3 минуты подвис браузер, после того как я закинул картинку в чатик телеграма. В остальном такая же el problema.
☝️Вывод: отдаёшь большие деньги за бренд, за доверие, за надёжность хоть какую-то, а в итоге сидишь и глаз дергается, чаще чем обновляется монитор.
❗️Никогда не обновляйтесь сразу на последний update. Подождите немного, когда первые баги будут исправлены. Честно, всегда сам так поступал, но это божественное утро запудрило мои эмоциональные мозги.🙃
Составляю некий road-map для тех, кто хочет стать iOS-разработчиком.🛹
Вот возник вопрос для каких целей вы хотите изучить эту сферу?🧐
Вот возник вопрос для каких целей вы хотите изучить эту сферу?🧐
Новогоднее чудеса!😂
Я думал это бывает только в сказках и мультиках, но нет, товарищи! Ещё и в российских банках😁
Недавно делал перевод с Тинькофф на Сбербанк 20.000 - выдало ошибку. Попробовал ещё 2 раза - опять ошибки. Через 5 минут гляжу на счёт в Сбере - деньги пришли, открываю Тинькофф - деньги не списались💵
«Делать деньги б**ть вот так!»😂
и ещё скрин с одного тг канала)
Я думал это бывает только в сказках и мультиках, но нет, товарищи! Ещё и в российских банках😁
Недавно делал перевод с Тинькофф на Сбербанк 20.000 - выдало ошибку. Попробовал ещё 2 раза - опять ошибки. Через 5 минут гляжу на счёт в Сбере - деньги пришли, открываю Тинькофф - деньги не списались💵
«Делать деньги б**ть вот так!»😂
и ещё скрин с одного тг канала)
Проясним важный момент - для разработки под iOS нужно знать Swift, если знаете и Objective-C, то вообще шикарно!
Но это не все!
Язык это лишь инструмент и для разных задач подходят разные инструменты.
Этим я говорю, что знание лишь Swift’a и/или Objective-C это просто основа, но на практике чем больше, тем лучше.
Из своей практики:
1. Был проект на 70% написанный на C++.
2. Был проект в основном на Swift + Objective-C 10%, JavaScript 10%, Lua 5%.
3. Был проект Swift + 70% на Kotlin
Это не значит, что надо было изучать все эти языки. Но иметь в арсенале парочку языков всегда приятная фича.
Плюс знание разных языков обязательное требование для сеньоров и порой у мидлов такое можно встретить.
А сколько ты знаешь языков программирования?
Но это не все!
Язык это лишь инструмент и для разных задач подходят разные инструменты.
Этим я говорю, что знание лишь Swift’a и/или Objective-C это просто основа, но на практике чем больше, тем лучше.
Из своей практики:
1. Был проект на 70% написанный на C++.
2. Был проект в основном на Swift + Objective-C 10%, JavaScript 10%, Lua 5%.
3. Был проект Swift + 70% на Kotlin
Это не значит, что надо было изучать все эти языки. Но иметь в арсенале парочку языков всегда приятная фича.
Плюс знание разных языков обязательное требование для сеньоров и порой у мидлов такое можно встретить.
А сколько ты знаешь языков программирования?
С Новым годом, ребята!
Желаю вам просто радоваться каждой секунде, любите то что делаете и делайте то что умеете, всем счастья, любви и учите Swift!
Желаю вам просто радоваться каждой секунде, любите то что делаете и делайте то что умеете, всем счастья, любви и учите Swift!
Скоро продолжаем
Мои праздники затянулись, так как переехал в Сочи, а мой мак ещё в пути пару дней (сдэк, увы, не считает, что в праздники надо работать)
Но есть хорошие планы, большинство из них уже на финале)
Итак, в ближайшее время (ну до марта) вас ждёт:
1. Ну, конечно, это интересные посты
2. Туториалы в видео формате
3. Подкаст
4. Иии интерактивчик, одна крутая идея, будем качать мозги и жать 100 алгоритмов от груди
5. Марафон (целевую тему ещё думаю, скорее всего SwiftUI). Если есть какие-то конкретные пожелания, пиши мне в личку
Мои праздники затянулись, так как переехал в Сочи, а мой мак ещё в пути пару дней (сдэк, увы, не считает, что в праздники надо работать)
Но есть хорошие планы, большинство из них уже на финале)
Итак, в ближайшее время (ну до марта) вас ждёт:
1. Ну, конечно, это интересные посты
2. Туториалы в видео формате
3. Подкаст
4. Иии интерактивчик, одна крутая идея, будем качать мозги и жать 100 алгоритмов от груди
5. Марафон (целевую тему ещё думаю, скорее всего SwiftUI). Если есть какие-то конкретные пожелания, пиши мне в личку
Разгоняемся 🚘
Начнём со статистики, люблю наблюдать такие данные
Кто-то уже ощутил поломанные глаза от одного из этих языков, а остальным просто рекомендую прислушаться к IT комьюнити и избегать этих языков🏝
Начнём со статистики, люблю наблюдать такие данные
Кто-то уже ощутил поломанные глаза от одного из этих языков, а остальным просто рекомендую прислушаться к IT комьюнити и избегать этих языков🏝
BlackLivesMatter или как добавить поддержку темной темы
Сразу скажу это гораздо проще чем кажется😋
В 80% случаев вам даже не нужно будет писать код (но конечно же в статье покодим, как я вас без этого оставлю)🙌
Приятного!
Сразу скажу это гораздо проще чем кажется😋
В 80% случаев вам даже не нужно будет писать код (но конечно же в статье покодим, как я вас без этого оставлю)🙌
Приятного!
Telegraph
BlackLivesMatter или как добавить DarkMode
С iOS 13 наши айфоны обзавелись прекрасной функцией - темная тема. Конечно, на приложениях это тоже сказалось и теперь нашим глазам стало чуть приятнее и легче листать соц. сети и телефон держит батарею чуть дольше (да, это так). Начинаем! Стартовый и финальный…
Разница между Value type и Reference type.
Каждый тип в языке Swift является Value или Reference.
📗
Value type - значение копируется.
Reference type - значение ссылается.
📖
var a = User(name: "Вася")
var b = a
a.name = "НеВася"
❓
Ответ зависит от того чем является User - классом или структурой?
⭕ Структуры это всегда Value type, а значит значение из переменной a просто скопируется в переменную b и b.name останется "Вася" (так как в b просто копировалась та же структура User(name: "Вася")).
⭕ Классы это Reference type и тут становится интереснее.
Как сказано выше - Reference type (классы) ссылаются. На практике это означает что в переменную b просто передастся ссылка на переменную a. Каждый раз при вызове переменной b мы на самом деле будем обращаться к переменной a.
Это значит, что поменяв значение a.name = "НеВася", при вызове b.name мы получим "НеВася", т.к. переменная b это лишь ссылка на переменную a.
🐼 Поэтому будьте внимательнее и вспомните об этом, когда увидите, что значения в вашей программе меняются не по сценарию (или наоборот не меняются).
Каждый тип в языке Swift является Value или Reference.
📗
Краткая теория:Value type - значение копируется.
Reference type - значение ссылается.
📖
Пример:var a = User(name: "Вася")
var b = a
a.name = "НеВася"
❓
Чему будет равно b.name? "Вася" или "НеВася"?Ответ зависит от того чем является User - классом или структурой?
⭕ Структуры это всегда Value type, а значит значение из переменной a просто скопируется в переменную b и b.name останется "Вася" (так как в b просто копировалась та же структура User(name: "Вася")).
⭕ Классы это Reference type и тут становится интереснее.
Как сказано выше - Reference type (классы) ссылаются. На практике это означает что в переменную b просто передастся ссылка на переменную a. Каждый раз при вызове переменной b мы на самом деле будем обращаться к переменной a.
Это значит, что поменяв значение a.name = "НеВася", при вызове b.name мы получим "НеВася", т.к. переменная b это лишь ссылка на переменную a.
🐼 Поэтому будьте внимательнее и вспомните об этом, когда увидите, что значения в вашей программе меняются не по сценарию (или наоборот не меняются).
Главное комфорт!
Кто-то уже пишет приложения и получает свои золотые 💰
У кого-то это ещё впереди
Но всегда помните, что работа должна вызывать у вас огонёк в глазах, да такой чтоб вы как циклоп (из люди икс) могли пулять лазеры из глаз 🔥
А поэтому не совершайте моих ошибок.
В моей трудовой уже несколько страничек расписано разными ООО, ОАО. Но искренне, по-настоящему мне нравилась только одна работа (там ещё и познакомился со своей девушкой).
Все остальное трудоустройство было по принуждению самого себя (бытовуха - кредит, переезды и прочее веселье, нужно было срочно искать доход).
Но жалею я даже не об этом, а о том, что не смог встать и уйти. В итоге ушёл, но было поздно.
Поздно, потому что сутками сидел и делал то что внутри меня вообще не откликалось. Как считаете, было у меня желание развиваться, читать книжки по iOS? Конечно нет.
А теперь посмотрим далее. Я год сижу приунывший, не развиваюсь особо. Потом решаю уйти и кому я такой нужен? Без активных знаний, отстранившийся от комьюнити? Правильно - около 30 заваленных собесов.
И я застревал дважды в этом состоянии - работа отстой (в моих глазах), желание расти отсутствует. Но, плюсы тоже были - какой-то опыт и ежемесячно 5 знаков на карту.
И все это привело меня к психотерапевту.
Тут можно много рассказывать и ещё расскажу, но пока подведу итог.
Пожалуйста, если вы нашли работу, но понимаете, что это не ваше - меняйте ее. У вас итак хватает забот и в мире итак хватает грустных людей.
Всем удачи 👍 🍀
Кто-то уже пишет приложения и получает свои золотые 💰
У кого-то это ещё впереди
Но всегда помните, что работа должна вызывать у вас огонёк в глазах, да такой чтоб вы как циклоп (из люди икс) могли пулять лазеры из глаз 🔥
А поэтому не совершайте моих ошибок.
В моей трудовой уже несколько страничек расписано разными ООО, ОАО. Но искренне, по-настоящему мне нравилась только одна работа (там ещё и познакомился со своей девушкой).
Все остальное трудоустройство было по принуждению самого себя (бытовуха - кредит, переезды и прочее веселье, нужно было срочно искать доход).
Но жалею я даже не об этом, а о том, что не смог встать и уйти. В итоге ушёл, но было поздно.
Поздно, потому что сутками сидел и делал то что внутри меня вообще не откликалось. Как считаете, было у меня желание развиваться, читать книжки по iOS? Конечно нет.
А теперь посмотрим далее. Я год сижу приунывший, не развиваюсь особо. Потом решаю уйти и кому я такой нужен? Без активных знаний, отстранившийся от комьюнити? Правильно - около 30 заваленных собесов.
И я застревал дважды в этом состоянии - работа отстой (в моих глазах), желание расти отсутствует. Но, плюсы тоже были - какой-то опыт и ежемесячно 5 знаков на карту.
И все это привело меня к психотерапевту.
Тут можно много рассказывать и ещё расскажу, но пока подведу итог.
Пожалуйста, если вы нашли работу, но понимаете, что это не ваше - меняйте ее. У вас итак хватает забот и в мире итак хватает грустных людей.
Всем удачи 👍 🍀
Индивидуальный курс по iOS-разработке
🙌 Друзья, с сегодняшнего дня запускаю уникальный и эффективный способ обучения - составление индивидуального курса по iOS-разработке!
👐 В чем отличие от масс-курсов?
- Ты сделаешь приложение, которое сам захочешь, которое заставляет твое сердце стучать от предвкушения;
- Получишь полный объем информации - Swift, ООП, алгоритмы, популярные Framework'и;
- У тебя будет круглосуточная поддержка лично от меня;
- Удобный формат. Лучше понимаешь через видео? Получишь видео-курс! Лучше воспринимаешь текстом, без проблем, оформлю в виде книги!
- Длительность курса ориентирована на 4 месяца;
👇 Стоимость и подробную информацию можно получить на моем сайте:
https://nifilonov.ru
или написав мне в
- telegram: https://t.iss.one/nifilonov
- instagram: https://instagram.com/nifilonov
🙌 Друзья, с сегодняшнего дня запускаю уникальный и эффективный способ обучения - составление индивидуального курса по iOS-разработке!
👐 В чем отличие от масс-курсов?
- Ты сделаешь приложение, которое сам захочешь, которое заставляет твое сердце стучать от предвкушения;
- Получишь полный объем информации - Swift, ООП, алгоритмы, популярные Framework'и;
- У тебя будет круглосуточная поддержка лично от меня;
- Удобный формат. Лучше понимаешь через видео? Получишь видео-курс! Лучше воспринимаешь текстом, без проблем, оформлю в виде книги!
- Длительность курса ориентирована на 4 месяца;
👇 Стоимость и подробную информацию можно получить на моем сайте:
https://nifilonov.ru
или написав мне в
- telegram: https://t.iss.one/nifilonov
- instagram: https://instagram.com/nifilonov
Друзья, ловите подборочку книг! 📖
Если кто-то хочет начать писать под iOS с нуля. Или хочет закрепить основы, чтоб были как фундамент для небоскреба. Открывайте и читайте:
1. ORelly-Programming-iOS13 - Разботка под iOS13. Книга научит вас создавать мобильные приложения под iOS. 13 версия выбрана только потому, что большинство проектов где я работаю уже ставят эту версию как минимальную поддерживаемую.
2. Ray-Wenderlich-Mastering-Git - Тут, думаю, все понятно. Книга про Git. И не просто о том как заливать фалы на гитхаб, а тут рассказывается о высоком, утонченном уровне владения Git'ом.
3. RayWenderlich-Auto-Layout - Книга посвящена AutoLayout'ам. Научит вас пользоваться этой замечательной технологией как Зевс своим Трезубцем!
4. RayWenderlich-iOS-Apprentice-SwiftUI - Для самых прогрессивых ребят. Книга о том как разрабатывать приложения для iOS с использованием SwiftUI.
5. RayWenderlich-RxSwift-Reactive-Programming - Это уже для ценителей прекрасного и реактивного. Тем кто хочет освоить реактивное программирование (RxSwift), прошу, открывайте, наслаждайтесь.
6. Swift-5-for-Absolute-Beginners - Изучение языка Swift для абсолютных новичков. Научит вас мыслить как программист и писать код как программист с абсолютного нуля.
7. SwiftBook-Swift_5 - Книга наши соотечественников - SwiftBook. отличней вариант для старта в iOS-разработке. И не заменимо для тех, кому не нравится читать английские буквы
Если кто-то хочет начать писать под iOS с нуля. Или хочет закрепить основы, чтоб были как фундамент для небоскреба. Открывайте и читайте:
1. ORelly-Programming-iOS13 - Разботка под iOS13. Книга научит вас создавать мобильные приложения под iOS. 13 версия выбрана только потому, что большинство проектов где я работаю уже ставят эту версию как минимальную поддерживаемую.
2. Ray-Wenderlich-Mastering-Git - Тут, думаю, все понятно. Книга про Git. И не просто о том как заливать фалы на гитхаб, а тут рассказывается о высоком, утонченном уровне владения Git'ом.
3. RayWenderlich-Auto-Layout - Книга посвящена AutoLayout'ам. Научит вас пользоваться этой замечательной технологией как Зевс своим Трезубцем!
4. RayWenderlich-iOS-Apprentice-SwiftUI - Для самых прогрессивых ребят. Книга о том как разрабатывать приложения для iOS с использованием SwiftUI.
5. RayWenderlich-RxSwift-Reactive-Programming - Это уже для ценителей прекрасного и реактивного. Тем кто хочет освоить реактивное программирование (RxSwift), прошу, открывайте, наслаждайтесь.
6. Swift-5-for-Absolute-Beginners - Изучение языка Swift для абсолютных новичков. Научит вас мыслить как программист и писать код как программист с абсолютного нуля.
7. SwiftBook-Swift_5 - Книга наши соотечественников - SwiftBook. отличней вариант для старта в iOS-разработке. И не заменимо для тех, кому не нравится читать английские буквы