Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
Курс Angela Yu
✔️ Раздел 4
Swift UIKit
Приложение Игральные кости
- Клонировал заготовку приложения с GitHub
- IBoutlet
- IBActions
Находка дня:
Выбор картинки прямо в коде:
#AngelaYuCourse@isilverdev
Swift UIKit
Приложение Игральные кости
- Клонировал заготовку приложения с GitHub
- IBoutlet
- IBActions
Находка дня:
Выбор картинки прямо в коде:
diceImageViewOne.image = #imageLiteral(resourceName: "DiceSix")
#AngelaYuCourse@isilverdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вписался в учебный проект по созданию мобильного приложения
Цель получить навык работы в команде и практический опыт в iOS разработке
Инструменты взаимодействия в команде:
- YouGile
- GitHub
Техническая реализация
- UIKit, Clean Architecture, iOS 16
- сеть: Alamofire, async/await (альтернатива - самописный сетевой сервис)
- карта: YandexMapsMobile (альтернатива MapKit)
- база данных: RealmSwift (альтернатива CoreData)
- загрузка картинок: Alamofire (альтернатива Kingfisher)
- Keychain
Команда 10 человек
Нашли несколько вариантов дизайнов приложений в Figma
Выбрали Food Delivery App
Дизайн оказался далеко не идеальным, но для учебного проекта - норм.
Сейчас этап верстки: разбираем задачи.
Так опыта и знаний пока очень мало, выбрал
- Верстка Онбординга
- Кнопки - сверстать отдельными компонентами, для единообразного использования во всем проекте
Повытаскивал все кнопки в Figma в одну область, чтобы систематизировать и понять какая структура компонентов будет нужна.
Еще ни строчки кода, а уже интересно... мурашки вокруг толпами бегают )))
#iOSпоВзрослому@isilverdev
Цель получить навык работы в команде и практический опыт в iOS разработке
Инструменты взаимодействия в команде:
- YouGile
- GitHub
Техническая реализация
- UIKit, Clean Architecture, iOS 16
- сеть: Alamofire, async/await (альтернатива - самописный сетевой сервис)
- карта: YandexMapsMobile (альтернатива MapKit)
- база данных: RealmSwift (альтернатива CoreData)
- загрузка картинок: Alamofire (альтернатива Kingfisher)
- Keychain
Команда 10 человек
Нашли несколько вариантов дизайнов приложений в Figma
Выбрали Food Delivery App
Дизайн оказался далеко не идеальным, но для учебного проекта - норм.
Сейчас этап верстки: разбираем задачи.
Так опыта и знаний пока очень мало, выбрал
- Верстка Онбординга
- Кнопки - сверстать отдельными компонентами, для единообразного использования во всем проекте
Повытаскивал все кнопки в Figma в одну область, чтобы систематизировать и понять какая структура компонентов будет нужна.
Еще ни строчки кода, а уже интересно... мурашки вокруг толпами бегают )))
#iOSпоВзрослому@isilverdev
👍1
1. Утренний слот "в топку", когда накануне уходишь в ночь.
У меня это:
- ночерний волейбол, который заканчивается в 1 ночи + дорога домой.
- матчи Ливерпуля (
2. Идея нового приложения.
Пет проекты - самое увлекательное в мобильной разработке. В голове куча идей: функционал, дизайн, технические решения... Когда проваливаешься в эту "кроличью нору", тебя накрывает с головой и ты забиваешь на график обучения.
Вот и у меня накануне произошел прорыв в идее своего приложения: никак не мог придумать идею дизайна, тут вдруг пробило и сел накидывать в Figma.
В результате, выполнено уроков за вчера - 0!
Как с этим быть?
1. Если не так часто, то можно. Жить надо сейчас, важен и спорт, и увлечения - иначе в одной учебе программированию можно выгореть.
2. То же нормально. После "вспышки" надо перепланировать график, включить - работу над пет-проектом. Он и будет одним из мотивирующих локомотивов.
Как вы справляетесь?
Please open Telegram to view this post
VIEW IN TELEGRAM
Ничего энергоемкого запущено не было.
Мониторинг системы указал на DeepL
Потребление более 2000 ед. за последние 12ч. при 40 ед. У cледующего в списке - браузер Arc!
Пришлось повозиться, чтобы его остановить и удалить.
(Настройки / Основные / Хранилище / Приложения ( i ) )
Сразу стала заметна разница:
- бук холодный,
- разряд батареи медленный!
Заодно немного прибрался в приложениях:
- удалил дубликаты и не используемые приложения;
- установил AlDente App (free plan) - для контроля зарядки аккумулятора
Скачать с сайта
❗️Поделюсь списком приложений, которые использую на macbook'е:
- Loop - менеджер окон
Горячими клавишами размещаю окно: 1/2, 2/3, 1/3 (слева/справа), центр и на весь экран.
Скачать на GitHub
- Punto Switcher - смена языка раскраски клавиатуры
Авто смену отключил, особенно бесило во время работы с кодом. Настроил смену языка и транслитерацию текущего набранного слова по клавише ⌃ Control
Скачать с сайта
- KeyClu - окно с горячими клавишами активного приложения
По двойному нажатию и удерживаю кнопки ⌘ Command Появляется окно со всеми горячими клавиша активного приложения.
Скачать на GitHub
- Shottr - скриншотер
Анализ сриншотеров не проводил, этот поставил и он устраивает всем
Скачать с сайта
- Quitter - закрывает программы по таймер
Настроил некоторые программы на закрытие через 5-10 минут бездействия. Снижается потребление ресурсов Mac и меньше моя расфокусировка.
Скачать с сайта
Есть ли у вас интересные утилиты или приложения для Mac?
#ПриложенияДляМака@isilverdev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Работа над учебным проектом началась (см. пост выше)
Выполнил самую джунскую задачу - сделал кнопочку )))
Кнопочка одна, но с разными параметрами:
- цвет фона
- текст
- иконка
- расположение иконки
- активна / не активна
Клонировал проект с GitHub
Создал ветку под задачу (task)
Написал код
Закоммитил
Отправил Pull request в GitHub
Жду code-review.
...сплошные "ругательства")))
#iOSпоВзрослому@isilverdev
Выполнил самую джунскую задачу - сделал кнопочку )))
Кнопочка одна, но с разными параметрами:
- цвет фона
- текст
- иконка
- расположение иконки
- активна / не активна
Клонировал проект с GitHub
Создал ветку под задачу (task)
Написал код
Закоммитил
Отправил Pull request в GitHub
Жду code-review.
...сплошные "ругательства")))
#iOSпоВзрослому@isilverdev
Курс Angela Yu
Выполнил Раздел 5
Приложение🎱 "Magic Ball"
Приложение простое:
- label
- imageView
- Button
Верстка и код аналогичны приложению из Раздела 4 "Игральные кости" - который был разжеван по шагам.
Больше заморочился на документировании работы с ветками git.
Разделил проект на мелкие задачи;
Под каждую задачу своя git ветка
Потом слияние веток
Долго решал проблему мусорных файлов:
.DS_Store
.xcworkspace
Надо было в начале создать .gitignore файл
#AngelaYuCourse@isilverdev
Выполнил Раздел 5
Приложение
Приложение простое:
- 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
✖️// Убрать комментарии из кода
Код должен хорошо читаться без комментариев.
Если они нужны в сложном коде, то может лучше упростить код?!
✖️➡️ Не использовать SF Sombols
Брать то, что нарисовал дизайнер - сохранить иконку из фигмы и использовать ее на проекте.
Чтобы в репозиторий не валилось ненужное.
Хорошо бы еще после создания реквеста проверять какие файлы и какие изменения попали в реквест, нет ли там чего ненужного и сразу корректировать.
Допустим, у нас компонента, реализующая круглую кнопку.
Если в проекте всего один тип круглых кнопок, то 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 - Полная история подключения…»
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
iSilver dev 🍏
⬇️ НАВИГАЦИЯ ПО КАНАЛУ ⬇️
Как я начинал изучать Swift / iOS dev
Как я выбирал Mac для изучения iOS dev
Подборка курсов по iOS разработке
Про Apple Developer Account
- Регистрация
- Enrolment
AI искусственный интеллект в iOS dev
- Интеграция ChatGPT…
Как я начинал изучать Swift / iOS dev
Как я выбирал Mac для изучения iOS dev
Подборка курсов по iOS разработке
Про Apple Developer Account
- Регистрация
- Enrolment
AI искусственный интеллект в iOS dev
- Интеграция ChatGPT…
Начал процедуру оплаты аккаунта разработчика.
UPD: оказывается не оплатил
Пришлось писать в ТП
UPD2: Всё закончилось хорошо
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Есть 2 подхода выполнения заданий:
- креативный
и
- жесткий
Креативный:
- допускаются вариации, улучшения - главное реализовать идею.
Подход в сторону развития навыков независимой разработки приложений (работать на себя)
Жесткий:
- строгое соблюдение макета: расположение, размеры, шрифты, картинки и тп.
Подход направленный на наемную работу, в командах, где за дизайн отвечает дизайнер, а разработчики должны точно воплотить утвержденный дизайн. Даже если он (дизайн) полное 💩, по мнению разработчика.
Если в планах устроиться на вакансию разработчика, всегда делай по 2 варианту, а первый по желанию (не обязательно).
И наоборот, улучшай, развивай креативность и взгляд со стороны пользователя.
- креативный
и
- жесткий
Креативный:
- допускаются вариации, улучшения - главное реализовать идею.
Подход в сторону развития навыков независимой разработки приложений (работать на себя)
Жесткий:
- строгое соблюдение макета: расположение, размеры, шрифты, картинки и тп.
Подход направленный на наемную работу, в командах, где за дизайн отвечает дизайнер, а разработчики должны точно воплотить утвержденный дизайн. Даже если он (дизайн) полное 💩, по мнению разработчика.
Если в планах устроиться на вакансию разработчика, всегда делай по 2 варианту, а первый по желанию (не обязательно).
И наоборот, улучшай, развивай креативность и взгляд со стороны пользователя.
✍1👍1
Существуют три основных размера
- 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
Сел смотреть уроки по Git...
И подумал: мне же приходила в голову мысль кастомизировать Терминал, почему бы не сейчас?!
Установил:
- Терминал iTerm2
- Тема powerlevel10k
- Плагин zsh-syntax-highlighting
- LazyGit
🤷🏻♂️
UPD: установил плагин eza
Самая важная вещь для инди-разработчика, которая может быть у вас - это ни айфон, ни даже макбук, а -🎙 микрофон!
С тех пор как я создал свой YouTube канал, я увеличил свой доход с 10k$ до 70+k$!
Adam Lyttle - австралийский инди-разработчик
Пока просто создал и залил уроки с курса Angela Yu (без публичного доступа), для перевода с дубляжем, на Udemy - перевод видео не работает ((
Думаю иногда, а может и регулярно устраивать трансляции в формате "code with me".
Подпишись
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Текущий прогресс по курсам 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