iSilver dev 🍏
46 subscribers
129 photos
16 videos
1 file
47 links
Переобуваюсь в iOS разработчика в 45.
Swift Xcode SwiftUI
Евгений - @icleverstyle
Download Telegram
Курс Angela Yu

Выполнил Раздел 5
Приложение 🎱 "Magic Ball"

Приложение простое:
- label
- imageView
- Button

Верстка и код аналогичны приложению из Раздела 4 "Игральные кости" - который был разжеван по шагам.

Больше заморочился на документировании работы с ветками git.

Разделил проект на мелкие задачи;
Под каждую задачу своя git ветка
Потом слияние веток

Долго решал проблему мусорных файлов:
.DS_Store
.xcworkspace

Надо было в начале создать .gitignore файл

#AngelaYuCourse@isilverdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Код-ревью # 1 к таску учебного проекта

✖️// Убрать комментарии из кода

Код должен хорошо читаться без комментариев.

Если они нужны в сложном коде, то может лучше упростить код?!

✖️➡️ Не использовать SF Sombols

Брать то, что нарисовал дизайнер - сохранить иконку из фигмы и использовать ее на проекте.

📱 Добавить .DS_Store в .gitignore

Чтобы в репозиторий не валилось ненужное.

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

📝 Нейминг

Допустим, у нас компонента, реализующая круглую кнопку.

Если в проекте всего один тип круглых кнопок, то RoundButton вполне подойдет. Но если в проекте, например, два типа круглых кнопок, одна кнопка это "i" в кружочке, другая это кнопка для категорий, то тут круглота уже не сильно важна, и можно использовать InfoButton и CategoryButton, а если круглота важна, то InfoRoundButton.

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

Если компонента оформлена как вью, внутри сложная верстка из других элементов, но эта компонента по сути - кнопка, то нет особо смысла называть ее, например, InfoButtonView, "view" - тут лишнее.

Точно также с другими компонентами, если суть компоненты - текстфилд, то нет смысла называть ее SomeTextFieldView, достаточно SomeTexField.

Компонента с ...View на конце уместна, когда она сложное вью содержащее в себе кучу функционала, и нет возможности выделить ее главную особенность.

#iOSпоВзрослому@isilverdev
Please open Telegram to view this post
VIEW IN TELEGRAM
iSilver dev 🍏 pinned «⬇️ НАВИГАЦИЯ ПО КАНАЛУ ⬇️ Как я начинал изучать Swift / iOS dev Как я выбирал Mac для изучения iOS dev Подборка курсов по iOS разработке Про Apple Developer Account - Регистрация - Enrolment - Оплатил аккаунт разработчика $99 - Полная история подключения…»
✉️ Пора открыть для себя новую главу в iOS разработке

Начал процедуру оплаты аккаунта разработчика.

UPD: оказывается не оплатил
Пришлось писать в ТП

UPD2: Всё закончилось хорошо
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Есть 2 подхода выполнения заданий:
- креативный
и
- жесткий

Креативный:
- допускаются вариации, улучшения - главное реализовать идею.

Подход в сторону развития навыков независимой разработки приложений (работать на себя)

Жесткий:
- строгое соблюдение макета: расположение, размеры, шрифты, картинки и тп.

Подход направленный на наемную работу, в командах, где за дизайн отвечает дизайнер, а разработчики должны точно воплотить утвержденный дизайн. Даже если он (дизайн) полное 💩, по мнению разработчика.

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

И наоборот, улучшай, развивай креативность и взгляд со стороны пользователя.
1👍1
🔨 3 основные размера экрана iPhone'в

Существуют три основных размера
- SE
- Обычный или Pro
- Pro MAX

Нужно проверять как выглядит верстка на всех трех.

Особенно страдает верстка на SE, вы вроде сделали все по уму, а на SE треть экрана не видна, он короткий.

Обычно дизайнер не предоставляет макеты во всех форм-факторах, т.к. это тройная работа и, в большинстве случаев, отдается на откуп разработчику.

И только на сложных экранах с кучей элементов дизайнер поможет с расстановкой элементов под другие размеры экранов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Вместо урока кастомизировал Терминал

Сел смотреть уроки по Git...

И подумал: мне же приходила в голову мысль кастомизировать Терминал, почему бы не сейчас?!

Установил:

- Терминал iTerm2
- Тема powerlevel10k
- Плагин zsh-syntax-highlighting
- LazyGit

🤷🏻‍♂️

UPD: установил плагин eza
📱Создал свой YouTube канал

Самая важная вещь для инди-разработчика, которая может быть у вас - это ни айфон, ни даже макбук, а - 🎙 микрофон!

С тех пор как я создал свой YouTube канал, я увеличил свой доход с 10k$ до 70+k$!


Adam Lyttle - австралийский инди-разработчик

