
AlexMikeylov
История: “Как я впервые увидел свою игру в действии в поезде”
Недавно ехал в поезде, плацкарт, часов десять пути.
Вокруг всё как обычно: кто-то шумно ел лапшу, кто-то смотрел сериалы в наушниках, кто-то сразу завалился спать. Я тоже просто лежал и смотрел в окно, думал скоротать время.
Напротив сидела небольшая компания: парень и две девушки. Было видно, что им скучно — перебирали разговоры, периодически смотрели в телефоны, но особо не вовлекались. В какой-то момент одна сказала:
— «Ну всё, я уже не знаю, что делать. Скука смертная.»
И я как-то спонтанно сказал:
— «Если хотите, можем сыграть в игру. Я как раз делал её для таких случаев — чтобы время быстрее шло.»
Сначала они удивились:
— «В смысле, ты её сам сделал?»
Я кивнул и сказал, что будет интересно услышать честное мнение от случайных людей, не друзей и не коллег.
Скачали WordOut, быстро объяснил правила, поделились на команды — и начали играть.
Без шоу и без цирка, просто спокойно и весело.
Но самое сильное ощущение было не от игры — а от того, как люди, которые пять минут назад были чужими, начали реально смеяться и спорить, угадывать слова, подсказывать друг другу жестами, спорить по очкам.
В какой-то момент парень не мог объяснить слово «динозавр», и просто изобразил руками маленькие лапки. Мы смеялись как дети.
Никто не кричал, не прыгал — просто нормальная человеческая компания, которая вдруг стала теплее.
Два часа пролетели так, что никто даже не заметил.
Когда все начали расходиться спать, девушка сказала:
— «Круто, что ты предложил. И круто, что сделал такую игру. .»
Я не стал никому говорить ни про App Store, ни про ссылки, ни просить отзывы. Просто пожелал всем спокойной ночи и лёг спать с каким-то очень тёплым чувством внутри.
Потому что в тот момент я впервые почувствовал, что моя работа — это не просто код и кнопки, а что-то, что может реально менять вечер людей.
История: “Тестовое задание, после которого я понял, что жизнь — боль”
Когда искал работу в найме, было интересное тестовое задание на вакансию Junior IOS разработчик.
Компания вроде нормальная, описание человеческое, зарплата тоже не как у продавца-консультанта — думаю, почему бы и нет.
Пишет HR:
— «Мы посмотрели ваше резюме, всё отлично, вот тестовое задание. Ничего сложного, часов на 3–4.»
Я ещё радуюсь — ну супер, люблю адекватные задания, где можно показать себя.
Открываю документ.
И там:
• Написать приложение с авторизацией, регистрацией и восстановлением пароля.
• Подключить Firebase.
• Реализовать чат в реальном времени.
• Сделать офлайн-кэш сообщений.
• Добавить push-уведомления.
• Сверстать всё красиво.
• Сделать тёмную тему.
• Видеозвонки (необязательно, но будет плюсом).
• Записать видео-демо работы и отправить вместе с кодом.
На всё про всё — 3–4 часа.
Я читаю это и не знаю, плакать или смеяться.
Три часа… ЧАТ С ОФФЛАЙНОМ.
Я за три часа иногда только настраиваю проект, чтобы он не падал при запуске.
Пишу HR:
— «Точно 3–4 часа?»
Она отвечает:
— «Да, у нас прошлый кандидат сделал за вечер.»
Кто этот человек?
Но ладно, думаю, попробую хотя бы часть сделать.
Сел, начал, время летит, уже ночь, а у меня только авторизация, пару экранов и дизайн чата.
Сдаю, пишу честно:
— «Не успел всё, но вот что сделал.»
Через пару дней письмо:
«К сожалению, вы нам не подходите. Мы ищем более продуктивного человека.»
Продуктивного…
То есть человека, который за 4 часа строит Telegram с нуля?
Если честно, я понимаю, что для кого то это может быть легко сделать, но не стажеру который только начинает получать опыт в IT.
История: “Как сложно найти работу iOS-разработчику в России”
У меня есть ощущение, что поиск работы iOS-разработчиком в России — это как играть в лотерею, где билеты продают раз в месяц, стоят нервную систему, а приз — это не джекпот, а просто стабильная зарплата и отпуск 28 дней.
Каждый день одно и то же:
открываешь вакансии — половина из них либо «Senior с 10 годами опыта, но зарплата как у кассира», либо «Junior, но нужен опыт от трёх лет, знание всего на свете и желательно контакт Тим Кука в телефоне».
Откликаешься.
Ждёшь.
Тишина.
Пишешь ещё.
Опять тишина.
Иногда приходит отказ, где HR даже имя твоё не удосужился вписать, просто «Здравствуйте, мы внимательно изучили ваше резюме и…» — и дальше стандартный шаблон, будто ты даже не человек, а пункт в таблице.
Про собеседования вообще отдельная история.
Сначала час разговариваешь с HR, который спрашивает:
— «А почему вы выбрали разработку?»
Хотя хочется ответить:
— «Да потому что надо как-то жить, а не потому что я романтик из фильма про стартапы».
Потом техническое интервью, где могут спокойно спросить:
— «Расскажите, как работает память в процессоре ARM?»
А ты сидишь и думаешь:
— «Ребята, я кнопки двигаю и таблицы заполняю, я не собираюсь запускать космические ракеты».
Иногда доходишь до финала, уже вроде всё хорошо, тебя почти берут…
И тут внезапно:
— «Мы остановили вакансию»
или
— «Мы выбрали кандидата с большим опытом»
или любимое:
— «Мы подумаем и вернёмся», а потом пропадают как бывшая с абонентской платой.
И ты снова сидишь на hh, снова обновляешь список вакансий, снова надеешься, что вот сейчас, вот эта — та самая.
А вокруг люди спрашивают:
— «Ты же программист, почему ты ещё без работы?»
И ты пытаешься объяснить, что рынок просел, что вакансий мало, конкуренция огромная, а они в ответ:
— «Ну, может, попробуй JavaScript?»
Спасибо, конечно, потрясающий совет.
Как будто сказали человеку, который всю жизнь занимался хирургией:
— «Может, попробуешь плитку класть?»
И вот сидишь вечером, пьёшь чай и думаешь:
я столько учился, столько ночей сидел за проектами,
а теперь просто пытаюсь не терять мотивацию каждый раз, когда вижу новый шаблонный отказ.
Но всё равно откликаешься дальше.
Потому что другого выхода нет.
И я всё ещё надеюсь, что однажды мне позвонят, и я услышу:
— «Мы готовы сделать вам оффер».
Не ради денег.
Не ради статуса.
А просто ради ощущения, что я не зря всё это время пытался.
История: “App Store Connect — место, где умирают нервы”
На днях решил обновить сборку и отправить её в App Store Connect. Ну, обычное дело, делал сто раз. Думал, минут 15 — и всё.
Да, да, я в очередной раз слишком многого ожидал от своей жизни.
Заливаю билд, жду, пока он появится.
Проходит 20 минут.
30 минут.
Час.
Ноль.
Сижу, как идиот, обновляю страницу каждые 30 секунд, будто это ускорит процесс. Уже начал думать, что интернет сломался, серверы упали или я случайно запустил Xcode на Wi-Fi чайника.
Спустя полтора часа билд появляется. Радуюсь, как будто выиграл в лотерею. Захожу, нажимаю “Add for Review”, а App Store Connect пишет красным:
“Missing required information”
Что именно? Непонятно. Просто «что-то не так».
Ни намёка, ни подсказки.
Я начинаю искать, что же я пропустил.
Перехожу по вкладкам туда-сюда, открываю каждую строчку.
И там, в самом низу, в каком-то углу, обнаруживаю маленькую кнопку:
Provide Marketing URL
Зачем им эта ссылка?
Я что, должен снимать рекламный ролик?
Давать сайт своего подъезда?
Ладно, ставлю любую ссылку.
Пытаюсь отправить снова.
Теперь пишет:
Privacy Policy URL is required
Супер.
В этот момент я уже чувствую, как седые волосы начинают проявляться.
Достаю готовый шаблон политики, загружаю куда-то, вставляю ссылку.
Снова отправляю.
И в этот момент App Store Connect такой:
You must answer Export Compliance questions
Конечно, как же без этого.
Сижу, отвечаю на вопросы про шифрование, будто я продаю военную технику.
Заполняю всё.
Нажимаю «Отправить»…
и кнопка становится серая, и происходит НИ-ЧЕ-ГО.
Я просто смотрю на экран минут пять, не веря в реальность.
Перезагружаю страницу — и только тогда вижу заветное:
Waiting for Review
Сижу, смотрю на эту надпись, как на произведение искусства.
Три часа борьбы — ради одной надписи.
Каждый раз одно и то же:
App Store Connect — это не сайт.
Это квест, где ты должен угадать, что от тебя хотят, без единой подсказки и с таймером на собственные нервы.
Как я потерял вечер из-за багa, которого не существовало
Вчера решил исправить одну мелкую деталь в проекте — ну реально пару строк. Запускаю — и начинается цирк: анимации дёргаются, элементы прыгают, всё ведёт себя так, будто я переписал половину интерфейса с закрытыми глазами.
Откатываю изменения — ничего не меняется. Удаляю всё, что написал — тоже ноль. Перезапускаю Xcode, симулятор - бесполезно. Около часа копаюсь в коде, ставлю breakpoints, уже начинаю подозревать, что Xcode просто издевается надо мной. И в какой-то момент случайно замечаю: в одном месте осталось старое имя переменной, которое я переименовал неделю назад.
Одна строчка. Всего одна. Исправил — всё работает идеально, будто и не ломалось.
Каждый раз одно и то же: зависаешь на полвечера в поисках ошибки, а оказывается, это ты же сам не доделал.
Если вдруг кто-то сейчас ищет баг уже второй час, то отвечаю, что он, скорее всего, в той самой строчке, на которую вы даже не смотрите.
Как меня кинул казик на 30к во время разработки приложения
Когда я сделал приложение WordOut, чтобы выставить его в AppStore, нужно было купить подписку разработчика, но из за санкций, я не знал, как это сделать. Тут я нахожу в интернете, что нужно поменять регион на Америку и активировать подарочный купон от Apple на 100$ , сам купон для американского акаунта стоил чуть больше.
Когда я активировал купон и увидел на балансе 100$ сразу зашел на App Developer, чтобы активировать подписку, но тут Apple попросили американский паспорт, поменяв страну на другую, мне предложили два способы, которые недоступны в России (хотя на русском аккаунт подписку можно было оплатить через AppStore баланс).
Так я понял, что попал на 10к и решил их вывести, я могу покупать любые приложения и музыку, оплачивать покупки в приложении. Я принял решение, что самым выгодным будет купить звезды Телеграмм, так как когда я перейду на русский аккаунт, все равно смогу их использовать (чтобы снова поменять регион, нужно, чтобы баланс был нулевым).
Потому в интернете я нашел казино Betus X, в котором баланс можно пополнить через звезды тг. Я решил проверить, закинул звезд на 1к (чтобы их вывести, нужно было прокрутить эти деньги, чтобы не была отмыва), я поднимаю за пару минут 3к и вывожу на крипту, деньги реально пришли.
Потом я решил закинуть оставшуюся сумму (9к примерно) и поиграть на них, за пару часов я поднял почти 30к и поставил их на вывод. Шли дни, а денег не было, через время я написал в поддержку, но был игнор, через неделю мой аккаунт забанили.
По итогу я остался без денег и без подписки разработчика, но потом все же смог ее приобрести и выставить свое первое приложение - WordOut.
Этапы разработки приложения
Когда я только начинал делать игру, у меня не было чёткого плана.
Была просто идея: «Сделать что-то вроде Alias, но без регистрации, донатов и тысячи кнопок».
Первые недели я рисовал макеты на бумаге и вечно что-то переделывал.
Казалось, что каждое новое окно — «почти финальное».
На этом этапе я впервые понял, что создать даже простое приложение — это не “добавить пару кнопок”, а целая цепочка мелких решений, от которых зависит всё.
На скрине — один из тех макетов, где я впервые увидел игру целиком:
от главного экрана до выбора команд, правил и настроек.
Тогда я впервые подумал:
Самое сложное было не написать код, а заставить всё выглядеть удобно и логично.
Я крутил расположение кнопок, спорил сам с собой и по итогу выбирал наилучший вариант.
И только после десятков вариантов понял — иногда лучше просто остановиться и сохранить то, что уже работает.
Сейчас этот проект вырос в полноценную игру WordOut, которая уже в App Store.
Но именно эта схема — тот момент, когда всё начало складываться во что-то осмысленное.
Как я хотел аккуратно откатить изменения и устроил себе апокалипсис в Git
История короткая, но больная.
Работал в ветке, сделал несколько изменений — ничего особенного, просто мелкие правки.
Потом понял, что всё пошло не туда, и решил аккуратно всё отменить.
Ну, вы понимаете: «сейчас просто верну всё, как было».
Открыл терминал, написал что-то вроде
git reset --hard
На секунду всё зависло. Потом ветка исчезла.
Проект перестал открываться в Xcode.
Половина файлов стала серой, как будто их призвали в армию и они больше не вернутся.
Первые 10 минут я пытался убедить себя, что это не страшно — “наверное, просто нужно pull сделать”.
Сделал pull.
Git ответил, что не знает, с какой ветки.
Потом предложил merge, потом rebase, потом просто сдаться.
К этому моменту у меня в проекте было три конфликта, два предупреждения и одно экзистенциальное.
Когда я наконец всё восстановил из старой копии, Xcode радостно выдал:
"Build succeeded"
Теперь я знаю, что с Git нужно быть аккуратнее, внимательно вводить команды, чтобы не сломать проект.

