iOS Deviant
53 subscribers
1 photo
1 file
33 links
Привет! Меня зовут Никита Филонов @nifilonov.
Я iOS-разработчик и препод GeekBrains.
В этом канале:
- регулярные туториалы
- советы по разработке
- стримы с кодингом
- мои мысли и истории
И много всего полезного и интересного 🙃
Download Telegram
Друзья, ловите подборочку книг! 📖

Если кто-то хочет начать писать под 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-разработке. И не заменимо для тех, кому не нравится читать английские буквы
Ладно, товарищи, пошёл я гулять в центр, надеюсь следующий туториал выйдет раньше, чем через 15 суток😄

Вы чем заняты сегодня?
UITabBar прекрасный как дворец в Геленджике

Сегодня посмотрим на одну популярную вариацию UITabBar'а - с круглой кнопкой в центре и элегантным углублением для этой кнопки.

Это, конечно, не аквадискотека, но выглядит круто🙌
🦅Орлы и орлицы! Две новости!

⭕️Первая.
Совсем скоро статьи и туториалы будут выходить и в видео-формате на ютубчике!

⭕️Вторая. "Кодовый четверг"
Отныне, каждый четверг в 19:00 (Мск) на ютубе будут проходить стримы с кодингом.
Буду вживую показывать как делать нестандартные, сложные и интересные задачи!

❗️Ближайший "Кодовый четверг" - 4 февраля, 19:00(Мск).

Что будет: бомбиезный генератор случайных карт.
Качаемые скиллы: алгоритмы, логика, рисование через UIBezierPath.
Описание: UIView, который генерирует сетку. На этой сетке рандомно размещается рандомное кол-во комнат (рандомных размеров). Каждая комната имеет хотя бы один рандомный выход.
Размеры сетки угадайте) Рандомный размер, конечно же!
Зачем: давал это задание нескольким своим ученикам, но у многих возникли вопросы или не хватило времени. Пока никто не осилил. Задача сложная, но очень интересная. После просмотра вы будете другими людьми. Ох.
Кому: подойдёт для любого уровня. Единственное, если ты совсем новичок, почитай одну из книг выше (от SwiftBook например), как раз успеешь🙂

Будешь смотреть?😊
Капля уникальности в море однотипности AppStore

😫Видел ну оочень много приложений с AppStore, в которых везде стоит дефолтный шрифт, даже размеры почти одинаковые (не беру топовые аппки, где количество дизайнеров больше чем у меня родственников).

🧐А что это так сложно добавить чуточку уникальности?
Ни разу нет!
❗️Картинку порой сложнее добавить чем шрифт.
Плюс ещё указал подборки с уютными сочетаниями шрифтов.

Согласись, это ведь не сложно делать?
Собесы

Ты завалишь десятки собесов. Факт.

Если получишь работу после первого собеседования, перепроверь что это не закладки или обнал)

🔹Что можно делать когда тебе "не перезвонили":

1. Плакать, смотреть на дождь (не телеканал).

2. Сиять как диско-шар. Шагать как МакГрегор на ринге/Назарбаев в Астану/ Львица-тигрица.

С первым пунктом ознакомитесь сами. Я расскажу про второй.

😩 Понятно, что не надо расстраиваться и прочие неработающие советы. Не знаю, я не мог себя взять в руки и успокоиться, не вешать нос. Это даже звучит душно и вообще токсик.

🔹Что делал я.
Собирал вопросы, чтоб потом накопить X-Ray и дать огня.

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

1. Выжимать из себя всю информацию по теме, чтоб мне накидали еще больше вопросов;

2. Переводить стрелки и спрашивал "а какой тут ответ, я хз" (многие прогеры после этого начинают безостановочно вещать, считай что выиграл(а) халявную лекцию);

3. Если общаешься с душнилой (а их будет достаточно), то пункт 2 не прокатит. Тогда можно просто спросить "вот ты знаешь мои ошибки, что можешь посоветовать почитать/посмотреть, чтоб прокачаться?".

