Плагин eza для терминала
Выводит список папок и файлов в древовидной структуре.
Этот плагин имеет широкие настройки отображения списка файлов и директорий, но мне нужна была только часть с древовидной структурой.
Установка
Настройка алиесов в ~/.zshrc
В результате имеем 4 доп. Команды в терминале:
lt1 - список 1 уровня
lt2 - список 2 уровня вложенности
lt3 - список 3 уровня вложенности
lt4 - список 4 уровня вложенности
Ранее уже писал про кастомизацию терминала здесь
Выводит список папок и файлов в древовидной структуре.
Этот плагин имеет широкие настройки отображения списка файлов и директорий, но мне нужна была только часть с древовидной структурой.
Установка
brew install eza
Настройка алиесов в ~/.zshrc
plugins=(... eza)
alias lt1='eza --tree --level=1 --color=always --group-directories-first --icons'
alias lt2='eza --tree --level=2 --color=always --group-directories-first --icons'
alias lt3='eza --tree --level=3 --color=always --group-directories-first --icons'
alias lt4='eza --tree --level=4 --color=always --group-directories-first --icons'
В результате имеем 4 доп. Команды в терминале:
lt1 - список 1 уровня
lt2 - список 2 уровня вложенности
lt3 - список 3 уровня вложенности
lt4 - список 4 уровня вложенности
Ранее уже писал про кастомизацию терминала здесь
Текущий прогресс по курсам Swift
✔️ +0 16/100 - 100 дней SwiftUI
✔️ +1 18/39 - Усов книга 1
✔️ +2 7/29 - Angela Yu
🟩🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - 100 дней
🟩🟩🟩🟩🟩🟩⬜️⬜️⬜️⬜️ - Усов
🟩🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - Angela Yu
Проект "iOS по взрослому"
- начал таск "Верстка 1.1 Онбординг"
Отправил на первое ревью
Пришлось поразбираться с версткой под разные размеры экранов. У iPhone'ов их так много как у Андройд устройств и это радует.
В курсе Angela Yu скакун с 5 урока сразу на 16 и 18 - работа с терминалом и git (GitHub)
По Усова прошел только 1 главу enum
Подключил Аккаунт разработчика - тоже заняло определенное время, т.к. Пришлось обращаться в техподдержку.
Сейчас пытаюсь оформить Соглашение о платном конвенте, надеюсь получится и смогу публиковать приложения с подпиской.
Сейчас аккаунт позволяет публиковать только бесплатные (без платных подписок и покупок внутри) приложения.
"iOS по взрослому"
- Завершить новый таск "Верстка 1.1 Онбординг" (пройти все ревью)
Усов книга 1
- изучить 2 главы: struct, class (44 стр.)
100 дней SwiftUI
- дни 17-18 App "Чек в кафе"
- день 19 App "Конвертер"
Новый Pet-проект (пока секрет)
- подготовить картинки
- начать верстку основного экрана
Ну что ж: погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Смотрел утром 100 дней SwiftUI...
и осознал, что распыляюсь между фреймворками.
Сейчас много практики получаю на учебном проекте "iOS по взрослому" - верстка UIkit кодом без сторибордов.
Курс Angela Yu - UIKit с версткой на сторибордах.
100 дней SwiftUI - логично на SwiftUI.
Врезультате, есть практика UIkit без сторибордов, но нет теории (уроков) по такому кодингу.
Надо поискать материалы, курсы по верстке кодом на UIkit и подправить свой roadmap.
и осознал, что распыляюсь между фреймворками.
Сейчас много практики получаю на учебном проекте "iOS по взрослому" - верстка UIkit кодом без сторибордов.
Курс Angela Yu - UIKit с версткой на сторибордах.
100 дней SwiftUI - логично на SwiftUI.
Врезультате, есть практика UIkit без сторибордов, но нет теории (уроков) по такому кодингу.
Надо поискать материалы, курсы по верстке кодом на UIkit и подправить свой roadmap.
Как настроить проект UIKit без сторибордов
1. Удаляем файл main.storyboard
2. В Info.plist ищем строку "Storyboard Name: Main" и удаляем всю строку
3. Настройки проекта / TARGETS / Info /
"Main storyboard file base name: Main"
Удаляем значение Main
4.В SceneDelegate.swift добавляем код в func scene(...)
Всё проект готов для верстки кодом!
1. Удаляем файл main.storyboard
2. В Info.plist ищем строку "Storyboard Name: Main" и удаляем всю строку
3. Настройки проекта / TARGETS / Info /
"Main storyboard file base name: Main"
Удаляем значение Main
4.В SceneDelegate.swift добавляем код в func scene(...)
// меняем _ на windowScene
guard let windowScene = (scene as? UIWindowScene) else { return }
// добавляем
let window = UIWindow(windowScene: windowScene)
let viewController = ViewController()
let navigationController = UINavigationController(rootViewController: viewController)
window.rootViewController = navigationController
window.makeKeyAndVisible()
self.window = window
Всё проект готов для верстки кодом!
👍1🫡1
Решил усложнить прохождение курса Angela Yu и повторить задания на UIKit уже без сторибордов - кодом.
Запилил приложение в которое будут добавлять все мини-проекты (задания) курса
https://github.com/iCleverStyle/studyproject_angelayu.git
Запилил приложение в которое будут добавлять все мини-проекты (задания) курса
https://github.com/iCleverStyle/studyproject_angelayu.git
Как поменять время, сигнал сотовой связи, WiFi и заряд аккумулятора в статусбаре симулятор
Зачем?
- для скриншотов
Для AppStore поставить 9:41 или например если не хочется палить время: вот я сделал вчера в 23:59... )))
1. Получаем список симуляторов
2. Находим нужный нам симулятор и его UUID
3. Запускаем симулятор
4. Настраиваем статус-бар
Где:
-
-
-
-
Сброс настроек
Зачем?
- для скриншотов
Для AppStore поставить 9:41 или например если не хочется палить время: вот я сделал вчера в 23:59... )))
1. Получаем список симуляторов
xcrun simctl list devices
2. Находим нужный нам симулятор и его UUID
iPhone 12 Pro (7808996E-071C-44C5-8C5A-0E6D46755ED1) (Booted)
3. Запускаем симулятор
xcrun simctl boot <UUID>
xcrun simctl boot 7808996E-071C-44C5-8C5A-0E6D46755ED1
4. Настраиваем статус-бар
xcrun simctl status_bar booted override --time "9:41" --batteryState charged --wifiBars 3 --cellularBars 4
Где:
-
-time "9:41" → Sets the clock to 9:41 AM, which is Apple’s standard time in promotional images.-
-batteryState charged → Displays a fully charged battery.-
-wifiBars 3 → Ensures full Wi-Fi signal strength.-
-cellularBars 4 → Sets full cellular signal strength.Сброс настроек
xcrun simctl status_bar booted clear
👍2
Текущий прогресс по курсам Swift
✔️ +1 17/100 - 100 дней SwiftUI
✔️ +0 18/39 - Усов книга 1
✔️ +0 7/29 - Angela Yu
🟩🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - 100 дней
🟩🟩🟩🟩🟩🟩⬜️⬜️⬜️⬜️ - Усов
🟩🟩🟩⬜️⬜️⬜️⬜️⬜️⬜️⬜️ - Angela Yu
Проект "iOS по взрослому"
- делал таск "Верстка 1.1 Онбординг"
Фиксик замечания по 4 ревью
Много работы именно по улучшению кода, сам онбординг и верстка работали что называется "из коробки"
В курсе Angela Yu - повторил уроки 4 и 5, но уже кодом. Как превратить сториборд в о вью, написанный кодом помог канал IOS на практике (следующим постом подробнее напишу)
Книгу Усова на этой неделе не трогал.
Соглашение о платном контенте в аккаунт разработчика Элл - активно!
Pet-проект - буквально начал вчера вечером под бокал вина. Создал проект в XCode, накидал схематично первый экран.
Занимаюсь iOS разработкой так или иначе ежедневно - это очень хорошо!
Роадмап обучения еще не передалал после осознания распыления в обучении.
"iOS по взрослому"
- Завершить таск "Верстка 1.1 Онбординг"
- взять новый таск (буду смотреть доступные на момент завершения предыдущего таска)
Усов книга 1 (перенос с прошлой недели)
- изучить 2 главы: struct, class (44 стр.)
Angela Yu - Автолейауты - мини-приложение "Калькулятор".
Pet-проект (пока секрет)
- сделать MVP
- подготовить к app store
Ну что ж: погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Как дублировать сверстанный экран строиборда в код
Инструкция от IOS на практике
Скрипт xib to code
Мой вариант App Magic Ball:
2 одинаковых экрана:
- Экран, созданный с использованием Interface Builder (Storyboard)
- Экран, созданный программно с использованием UIKit и Auto Layout
Инструкция от IOS на практике
Скрипт xib to code
Мой вариант App Magic Ball:
2 одинаковых экрана:
- Экран, созданный с использованием Interface Builder (Storyboard)
- Экран, созданный программно с использованием UIKit и Auto Layout
Уже добавили в эпл стор коннект
В ближайшее время обновят XCode
Будем наблюдать.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁1
Различия программиста от разработчика
Мысли в слух
Прочувствовал разный подход при работе в команде над одним проектом и разработка своего приложения.
Программист больше заточен на код: как сделать правильный, чистый код, соответствовать архитектуре, чтобы другие участники или приемники могли легко разобраться и продолжить работу.
Разработчик - больше нацелен на продукт, его функциональность и дизайн, и не так заботится о том, что "под капотом".
Ответ на вопрос: Кем ты хочешь стать iOS программистом или iOS разработчиком? - может сильно повлиять на роадмап обучения.
Мысли в слух
Прочувствовал разный подход при работе в команде над одним проектом и разработка своего приложения.
Программист больше заточен на код: как сделать правильный, чистый код, соответствовать архитектуре, чтобы другие участники или приемники могли легко разобраться и продолжить работу.
Разработчик - больше нацелен на продукт, его функциональность и дизайн, и не так заботится о том, что "под капотом".
Ответ на вопрос: Кем ты хочешь стать iOS программистом или iOS разработчиком? - может сильно повлиять на роадмап обучения.
❤2
📱 Roadmap приложения
Все идеи по приложению от мелких "скруглить углы" до "сверстать онбординг" кидаю во "Входящие".
Потом спокойно разбираю, что когда реализовывать, а что отбросить.
Потом стараюсь группировать по одной теме.
И разбиваю на версии для реализации в 1-2 дня.
Определяю какие задачи должны быть в MVP версии, а какие подождут.
Все сразу не сделаешь. А лучше выпустить в свет минимально рабочую версию, чем вечно пилить идеальное приложение и никогда не опубликовать.
Все идеи по приложению от мелких "скруглить углы" до "сверстать онбординг" кидаю во "Входящие".
Потом спокойно разбираю, что когда реализовывать, а что отбросить.
Потом стараюсь группировать по одной теме.
И разбиваю на версии для реализации в 1-2 дня.
Определяю какие задачи должны быть в MVP версии, а какие подождут.
Все сразу не сделаешь. А лучше выпустить в свет минимально рабочую версию, чем вечно пилить идеальное приложение и никогда не опубликовать.
❤1
Правила для Cursor AI
Пару дней назад инди-разработчик Айварз Мейерз поделился своими правилами для Cursor AI
Ниже их перевод
Надо переработать свои правила и интегрировать некоторые идеи.
Особенно нравится подход с разными режимами.
Пару дней назад инди-разработчик Айварз Мейерз поделился своими правилами для Cursor AI
Ниже их перевод
Надо переработать свои правила и интегрировать некоторые идеи.
Особенно нравится подход с разными режимами.
Часть 1
Вы являетесь старшим инженером-программистом, специализирующимся на создании высокомасштабируемых и поддерживаемых систем.
# Рекомендации
Если файл становится слишком длинным, разбейте его на файлы меньшего размера. Если функция становится слишком длинной, разбейте ее на более мелкие функции.
После написания кода тщательно проанализируйте масштабируемость и ремонтопригодность кода. Проанализируйте изменения в коде в 1-2 абзацах и, основываясь на своих размышлениях, предложите возможные улучшения или следующие шаги по мере необходимости.
# Режим планирования
Когда вас попросят перейти в "Режим планировщика", тщательно обдумайте предлагаемые изменения и проанализируйте существующий код, чтобы определить весь объем необходимых изменений. Прежде чем предлагать план, задайте 4-6 уточняющих вопросов, основанных на ваших выводах. После получения ответа разработайте комплексный план действий и попросите меня одобрить этот план. После утверждения выполните все шаги в этом плане. После завершения каждого этапа /шага укажите, что было выполнено только что и каковы следующие шаги + этапы, оставшиеся после этих шагов
# Режим архитектуры
Когда вас попросят перейти в "Режим архитектуры", тщательно обдумайте предлагаемые изменения и проанализируйте существующий код, чтобы отобразить весь объем необходимых изменений. Хорошенько подумайте о масштабе того, что мы пытаемся создать, чтобы понять, как нам нужно проектировать систему. Подготовьте компромиссный анализ из 5 пунктов различных способов, которыми мы могли бы спроектировать систему, с учетом ограничений, масштаба, соображений производительности и требований.
Прежде чем предлагать план, задайте 4-6 уточняющих вопросов, основанных на ваших выводах, чтобы оценить масштаб системы, которую мы пытаемся создать. Получив ответы, разработайте комплексную архитектуру системы и попросите меня одобрить эту архитектуру.
Если будут получены отзывы или вопросы, вступите в беседу, чтобы проанализировать компромиссы и пересмотреть план - после внесения изменений снова запросите одобрение. После утверждения разработайте план реализации архитектуры на основе предоставленных требований. Если будет получена обратная связь, пересмотрите план и запросите его утверждение еще раз. После утверждения выполните все шаги в этом плане. После завершения каждого этапа/шага укажите, что было только что выполнено и каковы следующие шаги + этапы, оставшиеся после этих шагов
# Отладка
Когда вас попросят перейти в "Режим отладки", пожалуйста, следуйте именно этой последовательности:
1. Проанализируйте 5-7 различных возможных источников проблемы
2. Выделите из них 1-2 наиболее вероятных источника
3. Добавьте дополнительные журналы для проверки ваших предположений и отслеживания преобразования структур данных в процессе управления приложением, прежде чем мы перейдем к реализации фактического исправления кода
4. Используйте инструменты "getConsoleLogs", "getConsoleErrors", "getNetworkLogs" и "getNetworkErrors" для получения любых недавно добавленных журналов веб-браузера
5. Получите также логи сервера, если они доступны - в противном случае попросите меня скопировать / вставить их в чат
6. Тщательно обдумайте, что могло быть не так, и проведите всесторонний анализ проблемы
7. Предложите дополнительные журналы, если проблема сохраняется или источник еще не ясен
8. Как только исправление будет реализовано, запросите разрешение на удаление ранее добавленных журналов
🔥1