ДМ / selado / ISART / MOUNT VII
58 subscribers
276 photos
54 videos
137 links
Download Telegram
Тот случай, когда #GetBetterApp стал для меня вполне себе заменой Instagram и VK. Потребность вести дневник есть, но не хочется делать это в публичном пространстве. Приватная лента собственных постов с картинками — самое оно. Плюс есть визуализация прогресса, и некоторая статистика для любителей циферок.
Раньше я пользовался приложением DayOne, но оно было слишком навязчиво с просьбой оплатить подписку.
В 2021 есть, кстати, мысли сделать GetBetter платным, с единой ценой в 1-2 доллара, без внутренних оплат.
Бывает такое, что рабочий день кончился, а ты ближе к ночи придумал, как пофиксить тот баг. И с самого утра летишь к компу, смотришь, что это работает, и со спокойной душой идешь завтракать. Знакомо?
Anonymous Poll
79%
Да, братан, жиза
0%
Нет, зачем работать в нерабочее время?
21%
Я не программист и вообще не понимаю, о чем ты
Наверно, в любом коллективе время от времени рождаются локальные мемы. Для истории сохраню наши мемасы декабря, хоть они и в категории "memes without context".
Если это кажется лишним и вы на это не подписывались, дайте знать.
Чего не умеет Firebase

Сервисы Firebase от Google действительно хороши. Auth берет на себя всю работу с авторизацией (до сих пор не люблю писать авторизацию😅). Cloud Message шлет пуши. Storage хранит файлы. Даже на бесплатном тарифе нормальные квоты, которых хватит для небольшого проекта.
Realtime Database — это NoSQL база с нестрогой типизацией. К сожалению, она не умеет в запросы с просчетом на стороне сервера (либо я просто не знаю, как).

В #GetBetterApp есть фича "совет дня", у котого можно ставить лайк. Я хотел, чтобы на экране отображалось количество лайков всех пользователей. Долго думал, как лучше это реализовать. В итоге сделал таблицу tip_likes, в которой id - это id юзера, а внутри лежит массив id залайканных им советов. И чтобы показать количество лайков, приходится получать ВСЕ данные этой таблицы и искать вхождение текущего совета в каждой записи. И хорошо, если пользователей меньше 1к (как сейчас). А представьте размер JSON даже для 10к юзеров! Хотелось бы прямо в запросе делать entries.where { $0.contains(tipId) }.count и получать с сервера просто число, а не простынь.
График отправки и открытия пуш-уведомлений.
В декабре 2020 добавил пуши для советов дня. Заметно, что пользователи оценили и стали охотнее тапать по ним.
В январские праздники прирост новых пользователей сильно вырос: от 3-6 в день в 2020 до 10-15 в день сейчас.
#GetBetterApp
Уже несколько пользователей #GetBetterApp дали понять, что хотели бы видеть настройку времени для push-уведомлений. Ну что ж, этим я сегодня и занялся.

В Firebase на бесплатном плане доступны только 10 топиков. 2 уже заняты под текущие пуши, значит остается по 4 кастомных под эту задачу.
Раскидал так: Советы дня (6, 8, 10 и 12 МСК), Итоги дня (16, 18,20 и 22 МСК).

Как только все юзеры перейдут на новую версию 1.11, то старые топики удалю (и в коде надо будет убрать их упоминания).

Удалил сохранение настроек пушей из Firebase Database и перенес их в UserDefaults на устройстве. Потому что хранить конфиг в удаленной базе было лишним. Я совсем забыл, что подписка зависит от FCM-токена, который привязан к устройству. Простыми словами, можно было подписаться на айфоне, а на айпаде под тем же аккаунтом показывалось бы, что айпад тоже подписан (а это не так).

Пока что сборка только у меня на телефоне. Потестирую уведомления и если все ок, то на следующей неделе выпущу.
Слева: быстрый прототип
Справа: после ревью дизайнера
#GetBetterApp
Версия 1.11 уже в AppStore.
https://apps.apple.com/us/app/getbetter/id1522666671
Алмаз, тебе привет🖖
Каждый раз удивляюсь, как продолжают ухудшать популярнейший в своё время «файлообменник» Skype. Уже несколько раз (даже после нескольких обновлений), после запуска приложения звук на макбуке сам выставляется на 100%.
Играющая музыка взрывается громкостью и доводит меня до каления.
Ну и в целом, если честно, убогий мессенджер)
Забавно, но на собеседовании я уточнял, где ведется переписка в компании. Телеграм? Я согласен на оффер!
(Не) Всё получается