🔹Тут главное не бояться. Это нормально. Когда я собеседовал людей, меня прям куражило что-то рассказывать, советовать. Потом появился этот канал.

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

🔹Итог.
На первые собесы вообще даже не надейся трудоустроиться. Просто иди с целью собрать вопросы и найти свои слабые места.

Первые собесы - это лишь часть учебы, не романтизируй)

Как будешь шагать?
А сегодня у меня день рождения! Юбилей, 25 годков 🥳

Ехуу поэтому сегодня не будет материала, я просто буду вам посылать лучи добра и желаю всем удачи в учёбе.
Все вы рано или поздно разбудите своего гения и сорвёте с неба все мечты.

Всем спасибо за активность, за то что читаете. Вы мой подарочек, one love 🤍
Полезность всех полезностей!😻

По этой ссылочке вы можете найти все, что сэкономит вам тысячи часов и нервных клеток:
https://github.com/matteocrippa/awesome-swift

Тут собраны топовые фреймворки/библиотки для работы с iOS.

Все это дело разбито по категориям (Network, UI, Maps, Localization и т.д.) и только категорий больше 100 штук!
Всем салют!
Сегодня, увы, трансляция не получилась, у меня навернулся мак :(
Пробовал где-то временно взять, коворкинги и т.д., но увы и ах
Сожалею
😱Что самое пугающее и отталкивающее в любом деле?
1. Мало денег
2. Омон
3. Неизвестность

✖️Поговорим о 3-ем пункте.
Многие, точно знаю, отказались от цели "стать iOS-разработчиком" только из-за того, что не видели четкого пути.
Т.е. это была просто абстрактная мечта - писать кодики и гладить котика. Но не было четкого плана, четких галочек - что надо знать?

✖️Речь не только о цели.
Речь и про более объективную оценку себя. Всегда надо понимать где ты, кто ты и в чем смысл жизни.

✖️А в этом нам всем поможет маленькая шпаргалка.
По этой ссылке лежит roadmap для iOS-разработчика. Там указаны все основные темы и области, которые стоит знать (ну или знать, что ты их не знаешь).

А что ещё важно? Вот конкретно в развитии как iOS-разработчик
🤩 Не обязательно быть отцом и сыном и святым духом iOS-разработки, чтоб получить кайфовую работу с могучей оплатой!

В ближайшие дни расскажу очень важные вещи. Как правильно проходить собесы.

Не то, что там на курсах говорят, нет.

🔅Вот, например, я переживал над одним интервью, погуглил парня, который меня должен был собеседовать и увидел, что он сделал приложение для ФБК, для Навального, офигеееть

И с ходу спросил у него про это и весь разговор пошёл как будто мы в кальянке сидели 💨

Вот про такие моменты расскажу, я много с этим экспериментировал и даже было орал на людей с той стороны экрана.

Поэтому, присаживайтесь поудобнее и читайте мои истории)

И сразу вопросик, чтоб мне в цвет дальше рассказать.

Чего боишься на собесе?
💥 Пам-пам-пам!
Важное объявление!

❗️Завтра, в четверг, 18 февраля, 19:00 (мск) будет стрим, обещанный ранее!

Буду в прямом эфире делать приложение - генератор 2D карты с коридорами и прочими прелестями!

Почему именно это?
• Эта задача включает в себя основы основ - алгоритмы и логику
• Это то, чего не хватает даже опытным программистам
• Эта реальный проект с фриланса

Какие скиллы ты прокачаешь, смотря этот стрим:
• Алгоритмы
• Векторная графика (UIBezierPath)
• Логика
• Декомпозиция
• Работа со сложным UI
• И это нестандартная и обширная на опыт задача!

Да и просто хорошо проведём время✌️

Ссылочку скину завтра перед началом🙂
Итак, стартую на YouTube!

В ближайшее время начну выкладывать туториалы и подкасты😏

