Ладно ребят, я от вас кое что скрывал, но больше так не могу
Вот уже два месяца стажируюсь в небольшом IT стартапе. Деньги за это не платят, но я уже получаю промежуточные бонусы от участия в проекте. У нас в команде три стажёра, три iOS разработчика, дизайнер интерфейсов и продакт менеджер. Я так понял что приложение которое мы сейчас разрабатываем первое для этой группы. Во всяком случае иного мне не сообщали. Моя роль состоит в том, чтобы сформировать экран настроек и все вложенные экраны на SwiftUI. Сам проект это трекер микропривычек с тремя бесплатными категориями и монетизацией через пэйвол, при открытии которого пользователь получает анлим на трекер. Забавно то, что по учёбе в Яндексе мы делаем тоже трекер привычек, но по другому дизайну, без коммерческой составляющей и на UIKit
Какие выгоды я получаю.
Во первых: самостоятельное изучение SwiftUI и MVVM на настоящем проекте. Да с использованием нейронок, но пока для меня это самый оптимальный результат. Во вторых: я общаюсь с действующими iOS разработчиками на созвонах в Google meet и в закрытом чате. Мне помогают в работе, комментируют мои pull request и наводят мысли в нужную сторону. Основную часть моей работы уже вмержили в develop ветку, осталось немного поправить вариант с тёмной темой
Как я попал на стажировку? Очень просто: мой телеграм канал иногда просматривал основатель этого стартапа. Написал, пообщались, созвонились, работаем. Буду ли я брать на себя дополнительную ответственность в ближайшее время - вопрос открытый. В учёбе я начал отставать, потому что Яндекс даёт всё больше "свободы" из-за чего мне сложно приступать к выполнению самостоятельных задач. Кстати это была 27-я неделя обучения и на фото открыт учебный проект, я не подумал о том, что надо запустить именно результат моей работы по стажировке, ну ладно и так сойдёт
😍
😍
Вот уже два месяца стажируюсь в небольшом IT стартапе. Деньги за это не платят, но я уже получаю промежуточные бонусы от участия в проекте. У нас в команде три стажёра, три iOS разработчика, дизайнер интерфейсов и продакт менеджер. Я так понял что приложение которое мы сейчас разрабатываем первое для этой группы. Во всяком случае иного мне не сообщали. Моя роль состоит в том, чтобы сформировать экран настроек и все вложенные экраны на SwiftUI. Сам проект это трекер микропривычек с тремя бесплатными категориями и монетизацией через пэйвол, при открытии которого пользователь получает анлим на трекер. Забавно то, что по учёбе в Яндексе мы делаем тоже трекер привычек, но по другому дизайну, без коммерческой составляющей и на UIKit
Какие выгоды я получаю.
Во первых: самостоятельное изучение SwiftUI и MVVM на настоящем проекте. Да с использованием нейронок, но пока для меня это самый оптимальный результат. Во вторых: я общаюсь с действующими iOS разработчиками на созвонах в Google meet и в закрытом чате. Мне помогают в работе, комментируют мои pull request и наводят мысли в нужную сторону. Основную часть моей работы уже вмержили в develop ветку, осталось немного поправить вариант с тёмной темой
Как я попал на стажировку? Очень просто: мой телеграм канал иногда просматривал основатель этого стартапа. Написал, пообщались, созвонились, работаем. Буду ли я брать на себя дополнительную ответственность в ближайшее время - вопрос открытый. В учёбе я начал отставать, потому что Яндекс даёт всё больше "свободы" из-за чего мне сложно приступать к выполнению самостоятельных задач. Кстати это была 27-я неделя обучения и на фото открыт учебный проект, я не подумал о том, что надо запустить именно результат моей работы по стажировке, ну ладно и так сойдёт
> будет очень круто если этот стартап взлетит, потому что я в его экипаже ха-хаPlease open Telegram to view this post
VIEW IN TELEGRAM
1❤16👍5
Как вы учились или учитесь сейчас:
Anonymous Poll
67%
35%
11%
9%
❌ Против всех
28-я неделя обучения окончена
Я закрыл 16й спринт с первой попытки. В учебном приложении Tracker добавил экран создания категории привычек под MVVM архитектуру. Позже написал простой механизм редактирования и удаления категории, хотя этого не было в требованиях для сдачи на ревью, но в макете за 16й спринт такой функционал почему-то присутствовал. Сдал приложение по требованиям спринта сильно заранее и таким образом у меня осбоводилось четыре дня чтобы провести больше времени со своей семьёй и наконец-то отдохнуть
Лето закончилось, впереди дожди, холод и опавшие листья, прямо как студенты практикума несправившиеся с темпом и сложностью курса. Люди постоянно отваливаются и выходят из чатика студентов тридцатой когорты. Кстати на фото помятая тарталетка из доставки ВВ, которую положили в общий пакет с другими продуктами
😍
😍
Я закрыл 16й спринт с первой попытки. В учебном приложении Tracker добавил экран создания категории привычек под MVVM архитектуру. Позже написал простой механизм редактирования и удаления категории, хотя этого не было в требованиях для сдачи на ревью, но в макете за 16й спринт такой функционал почему-то присутствовал. Сдал приложение по требованиям спринта сильно заранее и таким образом у меня осбоводилось четыре дня чтобы провести больше времени со своей семьёй и наконец-то отдохнуть
Лето закончилось, впереди дожди, холод и опавшие листья, прямо как студенты практикума несправившиеся с темпом и сложностью курса. Люди постоянно отваливаются и выходят из чатика студентов тридцатой когорты. Кстати на фото помятая тарталетка из доставки ВВ, которую положили в общий пакет с другими продуктами
> сегодня стартует 17-й спринт который закончится жёстким дедлайном и неделей каникул. Мы изучим локализацию, скриншот тесты, тёмную тему, аналитику и UISearchController. А также погрузимся в код ревьюPlease open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Вас тоже бесит когда некоторые люди намеренно и планомерно упрощают манеру своей речи до смехотворно - нелепой? Типа: не "Татнефть", а "Татка", не "Процентное соотношение", а "процентовка" и прочее
Anonymous Poll
41%
✅ Да
44%
❌ Нет
15%
Люди бесят по разным поводам, особенно когда пробелы в экспертизе маскируют нарочитым канцеляризмом
❤3
29-я неделя обучения окончена
Добавил в учебный проект механизм фильтрации трекеров по ключам: "завершенные", "не завершенные", "все трекеры", "трекеры на сегодня". Внедрил поиск привычек отталкиваясь от фильтра с их отображением. Осталось добавить Snapshot тесты и экран статистики через аналитику SDK Яндекс
Просто ради рофла начал снимать футажи на тему IT и одним из них был "бьюти влог" где использую средства которые мне подарила любимая девушка потому что я не гей. Так вот, потому что я не гей я решил накопить этих футажей на будущее, вдруг захочу наговорить текст о том как я двигаюсь и с какими проблемами сталкиваюсь по мере обучения в iOS разработке. Ведь настоящий мужчина может себе это позволить. Ладно, это был эксперементальный пост, больше такого не увидите
😍
😍
Добавил в учебный проект механизм фильтрации трекеров по ключам: "завершенные", "не завершенные", "все трекеры", "трекеры на сегодня". Внедрил поиск привычек отталкиваясь от фильтра с их отображением. Осталось добавить Snapshot тесты и экран статистики через аналитику SDK Яндекс
Просто ради рофла начал снимать футажи на тему IT и одним из них был "бьюти влог" где использую средства которые мне подарила любимая девушка потому что я не гей. Так вот, потому что я не гей я решил накопить этих футажей на будущее, вдруг захочу наговорить текст о том как я двигаюсь и с какими проблемами сталкиваюсь по мере обучения в iOS разработке. Ведь настоящий мужчина может себе это позволить. Ладно, это был эксперементальный пост, больше такого не увидите
> этот спринт оказался тяжелее чем я рассчитывал, но не настолько, как труд по убеждению аудитории в том, что натурал тоже может пользоваться кремом для лица. Да, вы всё проявлено поняли, моя не воображаемая девушка пронумеровала все баночки для того чтобы я, грубый и небритый мужлан, в правильном порядке их использовалPlease open Telegram to view this post
VIEW IN TELEGRAM
Нужно больше технических подробностей на канал про моё обучение и примеров Swift кода с фичами?
Anonymous Poll
93%
✅ Да, больше технических подробностей про разработку под iOS
7%
❌ Нет, небольших упоминаний вполне достаточно
👍3 1
30-я неделя обучения окончена
Успешно, но с трудом закрыл 17-й спринт. За это время я изучил и реализовал много нового в учебном проекте tracker. Оказывается можно не хардкодить весь UI на одном языке, а выносить текстовые поля в файлы локализации, чертовски удобно. Вот здесь вместо того, чтобы просто завести лейбл "Статистика", я создал ссылку внутри экрана на строку в файле Localizable.strings
Так можно аккуратнее следовать правилам русского языка в окончаниях изменяемых слов, логика которых привязана к числительным: "1 день" или "2 дня". Ещё добавив
можно создавать эталонные скриншоты нужных экранов и при несовпадении с ними понимать где происходят изменения в UI. Для того чтобы не трогать реальные данные и ревьюеру было удобно проверять мою работу я написал моковый класс для этих тестов
Добавил тёмную тему. Думал что знаю как это делать и был уверен что все
Имплементировал поиск и фильтрацию по трекерам сразу допустив несколько грубых ошибок. Исправлять которые приходилось по чек-листу в конце спринта. Почему спросите вы? Потому что не было грамотно проработанного и четкого юзерфлоу описанного в тз проекта. Пришлось много спрашивать в чате студентов и придумывать сценарии самостоятельно. В итоге написал как требует спринт. Код приводить не буду, его слишком много. Написал интерфейс для SDK AppMetrika, чтобы собирать статистику по работе приложения в Яндекс аналитике
😍
😍
Успешно, но с трудом закрыл 17-й спринт. За это время я изучил и реализовал много нового в учебном проекте tracker. Оказывается можно не хардкодить весь UI на одном языке, а выносить текстовые поля в файлы локализации, чертовски удобно. Вот здесь вместо того, чтобы просто завести лейбл "Статистика", я создал ссылку внутри экрана на строку в файле Localizable.strings
/* Statistics */
"statistics.title" = "Статистика";
private func setupTitle() {
titleLabel.translatesAutoresizingMaskIntoConstraints = false
titleLabel.text = NSLocalizedString("statistics.title", comment: "Статистика")
titleLabel.font = UIFont(name: "SFPro-Bold", size: 34) ?? UIFont.boldSystemFont(ofSize: 34)
titleLabel.textColor = UIColor(named: "BlackDay")
titleLabel.textAlignment = .left
view.addSubview(titleLabel)
NSLayoutConstraint.activate([
titleLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 4),
titleLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 16),
titleLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -16)
])
}Так можно аккуратнее следовать правилам русского языка в окончаниях изменяемых слов, логика которых привязана к числительным: "1 день" или "2 дня". Ещё добавив
import XCTest
import SnapshotTesting
@testable import Tracker
можно создавать эталонные скриншоты нужных экранов и при несовпадении с ними понимать где происходят изменения в UI. Для того чтобы не трогать реальные данные и ревьюеру было удобно проверять мою работу я написал моковый класс для этих тестов
Добавил тёмную тему. Думал что знаю как это делать и был уверен что все
colorset записал верно и в коде не запутаюсь, но разумеется многое пошло не по плану. Где-то импортировал цвет только "any appearance" и не добавил "dark", где-то использовал сет предназначенный для фона в ячейку коллекции, а текст активной кнопки был одинаков в темной и светлой теме. Потом часа три правил ассеты и чистил кодИмплементировал поиск и фильтрацию по трекерам сразу допустив несколько грубых ошибок. Исправлять которые приходилось по чек-листу в конце спринта. Почему спросите вы? Потому что не было грамотно проработанного и четкого юзерфлоу описанного в тз проекта. Пришлось много спрашивать в чате студентов и придумывать сценарии самостоятельно. В итоге написал как требует спринт. Код приводить не буду, его слишком много. Написал интерфейс для SDK AppMetrika, чтобы собирать статистику по работе приложения в Яндекс аналитике
> 17-й спринт оказался объёмным и я не сразу понял какой объём работ мне предстоит выполнить. Тем не менее я успешно закрыл модуль и впереди меня ждёт неделя каникул. Планирую немного отдохнуть и доработать своего телеграм бота Please open Telegram to view this post
VIEW IN TELEGRAM
👍8 5❤1
Где ты учишься или работаешь в IT?
Anonymous Poll
83%
🏠 Дом
0%
🏡 Коворкинг
14%
🏢 Офис
3%
🏕️ Кафе или другое общественное пространство
👍1
Неделя каникул подошла к концу. Как я провёл это время? Продуктивно!
Полностью распилил свой opensource проект на серверную часть и папки с отдельными телеграм ботами. Думал что сделал это раньше, но оказывается что в core-server затаился сервис принятия chatID, скачивания видео через webhook и ещё несколько методов для стабильности первого функционала. В качестве примера сервисов для будущих пользователей доработал свой первый бот до статуса MVP. Теперь он надёжно работает и кропает любое загруженное пользователем видео в кружок, будь то вертикальное или горизонтальное. Система сама "делает хорошо". Если же пользователь запустит miniapp, то сможет сам кропнуть загруженное видео или снять его на катеру (вот этот пункт звучит странно). Приятный интерфейс оповестит о том что кружок готов. Как это выглядит уже есть в сторис канала. Подготовил документацию по развёртыванию сервиса, его запуску и отладке
😺 Вот ссылка на страничку моего проекта по разработке телеграм ботов
😍
😍
Полностью распилил свой opensource проект на серверную часть и папки с отдельными телеграм ботами. Думал что сделал это раньше, но оказывается что в core-server затаился сервис принятия chatID, скачивания видео через webhook и ещё несколько методов для стабильности первого функционала. В качестве примера сервисов для будущих пользователей доработал свой первый бот до статуса MVP. Теперь он надёжно работает и кропает любое загруженное пользователем видео в кружок, будь то вертикальное или горизонтальное. Система сама "делает хорошо". Если же пользователь запустит miniapp, то сможет сам кропнуть загруженное видео или снять его на катеру (вот этот пункт звучит странно). Приятный интерфейс оповестит о том что кружок готов. Как это выглядит уже есть в сторис канала. Подготовил документацию по развёртыванию сервиса, его запуску и отладке
> это моя первая и пока что самая сложная самостоятельная практика разработки, будет круто если поделитесь своей историей или поставите звёздочку:
Please open Telegram to view this post
VIEW IN TELEGRAM
Во сколько у тебя был первый IT опыт? Сгодится всё, от создания фронтенда и написания скриптов, до переустановки винды у горячей одноклассницы. Дефолтная установка программ и игры не считаются 😆
Anonymous Poll
15%
☝🏻 Лет в 6-11
47%
✌🏻 Примерно 12-17
23%
🫰🏻 После 18
15%
👴🏻Перекатился после 25, а до этого вообще ничего не делал в компьютерах, ну или юзал дефолтно
31-я неделя обучения окончена
Открыл расширенный модуль курса iOS разработчик состоящий из четырёх спринтов 18, 19, 20 и 21. Изучил порождающие, структурные и поведенческие паттерны проектирования, а также место их применения для создания более масштабируемых и поддерживаемых систем. Ещё изучил антипаттерны: спагетти код, завязанность на одной библиотеке, магические числа и god object, чтобы не наступать на чужие грабли в программировании
Сейчас моя когорта создаёт учебное приложение "Расписание путешествий" на SwiftUI. Добавив нескольно библиотек я научился генерировать сетевой слой для этого проекта. Результатом работы являются восемь сервисов, вызываемых через API Яндекс путешествий. Они возвращают (пока ещё в консоль) данные по определенным запросам на базе моего Swift кода
😍
😍
Открыл расширенный модуль курса iOS разработчик состоящий из четырёх спринтов 18, 19, 20 и 21. Изучил порождающие, структурные и поведенческие паттерны проектирования, а также место их применения для создания более масштабируемых и поддерживаемых систем. Ещё изучил антипаттерны: спагетти код, завязанность на одной библиотеке, магические числа и god object, чтобы не наступать на чужие грабли в программировании
Сейчас моя когорта создаёт учебное приложение "Расписание путешествий" на SwiftUI. Добавив нескольно библиотек я научился генерировать сетевой слой для этого проекта. Результатом работы являются восемь сервисов, вызываемых через API Яндекс путешествий. Они возвращают (пока ещё в консоль) данные по определенным запросам на базе моего Swift кода
> удивительно как это работает, кто-то много лет назад написал библиотеку для OpenAPI генерации и подключив её можно значительно ускорить процесс разработки сервисаPlease open Telegram to view this post
VIEW IN TELEGRAM
Так что в итоге? По твоим ощущениям в инфополе или на личном опыте:
Anonymous Poll
49%
✅ Джуны нужны
51%
❌ Джуны не нужны
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Я получил инвайт в Sora. В октябре 2025 они раскатили приложение под iOS только на США и Канаду
Поскольку я закрыл 18-й спринт почти на неделю раньше, решил поизучать нейросети. За время, которое я потратил на погружение в учёбу по iOS разработке t2v / i2v сервисы прыгнули в космос. Начал с последнего релиза от OpenAI. Сменил локацию в Appstore, скачал приложение, залогинился используя прокси траффик через США и упёрся в экран с сообщением о том, что в приложение пускают только по инвайтам из шестизначного кода
Я потратил примерно 20 минут чтобы найти код в тематических Telegram чатах. И вот ура, врата безумия открыты. Наконец-то дорвался до... жутко лагающей и сильно тормозящей лентой вертикальных нейрошедевров с медленной загрузкой видео из черновиков в профиль. Это новая социальная сеть и есть "убийца тиктока"? Ха ха. Верим? пс: видос с котами мой, музыка наложена в Capcut
😍
😍
Поскольку я закрыл 18-й спринт почти на неделю раньше, решил поизучать нейросети. За время, которое я потратил на погружение в учёбу по iOS разработке t2v / i2v сервисы прыгнули в космос. Начал с последнего релиза от OpenAI. Сменил локацию в Appstore, скачал приложение, залогинился используя прокси траффик через США и упёрся в экран с сообщением о том, что в приложение пускают только по инвайтам из шестизначного кода
Я потратил примерно 20 минут чтобы найти код в тематических Telegram чатах. И вот ура, врата безумия открыты. Наконец-то дорвался до... жутко лагающей и сильно тормозящей лентой вертикальных нейрошедевров с медленной загрузкой видео из черновиков в профиль. Это новая социальная сеть и есть "убийца тиктока"? Ха ха. Верим? пс: видос с котами мой, музыка наложена в Capcut
> сегодня стартовал 19-й спринт, второй из четырёх по расширенному курсу iOS разработки. В этом спринте я создам несколько экранов приложения "Travel shedule" на SwiftUIPlease open Telegram to view this post
VIEW IN TELEGRAM
Вопрос к действующим iOS разработчикам и тем кто обучается. Что чаще приходится использовать в работе, учёбе или для своих проектов?
Anonymous Poll
58%
UIkit
42%
SwiftUI
32-я неделя обучения окончена
Начал глубокое погружение в вёрстку на SwiftUI в 19-м спринте. Поработал с контейнерами, списками и "ленивыми контейнерами" (List, LazyVStack, LazyHStack)
Этот Text можно обернуть в контейнер VStack если предполагается несколько элементов, но в body может брать лишь один такой элемент. А через точку применяются модификаторы к любому обьекту
Конечно все что я узнал приводить тут не буду, но мне понравилось что в SwiftUI в файлах где предполагается видеть то что находится в body можно отобразить на canvas в формате live preview:
😍
😍
Начал глубокое погружение в вёрстку на SwiftUI в 19-м спринте. Поработал с контейнерами, списками и "ленивыми контейнерами" (List, LazyVStack, LazyHStack)
struct ContentView: View {
var body: some View {
Text("Хоба")
.font(.system(size: 18, weight: .light, design: .serif))
.italic()
.padding()
}
}Этот Text можно обернуть в контейнер VStack если предполагается несколько элементов, но в body может брать лишь один такой элемент. А через точку применяются модификаторы к любому обьекту
VStack {
Button("Хоба!") {
isFirst.toggle()
}
Text(isFirst ? "Хоба 1" : "Хоба 2")
}Конечно все что я узнал приводить тут не буду, но мне понравилось что в SwiftUI в файлах где предполагается видеть то что находится в body можно отобразить на canvas в формате live preview:
#Preview {
NameStruct() // в скобках могут быть условия отображения
.padding() // а тут модификаторы
}
Также поделал редактируемые списки и таблички. Для каждого урока создавал новую вьюшку в экспериментальном экскод проекте. Писал всё туда чтобы лучше освоить тему> кажется я опять не успеваю сдать работу по спринту, но мне очень важно впитать всё что дает Яндекс в расширенной части курса по iOS разработке. Приходится больше чем обычно закапываться в пояснения уроков, практику и перевода неясных моментов в ясные с помощью ChatGPT. Это гораздо интереснее чем всё что я изучал ранееPlease open Telegram to view this post
VIEW IN TELEGRAM
Как давно вы кардинально меняли свою жизнь? Будь-то переезд, питание, отказ от вредных привычек, семья, смена занятости - вобщем что-то значимое как давно было или планируете?
Anonymous Poll
9%
Было очень давно, за пределами десяти лет назад
4%
Было в пределах ближайших десяти лет
19%
Было в пределах пяти лет
55%
Было относительно недавно, год, два
30%
Я намереваюсь в ближайшее время реализовать важный поворот в своей жизни
👍1


