Октябрь? На душе пусто, а в магазине приложений Apple дым стоит коромыслом. Чего тут только нет. Местная ЧК чистит полки и разработчикам приходят письма.
Дорогой друг
Ваше приложение King Towers устарело и мы удаляем его из нашего магазина
И так по письму раз в неделю. Приложения, дорогие мне как память о далеком Obj-C, я попытался быстро переписать на Swift. Но и здесь очередное коромысло ждало героя. В дом вошел Xcode 8 с новой супругой Swift 3.0. Из старого птичьего кода ничего более не работало. Сточив две мыши, я смог сократить текст в два раза (я становлюсь программистом?) и освоил птичий язык в третий раз, но новая беда — все перелицованные приложения не запустились. Знаете почему?
Картинки-вирусы
Потому что нельзя быть счастливой такой. Apple решил, что jpeg и png файлы хранят в себе скрытую угрозу в виде исполняемого кода. Каково?! Поэтому необходимо почистить атрибуты файлов-картинок из старых и новых проектов.
Для этого я использую команду (пришлось стать чуть-чуть Unix-оидом)
find . -type f -name '*.png' -exec xattr -c {} \;
Использую до сих пор — Фотошоп не знает об инновациях Apple и сохраняет файлы по старому. А ведь на носу 2017. Они, что Хабр не читают? Юзают до сих пор npm?
Ок, вернемся к удаленным играм. Есть и хорошие новости — выброшенные приложения могут быть обновлены! Я загрузил новые версии старых программ. Признаюсь, не все версии были одобрены — Review Team стала активно не пропускать новые варианты забаненых приложений. Но 3 раза мне таки удалось опубликовать полностью переделанные программы.
Переход на Swift 3.0
Старый swift-код автоматически конвертируется в новый язык; Xcode спрашивает вашего согласия для данной операции. Я не буду приводить примеры, как все поменялось. Ладно, один покажу:
// Swift from 20 century
groundObama.layer.borderColor = UIColor.redColor().CGColor
// Swift 3.0
groundTrump.layer.borderColor = UIColor.red.cgColor
Не сложно, но иногда впадаешь в недоумение. И даже бываешь обескуражен. При этом… ладно, тут открывается широкая тема, а я хотел про новую игровую идею рассказать.
Скажу лишь, что новый язык мне нравится.
Google наносит ответный удар
С 1 октября гугл обрадовал нас другим письмом — все ваши игры со старым adMob.framework отныне не приносят денег создателю. То есть, если вы сделали бесплатное приложение с рекламой от Google и ему стукнуло 2 года — все, кранты, финиш, фиаско — этот продукт более не приносит денег. Это невероятно! То есть Гугл сам отказался от 30% доходов от данных приложений. Я не верил, но факт — вместо 50 долларов в день с 1 октября я стал получать лишь 20. Катастрофа. Я срочно бросился обновлять старые успешные программы. Не спал 2 ночи. сломал 18 клавиш. А тем временем доходы вернулись почти на прежний уровень. Не 50, но жить можно. Тем не менее, я всем рекомендую перепрыгнуть на новый движок adMob.
И вот, пока я лихорадочно переписывал старые игры, мне пришла в голову новая идея.
Новая идея
Не надо ржать, я придумал классную игру. Думаю вам тоже понравится. Зачем я пишу здесь про игру? Копирайт, братья, копирайт. Я ненавижу авторские права и все мое — твое.
Но иногда неплохо застолбить идею, чтобы хвастать былыми заслугами перед девчонками в пивном баре. Или зануда какой-нибудь на хабре вдруг начнет сомневаться в твоей гениальности.
В советские времена я использовал для копирайта трюк с почтой СССР- посылаешь заказное письмо сам себе — в письме дискета с кодом и листингом. Письмо не вскрываешь и через 20 лет его выбрасываешь (дискета рассыпалась в пыль, наверняка). Но, в случае чего (привет Клинтону), в суде можно доказать, кто настоящий отец.
Сейчас все проще — публикуешь статью на Хабре и вуа-ля, спокойно спишь. Мне один раз помогла публикация на Хабре (ноябрь 2011 года) и дело было выиграно. Коньяк выпит.
Так вот, рассказываю про новую идею игры-головоломки. Сначала просто посмотрите видео геймплея.
Игра называется Kremlins и сделана мной в стиле русских матрешек. Матрешки складываются друг в друга, цель — собрать все 6 матрешек и решить очередную головоломку. Собранная матрешка снимается с доски. Правила складывания матрешек изумительно просты — можно перекладывать друг на друга матрешки одного цвета. Несложно, правда? Хороших вам выходных.
Получилось неплохо, я нагенерил миллион раскладов, подготовил сервер с двумя mysql таблицами и парой пхп-скриптов для хранения лучших результатов.
Игру сделал быстро, попытался выложить под именем одного из удаленных приложений — но Review Тим не пропустили очередную версию. Типа, слишком много изменений. Выпускай под новым именем. Я и выпустил. Кстати, если вы Андроид-разработчик — можете выпускать клон игры ничтоже сумняшеся.
Большой плюс в современном магазине яблока — приложения рассматривают очень быстро и одобряют за день. Никаких недель ожидания. Первую версию игры я сделал платной и даже получил 30 покупок, что невероятно! Обычно 0. Приношу прощения покупателям.
Потому что сегодня одобрена новая бесплатная версия, и я осмелился опубликовать сей опус. Всем удачи и хороших выходных!
У нас +22, бабье лето.