Пока просто создал и залил уроки с курса Angela Yu (без публичного доступа), для перевода с дубляжем, на Udemy - перевод видео не работает ((

😵 Первая цель набрать 1000 подписчиков - это позволит вести прямые трансляции.

Думаю иногда, а может и регулярно устраивать трансляции в формате "code with me".

Подпишись 📱 youtube.com/@isilverdev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📚 Собрал книжную полку

Хз когда это всё читать...

Совет как искать книги в pdf выше 🔼
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🗓 Отчёт за неделю - это хорошая идея

Текущий прогресс по курсам Swift

✔️ +1 16/100 - 100 дней SwiftUI
✔️ +0 17/39 - Усов книга 1
✔️ +2 5/29 - Angela Yu

🟩🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - 100 дней
🟩🟩🟩🟩🟩🟩⬜️⬜️⬜️⬜️ - Усов
🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - Angela Yu

Проект "iOS по взрослому"
- сделал таск "Верстка 0.1.1 Обычная кнопка"

Это первая задача в проекте, учится приходится многому:
- работать с Git и GitHub
- правильно именовать компоненты в коде
- правильно именовать ветки в Git
- правильно именовать pull-requests

Задания в курсе Angela Yu уже делал с учетом новых знаний работы с git, полученных в проекте iOS по взрослому.

Кстати, вписался в коллективное прохождение курса Angela Yu.

Суть: при выполнении заданий отработать методики работы в команде.

Делить задачу на таски (подзадачи).
Использовать Git и GitHub.
Обоюдный код-ревью.
Координация через YouGile.
И тп.

🗓 Планы на неделю:

"iOS по взрослому"
- доработать таск "Верстка 0.1.1 Обычная кнопка" после код-ревью, исправить замечания.
- выполнить новый таск "Верстка 1.1 Онбординг"

Усов книга 1
- изучить 3 главы: enum, struct, class (44 стр.)

100 дней SwiftUI
- дни 17-18 App "Чек в кафе"
- день 19 App "Конвертер"

Новый Pet-проект (пока секрет)
- подготовить картинки
- начать верстку основного экрана

Ну что ж: погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ §19 Перечисления / enum - Усов Book 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Несколько дней с Quitter

Мне сложно сфокусироваться на текущей работе/задаче, постоянно отвлекают уведомления и сообщения в мессенджерах, особенно в телеграм.

Настроил выход из приложений через 5 минут бездействия.

Результаты приятно удивили: ловил себя на мысли переводя на иконку Телеги - вау он же закрыт и не отвлекал меня все это время ))

Рекомендую
Скачать с сайта

#ПриложенияДляМака@isilverdev
#продуктивнось@isilverdev
👍2
Как меньше залипать в iPhone

Настройки /
Универсальный доступ /
Быстрая команда /
Светофильтры

По 3-му нажатию на боковую кнопку экран iPhone станет черно-белым.

В результате все соцсети станут не такими красочными и интересными.

В продуктивных приложениях переключаемся обратно в цвет.

#продуктивность@isilverdev
За 2 дня внес исправления по 24 32 42 замечаниям к коду!

Всего лишь кнопочки делаю...

Некоторые примеры замечаний:

Лучше отказаться от enum в пользу struct, так как расширять enum в случае появления дополнительных стилей будет сложнее, чем дописать extension к struct.

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

Здесь и в других местах кода не позволять ломать отступы. Вот так выглядит намного удобнее для чтения:


private func setupButton(
style: ButtonStyle,
title: String,
icon: ButtonIcon?,
iconPosition: IconPosition
) {
// some code
}

НО Если параметр один или два и они влезают в 100 символов по ширине не надо переносить на новую строку.

MainButton непоходящее название.
Что-то вроде CornersButton или как-то так более понятно что это за кнопка.

CornersButtonStyle - вынести в отдельный одноименный файл, создать папку (group) "CornersButton"

Можно сделать проще, заверстать и левую и правую иконки сразу.
И прятать через hidden ненужную.
И не надо будет возиться с инсертами и ремувами сабвью.


leftIconImageView.isHidden = position == .right
rightIconImageView.isHidden = position == .left


Как же кайфую от количества полезной инфы на практике!

🔥 🔥 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Разбирался с git - как организовать тестирование кнопок-компонент и не пушить на GitHub тестовые экраны.

Вроде разобрался:

- Создать компонент в ветке разработки компоненты
- Создать ветку тестирования
- Создать в ветке тестирования экраны для тестов кнопок
- Внести изменения в компоненты кнопки
- Сделать commit изменений
- Перейти обратно в ветку разработки компоненты
- перенести только нужные файлы компоненты из ветки тестирования:


git checkout ветка-тестирования -- путь/файл.swift путь/файл.swift


- делаем commit изменений в ветке разработки компоненты
- пушим изменения на GitHub
Взаимодействию с ИИ надо тоже учиться

Должно быть хотя бы базовое понимание принципов работы ИИ и разницы в моделях.

Получать адекватный ответ от ИИ без получения навыков взаимодействия с ИИ самонадеянно.

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

https://www.promptingguide.ai/ru

UPD: ресурс большой, решил добавить себе в программу обучения.