В какие-то дни у тебя всё получается. Задачи понятны и быстро закрываются. Внутри приятное удовлетворение от проделанной работы. В продукте работают твои фичи.

А случаются дни, когда ты закапываешься в проблеме. Уходишь дальше, шерстишь интернет, читаешь документацию. И итогом оказывается, что проблема не решается. А если это конец недели, то совсем грустно.
Не врываешься, а вползаешь в выходные с некоторым ощущением бесполезности.

Так вот, это нормально.

И вроде простая и понятная истина, но в моменте лично мне всегда сложно.
В выходные выкатил 1.12 версию #getbetterapp:
• Добавлен уровень сложности (для тех, кто активно пишет или же пишет редко)
• Настройка времени пушей стала удобнее
• Добавлено количество постов по месяцам

https://apps.apple.com/us/app/id1522666671
Цифры
Ровно год назад стартовала разработка #getbetterapp.
Полгода назад (9.07.20) я выложил приложение в AppStore.
Сегодня произошла 1000 регистрация аккаунта.
Ура👏
Раньше я очень любил обновлять софт

Меня завораживало, как ползут индикаторы загрузки, проценты обновления, как иконки на телефоне превращаются в "радар". Мне нравилось думать, что все мои программы становятся лучше.
Так было до того, как я стал разработчиком.

Теперь проблема версий влияет на работу, и лишний раз рисковать не хочется. По этой причине теперь я не спешу ставить мажорную версию ОС или IDE сразу после выхода, жду стабильной версии x.1. А еще лучше подождать, пока кто-то обновится и спросить — как у него, собирается ли проект.

Вот еще свежий пример. Обновил на днях в #GetBetterApp все поды, выкатил релиз в AppStore. И у меня перестала работать аналитика. Перечитал кучу форумов и stackoverflow. В итоге оказалось, что проблема в версии: Firebase/Analytics 7.5.0 не работает, а на 7.3.0 все хорошо. Откатился и до следующего релиза буду жить без аналитики.
Если бы #GetBetterApp были акциями, то вчера можно было бы фиксировать

Не знаю, с чем связан такой рост регистраций и использования. Возможно, с тем, что меня пригласили курировать студентов в мобильной лаборатории одного казанского ВУЗа.

Вчера была первая пара. У меня 11 человек, пришли 8. Рассказывали идеи своих будущих приложений. Идеи интересные: что-то завязано с тесную работу с другими юзерами, что-то должно по-умному работать с данными. Я все время выруливал беседу на вопрос — может уже есть аналог? Хороший research позволит сэкономить много сил на старте.

Приятно удивило, что несколько человек сказали, что сами напишут и поднимут бэк. Это круто, главное, чтобы мобилка была приоритетнее по вкладу и результату. Если вспомнить GetBetter, то Firebase сэкономил мне сотни часов разработки. С нуля до релизной версии прошло чуть больше 3 месяцев.
Наткнулся на vc.ru на пост Clubhouse - почему я не буду там регистрироваться (cutt.ly/Ulz66aO) и делюсь с вами, так как он точно описал мои ощущения.

Вокруг уже СЛИШКОМ МНОГО информации и залетать на еще один огонёк нет желания. Для работы и жизни нужно узнать еще очень много, и впитывать что-то рандомное мне кажется пустой тратой времени.
Да, в Clubhouse интересно (наверно), да, это хайп и модно. Но очень маловероятно, что это будет полезно.
По тем же причинам я не ставил себе TikTok (недавно сдался, так как Технократия завела себе акк, но позже снова удалил). В Instagram захожу раз в день. Лента ВК вообще каждый раз только портит настроение.
С некоторой периодичностью чищу подписки в youtube и телеге.

К следующей аттестации в Технократии надо подтянуть матчасть. Всегда есть чем заняться на пет-проектах. Есть дела по написанию учебной программы для iOS-стажеров. Для разгрузки мозгов есть UFC и FIFA (2-4 часа в неделю), и, конечно, футбол (четверг мой любимый день недели).
А еще, конечно, печатные книги. В них нет оповещений и это прекрасно.
Баг с удалением своего аккаунта

Один пользователь #GetBetterApp написал мне письмо: "Прошу сообщить, почему не удаётся удалить аккаунт в приложении GetBetter? Выдаёт ошибку." Я попросил скриншот ошибки, а сам запустил проект, чтобы воспроизвести ошибку. Создал анонимный аккаунт, жму "удалить" — все работает.

Приходит письмо со скриншотом. Ага, значит требуется повторная аутентификация. Читаю документацию: для критических действий требуется, чтобы пользователь недавно вошел в систему (менее 5 минут назад).

Давайте пофиксим этот баг 👇