Октябрь? На душе пусто, а в магазине приложений 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, бабье лето.
Комментарии (31)
imezhevikin
16.10.2016 10:38Спасибо за статью. А вы трафик не пробовали лить на свои приложения? Если да, поделитесь результатами
dcc0
16.10.2016 10:47+2Я срочно бросился обновлять старые успешные программы
В одной компании однажды догадались, что можно поменять номер версии, заставку и оформление кнопочек, выпустив новую версию программного продукта, немножко средств на PR… и… прорывная версия продукта вновь захватывает рынок.
Угадайте, о какой компании речь?user343
17.10.2016 07:42-1Мелкософт.
Заодно портя совместимость драйверов, программ, браузеров и т.д.
Ещё начиная с Висты они добавили заподлянки типа «замутнения» и шифрования люксовых медиапотоков за счёт процессора пользователя. 10-ка затроянена логгерами и телеметрией.dcc0
17.10.2016 08:31Частный случай. В основном, думаю, 95 процентов программ — это ремейки.
Трудно и тяжко признать, что IT — сфера в плане настоящих новинок — себя исчерпала, но рано или поздно придется это сделать, так как нельзя же все время обманывать. Хотя дизайн, конечно, можно бесконечно переделывать.
В последние лет 10 какого-то существенно прорывного софта не появилось, а в связи с резким снижением качества программирования и подрывом фундаментальной науки уже и не появится.
Но, я думаю, наверное, это хорошо.
lostpassword
16.10.2016 16:38+6Мне один раз помогла публикация на Хабре (ноябрь 2011 года) и дело было выиграно.
А можете рассказать, что это за история была? Интересно.LoadRunner
17.10.2016 09:55
diakin
16.10.2016 19:30+1А шо там за серпы и молоты рассыпаются? В некоторых странах ЕС данная символика законодательно запрещена. Ж8-()
PapaBubaDiop
17.10.2016 07:48В ЕС деньги разработчикам приносит лишь Германия. Там лишь свастика запрещена, а её я не показываю.
Maxter315
17.10.2016 11:37+3СкримерLoadRunner
18.10.2016 14:22А если лицо над поверхностью тела (вытянутый цилиндр, что видно только на виде сбоку) — такая тень возможна?
Maxter315
19.10.2016 12:13Тень от лица вроде как правильно падает. Оно как раз и представляет собой цилиндр над телом.
robert_ayrapetyan
А зачем на матрешках цифры, если порядок складывания в вашем движке не важен?
vagran
Насколько я понимаю, большие на меньшие только можно. Цвета — масти, цифры — значения, вот и небезызвестный пасьянс получается по сути.
yurash
Да, из поста в стиле «поток сознания» я не совсем понял чем идея отличается от пасьянса, в котором рубашки карт поменяли на матрёшки
Barafu
Кажется, вся суть в том, что ничем.
SADKO
Суть в том, что японцы от такого кипятком ссуть!
Вопрос лишь в том, как-бы там это дело по пиарить.
Barafu
Сначала надо правильно перевести, желательно настоящим японцем. Они от ошибок в переводах злятся куда больше наших юзверов.
PapaBubaDiop
Неправильно понимаете, в этом особенность. Размер не имеет значения. Просто, если большая матрешка кладется сверху меньшей — то вторая складывается в первую.
flashNot
судя по видео, я думаю, что это скорее не порядок, а размер. чтобы проще было понимать что 4 может «съесть» 3 (и 2 и 1), а вот 2 не может вместить 3
PapaBubaDiop
Разумный комментарий — размер матрешек не имеет значения для перекладывания — лишь цвет.
PapaBubaDiop
Просто узор, не отвлекающий внимания.