❗️Также, примерно, на следующей неделе начнёт выходить курс «С нуля знаний делаем под iOS свой Telegram с блэкджеком и замыканиями»
(название ещё в разработке😄)

Ссылка на канал:
https://www.youtube.com/channel/UC7bnpCvrKbAmSh73PcX_yHA

Запись первой части стрима:
https://youtu.be/GWorDEzZ7No

Подписывайся, кайфуй, развивайся легко и непринужденно✌️
Самая нудная часть в трудоустройстве и в тоже время самая важная

Читать договора 🤮

Вы явно слышали, что надо стоять с лупой и вчитываться в каждый пиксель, но речь не об этом

Расскажу про 2 рабочих договора, которые мне навредили, навредят😑

1. В первом не было ничего такого, он был страниц на 20.
Была лишь очень жесткая политика неразглашения, иначе - NDA.
Там даже были примерно такие строки «если вас задержит представитель правоохранительных органов, вы не имеете права разглашать своё место работы и должность, иначе штраф».

Поржали за обедом, а потом понял.

Слишком жесткий NDA - ваш враг.

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

У меня диалог с HR’ами сейчас выглядит так «я работал в компании, которую не могу называть и делал приложение, которое не могу показать»
(и, увы, у меня таких парочка)

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

Бизнес, который обжегся на этом ставит такой пункт в договоре: «после прекращения сотрудничества с нами, вам запрещается работать в компаниях с аналогичными задачами, публиковать собственные наработки (программы, фреймворки) в течении 5 лет».

А такой договор я подписал сегодня утром 😂

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

Если и вас искренне завлечет деятельность компании, то тогда попросите отдел кадров уточнить в договоре в каких конкретно направлениях нельзя работать в будущем (у меня теперь прописано только «доп. реальность»).

Но если это банковское приложение или соц. сеть, то подумайте 100500 раз, потому что тогда шансы найти след. работу сгорают как купюры у Пабло Эскобара☝️

По традиции вопрос.
Читаешь договоры?
🧐Самый прикольная часть в подготовке к собесу - сбор информации

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

🔸Первое.
Иногда, заранее известно имя того, с кем будет интервью, иногда, можно узнать погуглив (если в фирме 2,5 iOS-разработчика, к примеру).

Если получилось найти имена, начинаем гуглить, искать репозитории на github, резюме этого человека, конференции всякие и т.д.

▫️Зачем?
Ну кто-то может найти какой-то компромат 😅 но я советую найти что-то интересное, о чем тебе бы хотелось узнать подробнее.

Реальный пример:
Нашёл резюме Васи Свифтовича и вижу, ого, он делал приложение для Лехи Навального.
На собесе спрашиваю об этом, и мне прикольная история для посиделок в баре и разговор как-то сразу заладился.

Если человек выступал на конференции про SwiftUI, спросите «как думаешь, когда SwiftUI придёт в массовое пользование?»

Опять же, разговор завязался, показали, что мы в теме и плюс знаем когда стоит начинать учить SwiftUI.
На следующем собесе, закатив шары, будем это цитировать.

▫️Второе.
Узнайте про компанию.
Её историю, что-то про основателя, почитайте тайные отзывы сотрудников, может юридическую информацию (если шаришь) и просто протестите приложение.

▫️Зачем?
1. Каждый собес заканчивается фразой «ну у нас нет больше вопросов, может вы что-то хотите узнать?»

Тут, во-первых, накидайте список «дефолтных» технических вопросов (напр. «какую БД используете?», «что думаете про SwiftUI?», «Много ли у вас Objective-C кода» и т.д.

А во-вторых, задайте вопросы о компании, которые интересны лично вам.
Внимание! Именно интересны вам!

Типа «серьёзно? У вас можно ходить в тапочках и халате в офисе?», «как вам приложение ваших конкурентов?», «а видели в живую Олега Тинькова?» и т.д.

И в целом, такой сбор инфы иногда вскрывает подводные камни, после которых вы уже плюнете на эту должность, какие бы жирные конверты вам не предложили.

И последний момент.
Но это редкость. Вы можете найти какой-то баг или технический недочёт в приложении.

Реальный пример:
В приложении Тинькофф, раньше, когда открываешь список свернутых приложух, экран приложения прятался стандартной заставкой (и по правилам безопасности так и надо, чтоб из этого списка открытых приложений не подглядеть секьюрные данные).
Потом это пропало и я спросил у iOS-ника из Тинькофф, а куда это делось? Он задумался, сказал может баг, не могу сейчас ответить.

Вот такая подготовка занимает не больше часа. А даст разряженную обстановку, покажет профессионализм и, самое главное, даст вам ещё развития 💪

Главное, делайте это из личного интереса, получайте от них только полезную инфу, эгоизм включён🤩

Как тебе такое, Илон Маск?
Стоит ли брать Мак на М1?

Если кто не знает про М1 и думает что Apple занялись MMA, то почитайте тут

Итак, коротко и ясно.
2 основных плюса и 1 большой минус.

Плюсы

1. Производительность.
Уже 10 раз раскусили Intel с их фейковыми сравнениями производительности M1 и i7. Не зря же они так переживают.

Но по району ходят слухи, что если работаешь чисто в Xcode, то особо разницу не почувствуешь.

2. Цена.
В зависимости от конфигурации, стоимость и разница различается, но приведу пример. Сейчас на работе как раз выбираем Mac Mini:

M1, 8Гб, 512Гб - 94 990.00 pyб.
I7, 8Гб, 512Гб - 134 990.00 pyб.


На разницу в стоимости можно еще iPhone взять или в Сочи сгонять отдохнуть.

Минусы.

1. Поддержка ПО.
Конечно, это временный минус, но сейчас он есть.
Например, если ты продвинутый тинейджер и в твоих проектах мелькает кроссплатформа, например Kotlin Multiplatform, или ты юзаешь какое-то ПО от великих JetBrains.
То придется немного взгрустнуть. Тебя ждут очень сильные лаги, как пишет мой американский единомышленник "extremely slow".

Кстати, хороший разбор, советую почитать

🔹Итого.
Если берешь для себя. Например, освоить iOS-разработку или в твоих проектах используется только Xcode, то бери М1, пиши всем что у тебя охеренная производительность и 30к в кармане, шау-пау🔫

Если же в твоих буднях много разного ПО, то советую подождать до второго квартала 2021, либо брать Intel, любить его и радоваться беззаботной жизни.
(Производители ПО уже оперативно правят проблемы с M1 и скоро все будет шикарно)
Шараут!
Всех с защитником отечества! С праздником!🔫🥳

И в честь этого предлагаю посмотреть лекцию о защите iOS-приложений.

Рассказ идёт о безопасности iOS-приложений, о взломах, краже данных и все вот это вот, чекайте🙀

Посмотреть можно тут

PS этот урок - мой первый опыт работы на камеру, на относительно большую аудиторию (ну и типа часть отборочного задания на geekBrains)
Я бахнул много пива 🍺
и хочу провести для вас откровенный прямой эфир про IT в целом, какие там есть серьезные минусы и подводные камни

Чем вообще меня бесит весь мир IT

Маякните, кто на связи и сможет подключиться
О верстке можно говорить часами...
Сториборды, констрейнты, фреймы и вот это вот все🙊

Но что же делать если у вас получился супер-сложный UI, в котором элементов как в кабине пилота, а он еще и прокручивается на UIScrollView?

👽 Ну, во-первых, бороться с лагами, которые неизбежно появятся (весь этот UI будет отрисовываться на главном потоке и сделать мы ничего не можем).

🙀 Или можем?
Та-да-да-дам! Дамы и господа, представляю вашему вниманию AsyncDisplayKit!
Заинтриговал? Хочешь ускорить свой UI и не думать о мелких противненьких лагах?

Тогда читай эту статью:
статья про AsyncDisplayKit

и пробуй в своих юных стартапчиках:
ссылка на GitHub

👏👏👏